Project Development

Aside from a few exceptions and new shortcuts, developing a project is exactly the same as developing a package. The Component Generation, Opus Code Generation and Chat GTP Assisted Generation all still apply. Simply use the alias of the project in place of the alias of the package when running any of the CLI commands.

The main aspect to understand is that instead of only a package's sub-directories being under version control, with a project the entire Apex installation directory is under version control. Any modification to any files or directories within the installation directory will be mirrored within the repository and staging environment during a commit.

There are a few differences though, as described below.

Package commit and pull Commands

The package commit and package pull CLI commands generally require a package alias to be specified. This should be omitted for projects as it's not needed since with projects the entire Apex installation directory is version controlled. So instead of specifying a package alias you can simply use:

apex commit [-m <MESSAGE>] [--file <FILENAME>]

apex pull

The commit message and filename above are optional, and if desired you can simply use apex commit without any arguments.

project sql Command

The sql CLI Command is available during package development to connect to and query the database on the local machine. For project development, the project sql CLI command is the equivalent except it communicates with the remote SQL database on the staging server.

For example, you may connect directly to the database prompt on the remote staging environment with the command:

apex project sql

You may also execute SQL statements against the remote database such as:

apex project sql "<SQL_STATEMENT>"

apex project sql "SELECT uuid,full_name FROM admin"

SVN Commands

Since projects encompass the entire system, you will notice there is now a .svn. directory within the installation directory. With projects you may directly run any available SVN commands directly via the svn command, such as:

svn info

svn status

`svn log~

svn help