-
Notifications
You must be signed in to change notification settings - Fork 48
Publishing a New Version
jonsnyder edited this page Apr 3, 2023
·
15 revisions
Only Adobe employees are eligible to publish new versions.
- Navigate to the Initialize Intended Release Workflow on GitHub. Click "Run workflow". Choose "main" as the branch, and type in the appropriate release type (major, minor, or patch).
- Wait for the workflow to complete.
- Skip to next section if all features for the release have already been merged.
- Navigate to the Release Project. Drag the card that was just created from the "New" column to the "Alpha" column. Alpha releases are used before the planned version is feature complete. This step can be skipped if the version is already feature complete.
- Ensure the deploy action completes successfully.
- Test features and fix any bugs with pull requests. New commits on main will trigger a new alpha version automatically.
- Navigate to the Release Project. Drag the release card to the "Beta" column. Beta releases are used when the planned version is feature complete.
- Ensure the deploy action completes successfully.
- Check the release notes on GitHub for the alpha and beta releases. Remove anything that shouldn't be user facing by adding the label "ignore-for-release" to the PRs. Update the title of any other PRs with something that is user facing (try to use past tense.) For any releases that should be updated, you can re-generate the release notes by: edit the release, delete the existing notes, click the auto-generate button, click save.
- Ping Vlad Falon on the alloy-docs slack channel with a link to the release notes on GitHub, along with the intended release date. Ask him to create a release notes PR.
- Test features and fix any bugs with pull requests. New commits on main will trigger a new alpha version automatically.
- Ensure the release notes have been merged and any documentation for released features.
- Navigate to the Release Project. Drag the release card to the "Release" column.
- Navigate to the Actions tab. Approve the production deployment.
- Ensure the deploy action completes successfully.
Congratulations! You've published a new version. Now, be sure to release a new version of the Launch extension.
In the unlikely event of a failure during a deploy, the deploy script can be re-run. Simply manually start the "deployRelease" workflow with the correct version number. The deploy script has been built to check at each step to see if that step has already run successfully, so rerunning the script is safe. Alternately, for "alpha" or "beta" releases, you can manually run the "Trigger Deployment" workflow to release an incremented prerelease version.
If the release process is still not working, follow the manual steps below:
- Make sure you don't have an active release card (i.e. a card in the Alpha or Beta columns). We don't want the commits from these manual steps to trigger a new release.
- Make sure you're on the
main
branch and have pulled the latest changes. - Run
npm ci
to ensure you have the latest dependencies. - Version and tag Alloy by running
npm version major/minor/patch --git-tag-version=false
. Whether you usemajor
,minor
, orpatch
depends on what has changed since the last release and how that matches semantic versioning. We don't want to tag the version because we need to update the dev dependency in package.json so that the automated tests run against the correct NPM version. - Run
git add package.json package-lock.json
. - Run
git commit -m "${version}"
where ${version} is the version - Run
git push origin main
. - We do not have a manual method for updating NPM. If GitHub Actions are not working, and you absolutely need to release, contact Simon Macdonald for assistance. The @adobe org secret required for uploading to NPM is shared to the repo, but we cannot access it outside of a Github workflow. There is a workflow that you can use to publish to NPM. Navigate to the Publish to NPM workflow action, and click the Run Workflow button, selecting 'main' as the branch.
- Run
npm install @adobe/alloy@${version} --save-dev
replacing ${version} with the new version. - Run
git add package.json package-lock.json
- Run
git commit -m "update self devDependency to ${version}"
replacing ${version} - Run
git push origin main
- Run
git tag -a "v${version}" -m "${version}"
replacing ${version} - Run
git push origin v${version}
- Run
npm run build
- Obtain Akamai NetStorage Upload capabilities by sending a request to Jeffrey Walter or Joel Stachowicz and include your public RSA key. This is normally found in
~/.ssh/id_rsa.pub
. If you don't have a key, you'll need to generate one by runningssh-keygen -t rsa -b 2048 -C "[email protected]"
. (NetStorage only works with 2048 bit key length). - Run
sftp -oHostKeyAlgorithms=+ssh-dss -oStrictHostKeyChecking=no [email protected]:/prod/alloy
- In the sftp prompt, run
mkdir ${version}
,cd ${version}
,put ./dist/alloy.js
,put ./dist/alloy.min.js
, andbye
replacing ${version}. - Ensure the files are available on the CDN. https://cdn1.adoberesources.net/alloy/${version}/alloy.js, and https://cdn1.adoberesources.net/alloy/${version}/alloy.min.js
- Navigate to Draft a new release.
- Type the version number in the tag field.
- Type a title and description for the release.
- Add
alloy.js
andalloy.min.js
files from the ./dist directory.