-
Notifications
You must be signed in to change notification settings - Fork 379
Developer documentation
-
Use the guidlines outlined in First time setup to setup JSONForms.
-
By default, the
package-lock.json
should not be modified -
If you need to update a specific version of a package, do so in an explicit commit and add the
package.json
andpackage-lock.json
files. Pay attention to package hoisting warningsNOTE: There should be no
package-lock.json
files in any of thepackages
subfolders. 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 login
with 'eclipsesource' npm run preparePublish
- Test publishing by either:
- Publishing to a private npm registry (see section 'Testing a local release')
- by using a custom version number, e.g. using a
-rc
suffix
- 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_CLONE
from here on - Navigate to
$JSONFORMS_CLONE
and 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_NAME
is an arbitrary name (exceptorigin
maybe ;) - 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:4873
and 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 registry
settings