diff --git a/README.md b/README.md index cde0d59..17464a0 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,61 @@ Built for ESM only. These libraries have most recently evolved from [GAE JS](https://github.com/mondo-mob/gae-js), authored by the same team. They have been re-branded, given they are not just useful for Google App Engine, updated for ESM, and cleaned up with deprecations removed. -## Development + +## Contributing + +This is a mono-repo using npm workspaces. +Publishing is done using Atlassian Changesets (https://github.com/changesets/changesets). +This helps be consistent with versioning and auto-generates changelogs. + +Here's the basic flow: + +1. Create one or more changesets + +- Once you've made your changes, create a changeset. You can create more than one changeset for a single version. + +``` +npx changeset +``` + +- From the cli tool, choose which packages to update and if major/minor/patch update +- Enter summary for changes +- Review and commit files + +2. Update package versions + +- Based on the changeset configuration - this will automatically version the packages. + +``` +npx changeset version +``` + +- Commit changes + +3. Build and publish + +Would be nice if this was done from CI but for now we do this locally. + +- Check you're running a suitable version of node/npm. If not switch and clear out old node_modules. +- Build and publish + +``` +npm run publish-libs +``` + +### Adding new packages + +There's nothing automated to do this. Essentially you just need to add a new package to `/packages` folder but +these steps should save some time: + +- Create new folder in `/packages`. e.g. `/packages/gcp-new-thing`, `/packages/aws-new-thing`, `/packages/azure-new-thing` +- Copy `package.json`, `tsconfig.json`, `tsconfig.prod.json`, `jest.config.json` from one of the existing packages +- Update `package.json` to match desired name, version, dependencies, etc +- Update `tsconfig.json` to match desired project references. +- Create file src/index.ts and export some constant +- Run `npm install` from root folder +- Run `npm run build` from project folder + ### Merging fixes from gae-js Feel free to change: