-
Notifications
You must be signed in to change notification settings - Fork 415
Developer documentation
-
Use the guidlines outlined in First time setup to setup JSONForms.
-
By default, the
package-lock.jsonshould not be modified -
If you need to update a specific version of a package, do so in an explicit commit and add the
package.jsonandpackage-lock.jsonfiles. Pay attention to package hoisting warningsNOTE: There should be no
package-lock.jsonfiles in any of thepackagessubfolders. If that is the case, it means that lerna was not able to bootstrap the packages cleanly, likely because of existing hoisting warnings. -
From time to time, we might have commits that only update packages, e.g. when using
npm audit
- Run
npm audit. If any fixes are available, apply them first via a PR -
npm loginwith 'eclipsesource' npm run preparePublish- Test publishing by either:
- Publishing to a private npm registry (see section 'Test local release')
- by using a custom version number, e.g. using a
-rcsuffix
- Publish via
lerna publish
- Check https://www.npmjs.com/search?q=%40jsonforms for the new release
- Check https://github.com/eclipsesource/jsonforms/releases for the new release
- Update jsonforms-react-seed
- Update make-it-happen-react and make-it-happen-angular, if necessary
- Update jsonforms2-website
- Generate and copy API docs
- Create change log by going through all issues in the milestone
- Publish release on github
- Close milestone
- Do the twitter 🐤
You can test the entire release process locally on your machine. This is useful for when packages are published initially. To do so, follow these instructions:
- First install verdaccio which is a local npm registry that can be started on your machine and follow the instructions to set-up your registry as well as a user.
- Clone a copy of the JSONForms repo, which we'll refer to as
$JSONFORMS_CLONEfrom here on - Navigate to
$JSONFORMS_CLONEand executegit config receive.denyCurrentBranch ignore. This is necessary for pushing the tag created by lerna - Within the repo from which you want to release, execute
git remote add $REMOTE_NAME $JSONFORMS_CLONE, where$REMOTE_NAMEis an arbitrary name (exceptoriginmaybe ;) - Follow the release process by executing
npm run preparePublish - Execute
lerna publish --git-remote $REMOTE_NAME(TODO: I also needed to add--force-publish=*, otherwise not all packages were picked up, why?) - Check the published packages at
http://localhost:4873and the created tag within$JSONFORMS_CLONE - Consume and test the published packages if they work as intended
- If so, revert the repo from where you published to
HEAD^ - Delete
$JSONFORMS_CLONE - Revert your
npm registrysettings