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