-
Notifications
You must be signed in to change notification settings - Fork 29
New release checklist
Kathy Tran edited this page Oct 21, 2022
·
14 revisions
This document explains what should be done at the start of a new release (on develop right after a major/minor release to prod).
- update node (which updates npm) to the latest LTS version (https://nodejs.org/en/) by changing https://github.com/dockstore/dockstore-ui2/blob/develop/.nvmrc . May need to update Angular below first.
- update Angular by following https://update.angular.io/ .
--forceand--allow-dirtymay be required due to technical debt (not sure if it's technical debt, see StackOverflow). - run
npx ng versionto double check that everything Angular is updated to the correct version - Create a new Angular project using the new CLI and check that the following hasn't greatly changed. If it has, consider switching to the new one:
- .browserslistrc
- src/polyfills.ts
- Check that Angular packages that aren't used by the new Angular version are removed. Info about existing packages (Feb 10, 2022):
"dependencies": {
"@angular/animations": default angular
"@angular/cdk": angular material
"@angular/common": default angular
"@angular/compiler": default angular
"@angular/core": default angular
"@angular/flex-layout": angular material
"@angular/forms": "default angular
"@angular/material": angular material
"@angular/platform-browser": default angular
"@angular/platform-browser-dynamic": default angular
"@angular/router": default angular
"@datorama/akita": for state management throughout the site
"@fortawesome/angular-fontawesome": icons like GitHub
"@fortawesome/fontawesome-svg-core": icons like GitHub
"@fortawesome/free-brands-svg-icons": icons like GitHub
"@fortawesome/free-solid-svg-icons": icons like GitHub
"@material-extended/mde": a single popup that should be changed and this package removed
"@ngneat/forms-manager": very few forms that should probably be removed because Angular's default is sufficient
"@ngx-lite/json-ld": for json-ld
"academicons": for DOI icon in the export to ORCID
"ace-builds": for ace editor used for hosted workflows
"angular-tag-cloud-module": ES tag cloud
"bodybuilder": elasticsearch query builder
"bootstrap": style that should be updated to the newest version
"cytoscape": for DAG
"cytoscape-dagre": for DAG
"cytoscape-popper": for DAG pop ups
"dompurify": Angular built-in sanitizer doesn't allow enough customization, dompurify does.
"file-saver": zip endpoint?
"jquery": bootstrap dependency?
"material-design-icons-iconfont": For google material design icons, sourced from a more up-to-date package.
"ng2-ui-auth": Oauth that isn't entirely compatible with any recent Angular versions
"ngx-markdown": Markdown display in a variety of places
"ngx-sharebuttons": Share icons on the public pages of entries
"rxjs": default angular
"ts-md5": gravatar Md5 hash
"tslib": default angular
"uuid": to track API calls in custom-header.interceptor.ts
"zone.js": default angular
},
"devDependencies": {
"@angular-devkit/build-angular": default angular
"@angular-eslint/builder": eslint (apparently normal for eslint to have 8 packages)
"@angular-eslint/eslint-plugin": eslint
"@angular-eslint/eslint-plugin-template": eslint
"@angular-eslint/schematics": eslint
"@angular-eslint/template-parser": eslint
"@angular/cli": default angular
"@angular/compiler-cli": default angular
"@angular/language-service": code editor helper https://angular.io/guide/language-service
"@datorama/akita-ngdevtools": for state management throughout the site
"@types/cytoscape": for DAG
"@types/elasticsearch": For elasticsearch SearchResponse and Explanation
"@types/jasmine": default angular for testing
"@types/jquery": bootstrap shouldn't need it?
"@types/node": default angular,
"@typescript-eslint/eslint-plugin": eslint
"@typescript-eslint/parser": eslint
"cypress": integration testing
"eslint": eslint
"husky": eslint, prettier as well as git secrets
"jasmine-core": default angular
"karma": default angular
"karma-chrome-launcher": default angular
"karma-coverage": default angular
"karma-jasmine": default angular
"karma-jasmine-html-reporter": default angular
"license-checker": security thing
"lint-staged": eslint, prettier as well as git secrets
"prettier": prettier
"ts-node": to generate src/app/footer/versions.ts
"typescript": default angular
}
- update minor/patch versions of all dependencies using
npm update.--legacy-peer-depsmay be required due to technical debt. - manually update latest versions of certain dependencies of note (Akita, Cytoscape, Cypress, Karma, etc)
- Check and see if the open-api-generator (used to generate Angular Typescript files for OpenAPI and swagger) is worth updating
- update Dropwizard
- update Java
- update postgres
- update Maven
- update WDL bindings version (https://github.com/dockstore/dockstore/blob/develop/dockstore-webservice/src/main/java/io/dockstore/webservice/languages/WDLHandler.java)
- update Cromwell version (https://github.com/dockstore/dockstore/blob/develop/bom-internal/pom.xml#L71)
- update Nextflow version (https://github.com/dockstore/dockstore/blob/develop/dockstore-common/src/main/java/io/dockstore/common/NextflowUtilities.java#L44)
- update cwltool version (create another file in https://github.com/dockstore/dockstore/tree/develop/dockstore-webservice/src/main/resources/requirements)
- Update RDS engine version in database CloudFormation template and docker-compose file.