rosalind
v1.0.0
Published
Activator V3
Readme
Working with Activator v3
When working on a ticket in Jira, we create a new branch to work on from the current sprint base branch.
Here using AC3-1297 as an example.
The sprint base is the latest snapshop of code which has been approved by QA.
When the sprint is done, we merge the sprint base to main and create the next sprint base.
main
s23/base
s24/base
s25/base
s25/AC3-1297When the development work is done, we create a pull request merging s25/AC3-1297 back into s25/base.
Assign the pull request to 2 developers for review and assign the ticket to one of them in Jira.
After the pull request has been reviewed and merged, we need to create a release for QA to test.
We do this in the rosalind-release repository. Here we use the exact same branching structure.
In package.json, we set the new dependency version of the feature we changed to match the new version in this mono-repo and set the version of the package itself to 0.25.1-1297. That is,
we increment the patch version by one and append the ticket ID -1297.
Now we push this and a release is created and we can add 0.25.1-1297 to the
"Feature Release Version" property in the Jira ticket.
When QA approves the ticket, we need to merge s25/AC3-1297 back into s25/base in the rosalind-release repository before we can set the Jira ticket to done. We do this by creating a pull request where we remove the Jira ticket reference -1297 from the version property in package.json. Now the new release version is 0.25.1.
PNPM
Activator is versioned in a mono-repo and we use PNPM to help with this. You will need to have PNPM running on your machine before starting to work. There are a lot of installation options available on at https://pnpm.io/installation
Here's an example on how to get started:
git clone [email protected]:anthillagency/rosalind.git
cd rosalind
pnpm installPNPM uses the concept of workspaces to aid with mono-repo development. If we have a feature with a dependency to a module, we can do this to ensure that the feature uses the current version of the module:
{
"dependencies": {
"my-package": "workspace:*"
}
}PNPM has a neat way to publish all changed features and modules by executing this from the root of the repository.
pnpm --recursive publishYou can also test this out without actually publishing anything.
pnpm --recursive publish --dry-runOr you can run a script defined in package.json in several features by using the --filter from the root of the repository.
pnpm --filter features/* buildJust remember not to use the npm and npx commands. Always use pnpm.
Another thing with PNPM is that there are no package-lock.json or npm-shrinkwrap.json files. If you come across these in the non-repo, please delete them.
Related Links
Frontend Setup
To set up the frontend development environment for Activator v3, follow these steps:
Prerequisites
- Ensure you have Node.js installed (recommended version: 20.x or later)
- Install PNPM as described in the PNPM section above
Setup Steps
Install dependencies in project root:
pnpm installRun the watch comomand in root to build all packages with a
build:watchscript:pnpm watchRun the webapp-frontend webserver
pnpm dev
