Skip to content

Commit dcf5b64

Browse files
committed
Release Angular 20.0.1 maintenance baseline
1 parent 5201d97 commit dcf5b64

32 files changed

Lines changed: 7683 additions & 6526 deletions

.circleci/config.yml

Lines changed: 0 additions & 53 deletions
This file was deleted.

.eslintrc.json

Lines changed: 0 additions & 50 deletions
This file was deleted.

.github/dependabot.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: npm
4+
directory: /
5+
target-branch: main
6+
schedule: { interval: weekly }
7+
groups:
8+
angular: { patterns: ["@angular/*", "angular-eslint", "@angular-eslint/*", "ng-packagr", "typescript"] }
9+
development: { dependency-type: development, patterns: ["*"] }
10+
ignore:
11+
- dependency-name: "@angular/*"
12+
update-types: ["version-update:semver-major"]
13+
- dependency-name: "angular-eslint"
14+
update-types: ["version-update:semver-major"]
15+
- dependency-name: "@angular-eslint/*"
16+
update-types: ["version-update:semver-major"]
17+
- dependency-name: "ng-packagr"
18+
update-types: ["version-update:semver-major"]
19+
- dependency-name: "typescript"
20+
update-types: ["version-update:semver-major"]
21+
- dependency-name: "eslint"
22+
update-types: ["version-update:semver-major"]
23+
- dependency-name: "@eslint/js"
24+
update-types: ["version-update:semver-major"]
25+
- dependency-name: "typescript-eslint"
26+
update-types: ["version-update:semver-major"]
27+
- package-ecosystem: npm
28+
directory: /
29+
target-branch: v20
30+
schedule: { interval: weekly }
31+
groups:
32+
angular: { patterns: ["@angular/*", "angular-eslint", "@angular-eslint/*", "ng-packagr", "typescript"] }
33+
development: { dependency-type: development, patterns: ["*"] }
34+
ignore:
35+
- dependency-name: "@angular/*"
36+
update-types: ["version-update:semver-major"]
37+
- dependency-name: "angular-eslint"
38+
update-types: ["version-update:semver-major"]
39+
- dependency-name: "@angular-eslint/*"
40+
update-types: ["version-update:semver-major"]
41+
- dependency-name: "ng-packagr"
42+
update-types: ["version-update:semver-major"]
43+
- dependency-name: "typescript"
44+
update-types: ["version-update:semver-major"]
45+
- dependency-name: "eslint"
46+
update-types: ["version-update:semver-major"]
47+
- dependency-name: "@eslint/js"
48+
update-types: ["version-update:semver-major"]
49+
- dependency-name: "typescript-eslint"
50+
update-types: ["version-update:semver-major"]
51+
- package-ecosystem: npm
52+
directory: /
53+
target-branch: v21
54+
schedule: { interval: weekly }
55+
groups:
56+
angular: { patterns: ["@angular/*", "angular-eslint", "@angular-eslint/*", "ng-packagr", "typescript"] }
57+
development: { dependency-type: development, patterns: ["*"] }
58+
ignore:
59+
- dependency-name: "@angular/*"
60+
update-types: ["version-update:semver-major"]
61+
- dependency-name: "angular-eslint"
62+
update-types: ["version-update:semver-major"]
63+
- dependency-name: "@angular-eslint/*"
64+
update-types: ["version-update:semver-major"]
65+
- dependency-name: "ng-packagr"
66+
update-types: ["version-update:semver-major"]
67+
- dependency-name: "typescript"
68+
update-types: ["version-update:semver-major"]
69+
- dependency-name: "eslint"
70+
update-types: ["version-update:semver-major"]
71+
- dependency-name: "@eslint/js"
72+
update-types: ["version-update:semver-major"]
73+
- dependency-name: "typescript-eslint"
74+
update-types: ["version-update:semver-major"]

