- Node.js (v14 or higher)
- npm
- Running instances of bitcoind and core-lightning
git clone https://github.com/ElementsProject/cln-application.git
cd cln-applicationnpm installcp env.sh env-local.sh
# Edit env-local.sh with your configuration
source env-local.sh- Manually update
LIGHTNING_PUBKEYandLIGHTNING_RUNEin yourLIGHTNING_VARS_FILE - OR Run the setup script. Note that it requires
socatandjqto run successfully:
source ./scripts/entrypoint.shnpm run backend:watch
npm run backend:servenpm run frontend:dev- Fork the repository on GitHub
- Create a feature branch:
git checkout -b feat/your-feature-name- Commit your changes:
git commit -m "feat: description of your changes"- Push to your fork:
git push fork feat/your-feature-name-
Open a PR against the next-release branch
- Include clear description
- Add relevant labels
- Request reviews from maintainers
-
Code Standards
- Include tests for new features
- Update documentation when adding/changing functionality
- Keep commits atomic and well-described
-
Basic Git Workflow:
- Update package version and push on Release-yy.mm.n (if not updated till now)
export VERSION=vyy.mm.n
npm run update-version
git add apps/backend/package.json apps/frontend/package.json package-lock.json package.json
git commit -m "Update Version"
git push- Merge the release branch into main:
git checkout main
git merge Release-yy.mm.n
git push- Create versioned tag:
export VERSION=vyy.mm.n
git tag -a -s $VERSION -m "$VERSION"
git push --tags-
Creating the Release On GitHub:
- Go to Repository → Releases → Draft new release
- Select the tag you created
- Add release notes summarizing changes
-
Package and sign the release:
mkdir -p ./release
git archive --format zip --prefix=cln-application-${VERSION}/ --output ./release/cln-application-${VERSION}.zip main
cd release
sha256sum cln* > SHA256SUMS
gpg -sb --armor -o SHA256SUMS.asc SHA256SUMS- Verify the signature:
gpg --verify SHA256SUMS.asc-
Upload to GitHub:
- Add cln-application-${VERSION}.zip
- Add SHA256SUMS and SHA256SUMS.asc
-
Post-Release Checks
- Verify CI/CD pipelines complete successfully
- Confirm package availability at: https://github.com/orgs/ElementsProject/packages?repo_name=cln-application