.github/workflows/ci.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches: [main, v20, v21, "v*"]
6+
push:
7+
branches: [main, v20, v21, "v*"]
8+
9+
permissions:
10+
contents: read
11+
12+
concurrency:
13+
group: ci-${{ github.workflow }}-${{ github.ref }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
build-test-package:
18+
runs-on: ubuntu-latest
19+
timeout-minutes: 20
20+
steps:
21+
- uses: actions/checkout@v4
22+
- uses: actions/setup-node@v4
23+
with:
24+
node-version: 24.15.0
25+
cache: npm
26+
- run: npm ci
27+
- run: npm run lint
28+
- run: npm test
29+
- run: npm run build:demo
30+
- run: npm audit --omit=dev --audit-level=high
31+
- run: npm run verify:package
32+
- run: npm run verify:consumer
33+
- uses: actions/upload-artifact@v4
34+
with:
35+
name: angular-plotly-package-${{ github.sha }}
36+
path: dist/plotly
37+
if-no-files-found: error
38+
retention-days: 14

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ speed-measure-plugin*.json
3838
/coverage
3939
/projects/plotly/coverage
4040
/projects/plotly/README.md
41+
/projects/plotly/LICENSE
42+
/projects/plotly/CHANGELOG.md
4143
/libpeerconnection.log
4244
npm-debug.log
4345
yarn-error.log

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Changelog
22

3+
## [20.0.1] - 2026-08-20
4+
### Fixed
5+
- Exported the documented CDN/window modules and Plotly public types.
6+
- Made Plotly initialization, destruction, debugging, and CDN failures deterministic.
7+
- Made browser-global integrations safe to instantiate during server rendering.
8+
- Made the demo consume the built package instead of library source files.
9+
10+
### Changed
11+
- Updated the Angular 20 line to supported Angular 20.3 tooling and Plotly 2.35.
12+
- Added reproducible package assets, package verification, and branch-aware CI.
13+
314

415
## [20.0.0] - 2025-06-07
516
### Changed

MAINTENANCE.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Maintenance and release policy
2+
3+
The package major identifies its supported Angular major. `main` tracks the
4+
latest Angular major; older supported majors use `vN` maintenance branches.
5+
6+
| Package line | Angular | Branch | npm tag | Status |
7+
| --- | --- | --- | --- | --- |
8+
| 20.x | 20.x | `v20` | `angular20` | LTS through 2026-11-28 |
9+
| 21.x | 21.x | `v21` | `angular21` | LTS |
10+
| 22.x | 22.x | `main` | `angular22`, `latest` | Active |
11+
12+
## Changes and forward ports
13+
14+
Fix an issue on the oldest affected maintained branch. Forward-port the merged
15+
commit in ascending major order with `git cherry-pick -x`, one linked pull
16+
request per branch. Do not forward-port Angular migrations, dependency-major
17+
changes, package versions, or release metadata.
18+
19+
`main` has no duplicate current-major branch. Before upgrading `main` to a new
20+
Angular major, create `vN` from its final commit and protect that branch.
21+
22+
## Releases
23+
24+
1. Open a release pull request that updates both package manifests and the
25+
changelog.
26+
2. Merge only after the required CI check passes on the release commit.
27+
3. In a clean checkout, run `npm ci`, `npm run lint`, `npm test`,
28+
`npm run build`, `npm audit --omit=dev --audit-level=high`, and
29+
`npm run verify:package`, and `npm run verify:consumer`.
30+
4. Publish `dist/plotly` with npm 2FA to the branch's `angularN` tag.
31+
5. Install and inspect the published version. Promote it to `latest` only when
32+
it is the current Angular major, then verify all expected npm dist-tags.
33+
6. Create a signed annotated `vN.x.y` tag on the release commit, push it, and
34+
create a GitHub Release from the changelog entry.
35+
36+
Never publish a maintenance branch directly to `latest`. Patch releases contain
37+
fixes and security updates; minor releases add backward-compatible features;
38+
major releases select a new Angular compatibility line.

README.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,16 @@
1717

1818
---
1919

20-
Since version 20, angular-plotly.js follows angular's version. So, if you're using angular 20.x, please use angular-plotly.js 20.x.
20+
Since version 20, the angular-plotly.js major follows the supported Angular
21+
major. Install the matching package line:
22+
23+
| angular-plotly.js | Angular | Branch | Support |
24+
| --- | --- | --- | --- |
25+
| 22.x | 22.x | `main` | Active |
26+
| 21.x | 21.x | `v21` | LTS |
27+
| 20.x | 20.x | `v20` | LTS through 2026-11-28 |
28+
29+
Maintenance and release details are documented in [MAINTENANCE.md](MAINTENANCE.md).
2130

2231
If you want to use with Angular 8.x, please use version [`angular-plotly.js@1.x`](https://github.com/plotly/angular-plotly.js/tree/1.x).
2332

@@ -208,8 +217,8 @@ import { PlotlyViaCDNModule } from 'angular-plotly.js';
208217
imports: [
209218
CommonModule,
210219
PlotlyViaCDNModule.forRoot({
211-
version: '1.55.2' // can be `latest` or any version number (i.e.: '1.40.0')
212-
bundleName: 'basic' // optional: can be null (for full) or 'basic', 'cartesian', 'geo', 'gl3d', 'gl2d', 'mapbox' or 'finance'
220+
version: '2.35.3', // pin a Plotly version for reproducible builds
221+
bundleName: 'basic' // optional: null (full), 'basic', 'cartesian', 'geo', 'gl3d', 'gl2d', 'mapbox', 'finance', or 'strict'
213222
}),
214223
],
215224
...
@@ -231,7 +240,6 @@ PlotlyViaCDNModule.forRoot({
231240

232241

233242
// For custom CDN URL
234-
PlotlyViaCDNModule.loadViaCDN('custom', );
235243
PlotlyViaCDNModule.forRoot({
236244
cdnProvider: 'custom', // cloudflare doesn't support `latest`. It is mandatory to supply version.
237245
customUrl: 'https://custom.cdn/url' // can be used directly for any self hosted plotly bundle
@@ -307,6 +315,12 @@ To run the tests:
307315
$ npm run test
308316
```
309317

318+
To verify the exact npm package contents:
319+
320+
```bash
321+
$ npm run verify:package
322+
```
323+
310324
## FAQ
311325

312326
Please, check the [FAQ](FAQ.md)

angular.json

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
{
22
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
33
"version": 1,
4+
"cli": {
5+
"cache": {
6+
"enabled": false
7+
}
8+
},
49
"newProjectRoot": "projects",
510
"projects": {
611
"plotly": {
@@ -66,20 +71,23 @@
6671
"projects/demo_app/src/styles.css"
6772
],
6873
"scripts": [],
74+
"allowedCommonJsDependencies": [
75+
"plotly.js-dist"
76+
],
6977
"browser": "projects/demo_app/src/main.ts"
7078
},
7179
"configurations": {
7280
"production": {
7381
"budgets": [
7482
{
7583
"type": "initial",
76-
"maximumWarning": "500kb",
77-
"maximumError": "1mb"
84+
"maximumWarning": "5mb",
85+
"maximumError": "6mb"
7886
},
7987
{
8088
"type": "anyComponentStyle",
81-
"maximumWarning": "2kb",
82-
"maximumError": "4kb"
89+
"maximumWarning": "4kb",
90+
"maximumError": "6kb"
8391
}
8492
],
8593
"outputHashing": "all"

devdocs.md

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
11
## How to publish on npm
22

3-
* Update the version in package.json
4-
* Update the version in projects/plotly/package.json
5-
* Update the CHANGELOG.md
6-
* `ng test --code-coverage=true --progress=true --watch=false`
7-
* `cp README.md angular-plotly.png projects/plotly`
8-
* `ng build plotly --configuration production`
9-
* `git commit -am "<version>"`
10-
* `git tag -a <version> -m <version>`
11-
* `git push --tags`
12-
* `git push`
13-
* `cd dist/plotly`
14-
* `npm publish`
3+
Follow [MAINTENANCE.md](MAINTENANCE.md). Releases are built from a clean
4+
checkout, validated by CI and `npm run verify:package`, published to the
5+
branch-specific `angularN` npm tag with 2FA, and then tagged with a signed
6+
annotated `vN.x.y` Git tag. Only the current Angular major is promoted to
7+
`latest`.

0 commit comments

Comments
 (0)