raain-model 3.0.9 → 3.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,70 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.0.11] - 2025-04-25
11
+
12
+ ### Added
13
+
14
+ - New script for squashing commits (scripts/bp/squash-commits.js)
15
+ - New script for switching dependencies (scripts/bp/switch-dependencies.js)
16
+ - New script for updating changelog dates (scripts/bp/update-changelog-date.js)
17
+ - Added bpstatus.json for build process status tracking
18
+ - Added src/bpInfo.ts for version information
19
+
20
+ ### Changed
21
+
22
+ - Updated build process and CI workflow
23
+ - Improved RadarNode and RainComputationMap implementations
24
+ - Updated documentation in .memory-bank folder
25
+ - Refactored release process
26
+
27
+ ### Removed
28
+
29
+ - Removed RELEASE_PROCESS.md (content moved to README.md)
30
+ - Removed scripts/update-changelog.js and scripts/verify-changelog.js
31
+ - Removed specs/REQUIREMENTS.md and specs/TECHNICAL.md
32
+
33
+ ## [3.0.10] - 2025-04-25
34
+
35
+ ### Added
36
+
37
+ - Improved build process with new scripts
38
+ - Enhanced project structure
39
+
40
+ ### Changed
41
+
42
+ - Updated dependencies to latest versions
43
+ - Improved code quality and type safety
44
+
45
+ ## [3.0.9] - 2025-04-25
46
+
47
+ ### Changed
48
+
49
+ - Fixed documentation inconsistencies
50
+ - Updated all documentation to reflect latest changes
51
+ - Regenerated API documentation
52
+
53
+ ## [3.0.8] - 2025-04-25
54
+
55
+ ### Changed
56
+
57
+ - Minor improvements to error handling
58
+ - Updated dependencies to latest versions
59
+
60
+ ## [3.0.7] - 2025-04-25
61
+
62
+ ### Fixed
63
+
64
+ - Edge case in radar data processing
65
+ - Performance issue in quality assessment
66
+
67
+ ## [3.0.6] - 2025-04-25
68
+
69
+ ### Added
70
+
71
+ - Enhanced support for multiple radar sources
72
+ - Improved integration with physical rain gauge stations
73
+
10
74
  ## [3.0.5] - 2025-04-25
11
75
 
12
76
  ### Changed
@@ -21,20 +85,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
21
85
 
22
86
  - Improved type safety by changing configurationAsJSON parameter from `any` to `string` in RainNode
23
87
  - Updated .gitignore to exclude .output.txt file
24
-
25
- ## [3.0.3] - 2025-04-17
88
+ - Modified parameter types from `any` to `string` for configurationAsJSON
89
+ - Enhanced node creation with proper link handling
90
+ - Improved type safety and error handling across components
26
91
 
27
92
  ### Added
28
93
 
29
94
  - Enhanced support for string IDs in team parameters
30
95
  - Improved error handling in getMapData() methods
31
96
 
32
- ### Changed
33
-
34
- - Modified parameter types from `any` to `string` for configurationAsJSON
35
- - Enhanced node creation with proper link handling
36
- - Improved type safety and error handling across components
37
-
38
97
  ## [3.0.2] - 2025-04-17
39
98
 
40
99
  ### Added
@@ -91,7 +150,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
91
150
  - Investigating performance optimizations
92
151
  - Exploring new quality metric algorithms
93
152
 
94
- ## [2.6.9] - 2025-03-21
153
+ ## [2.6.9] - 2024-03-21
95
154
 
96
155
  ### Added
97
156
 
@@ -119,7 +178,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
119
178
  - Enhanced speed matrix container comparison calculations
120
179
  - Refined quality control mechanisms
121
180
 
122
- ## [2.6.8] - 2025-03-16
181
+ ## [2.6.8] - 2024-03-16
123
182
 
124
183
  ### Fixed
125
184
 
@@ -130,7 +189,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
130
189
  - Optimized filtering algorithms
131
190
  - Improved error handling in measurement processing
132
191
 
133
- ## [2.6.7] - 2025-02-24
192
+ ## [2.6.7] - 2024-02-24
134
193
 
135
194
  ### Fixed
136
195
 
@@ -253,7 +312,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
253
312
  - Initial release
254
313
  - First extracts from RAAIN services
255
314
 
256
- [Unreleased]: https://github.com/raainio/raain-model/compare/v3.0.5...HEAD
315
+ [Unreleased]: https://github.com/raainio/raain-model/compare/v3.0.11...HEAD
316
+
317
+ [3.0.11]: https://github.com/raainio/raain-model/compare/v3.0.10...v3.0.11
318
+
319
+ [3.0.10]: https://github.com/raainio/raain-model/compare/v3.0.9...v3.0.10
320
+
321
+ [3.0.9]: https://github.com/raainio/raain-model/compare/v3.0.8...v3.0.9
322
+
323
+ [3.0.8]: https://github.com/raainio/raain-model/compare/v3.0.7...v3.0.8
324
+
325
+ [3.0.7]: https://github.com/raainio/raain-model/compare/v3.0.6...v3.0.7
326
+
327
+ [3.0.6]: https://github.com/raainio/raain-model/compare/v3.0.5...v3.0.6
257
328
 
258
329
  [3.0.5]: https://github.com/raainio/raain-model/compare/v3.0.4...v3.0.5
259
330
 
package/README.md CHANGED
@@ -63,8 +63,10 @@ and [swagger](https://api.sandbox.radartorain.com/v2/docs).
63
63
 
64
64
  ### Memory Bank
65
65
 
66
- This project uses a Memory Bank for comprehensive documentation and context retention. The Memory Bank is located in the `.memory-bank` directory and contains the following files:
66
+ This project uses a Memory Bank for comprehensive documentation and context retention. The Memory Bank is located in the
67
+ `.memory-bank` directory and contains the following files:
67
68
 
69
+ - `memory-bank-rules.md`: Rules to follow and to consider in all contexts
68
70
  - `projectbrief.md`: Overview of the project, core requirements, and goals
69
71
  - `productContext.md`: Why the project exists, problems it solves, and how it works
70
72
  - `systemPatterns.md`: System architecture, key technical decisions, and design patterns
@@ -72,6 +74,8 @@ This project uses a Memory Bank for comprehensive documentation and context rete
72
74
  - `activeContext.md`: Current work focus, recent changes, and next steps
73
75
  - `progress.md`: What works, what's left to build, and known issues
74
76
 
77
+ => !! These files should always be considered as a context and keep up-to-date !!
78
+
75
79
  ### Key Components
76
80
 
77
81
  - `RainNode`: Core class for rain measurement nodes
@@ -97,7 +101,3 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
97
101
  ## 📅 Changelog
98
102
 
99
103
  See [Changelog](./CHANGELOG.md) for version history and changes.
100
-
101
- ## 🚢 Release Process
102
-
103
- This project follows a structured release process. For detailed information about how releases are managed, please see the [Release Process Documentation](./RELEASE_PROCESS.md).
package/bpInfo.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export declare const bpInfo: {
2
+ version: string;
3
+ };
package/bpInfo.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bpInfo = void 0;
4
+ exports.bpInfo = { version: 'v3.0.11' };
5
+ //# sourceMappingURL=bpInfo.js.map
package/bpInfo.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpInfo.js","sourceRoot":"","sources":["../src/bpInfo.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG,EAAC,OAAO,EAAC,SAAS,EAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "raain-model",
3
- "version": "3.0.9",
3
+ "version": "3.0.11",
4
4
  "author": "contact@radartorain.com",
5
5
  "homepage": "https://github.com/raainio/raain-model",
6
6
  "description": "radartorain.com api model",
@@ -12,6 +12,20 @@
12
12
  "license": "MIT",
13
13
  "main": "./index.js",
14
14
  "types": "./index.d.ts",
15
+ "scripts": {
16
+ "bp:_clean": "rm -rf package-lock.json node_modules .gen .logs .nyc_output .logs .output.txt .coverage .coverage_temp dist app && npm i",
17
+ "bp:bump": "OLD_VERSION=\"v$(node -e \"console.log(require('./package.json').version)\")\" && VERSION=\"$(npm version patch --no-git-tag-version)\" && npm i && echo \"export const bpInfo = {version:'$VERSION'}\" > ./src/bpInfo.ts && git tag $OLD_VERSION && git checkout -b $VERSION",
18
+ "bp:update-changelog-dates": "node ./scripts/bp/update-changelog-date.js",
19
+ "bp:use-local-deps": "node ./scripts/bp/switch-dependencies.js local && npm run bp:_clean",
20
+ "bp:use-remote-deps": "node ./scripts/bp/switch-dependencies.js remote && npm run bp:_clean",
21
+ "bp:branch:push": "git add . && git commit -m \"chore: release v$(node -p \"require('./package.json').version\")\" && git push",
22
+ "bp:branch:squash": "node ./scripts/bp/squash-commits.js",
23
+ "build": "npm run build-dist",
24
+ "build-dist": "rm -rf dist/ && npx tsc && cp package.json dist/ && cp *.md dist/",
25
+ "test": "nyc mocha --require ts-node/register 'specs/**/**.spec.ts'",
26
+ "docs": "typedoc --out docs src/",
27
+ "docs:serve": "npx serve docs"
28
+ },
15
29
  "devDependencies": {
16
30
  "@testdeck/mocha": "^0.3.3",
17
31
  "@types/chai": "^4.3.10",
@@ -22,19 +36,10 @@
22
36
  "chai-spies": "^1.1.0",
23
37
  "hash-it": "^6.0.0",
24
38
  "mocha": "^10.2.0",
39
+ "nyc": "^17.1.0",
25
40
  "ts-node": "^8.10.2",
26
41
  "tslint": "^6.1.3",
27
42
  "typedoc": "^0.25.12",
28
43
  "typescript": "^5.0.4"
29
- },
30
- "scripts": {
31
- "bump": "VERSION=\"$(npm version patch --no-git-tag-version)\" && npm i",
32
- "build": "npm run build-dist",
33
- "build-dist": "rm -rf dist/ && npx tsc && cp package.json dist/ && cp *.md dist/",
34
- "test": "mocha --require ts-node/register 'specs/**/**.spec.ts'",
35
- "docs": "typedoc --out docs src/",
36
- "docs:serve": "npx serve docs",
37
- "update-changelog": "node scripts/update-changelog.js",
38
- "verify-changelog": "node scripts/verify-changelog.js"
39
44
  }
40
45
  }
@@ -10,6 +10,7 @@ export declare class RadarNode extends RaainNode {
10
10
  latitude: number;
11
11
  longitude: number;
12
12
  team: TeamNode;
13
+ open: boolean;
13
14
  private configurationAsJSON;
14
15
  constructor(json: {
15
16
  id: string;
@@ -19,6 +20,7 @@ export declare class RadarNode extends RaainNode {
19
20
  team: string | TeamNode;
20
21
  description?: string;
21
22
  technicalInfos?: string;
23
+ open?: boolean;
22
24
  links?: Link[] | RaainNode[];
23
25
  version?: string;
24
26
  configurationAsJSON?: string;
@@ -17,6 +17,7 @@ class RadarNode extends organization_1.RaainNode {
17
17
  if (typeof json.team === 'string') {
18
18
  this.team = new organization_1.TeamNode({ id: json.team });
19
19
  }
20
+ this.open = !!(json === null || json === void 0 ? void 0 : json.open);
20
21
  this.setConfiguration(json.configurationAsJSON);
21
22
  }
22
23
  toJSON() {
@@ -1 +1 @@
1
- {"version":3,"file":"RadarNode.js","sourceRoot":"","sources":["../../src/radar/RadarNode.ts"],"names":[],"mappings":";;;AAAA,kDAA0D;AAE1D;;GAEG;AACH,MAAa,SAAU,SAAQ,wBAAS;IAcpC,YAAY,IAWX;QACG,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAgB,CAAC;QAClC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,uBAAQ,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAEM,MAAM;;QACT,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO;YACH,GAAG,IAAI;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,EAAE,KAAI,IAAI,CAAC,IAAI;YAChC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;SAChD,CAAC;IACN,CAAC;IAEM,gBAAgB,CAAC,aAA2B;QAC/C,IAAI,IAAI,GAAG,aAAa,CAAC;QACzB,IAAI,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAEM,gBAAgB;QACnB,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,WAAW;QACjB,OAAO,SAAS,CAAC,IAAI,CAAC;IAC1B,CAAC;;AA3EL,8BA6EC;AA3EiB,cAAI,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"RadarNode.js","sourceRoot":"","sources":["../../src/radar/RadarNode.ts"],"names":[],"mappings":";;;AAAA,kDAA0D;AAE1D;;GAEG;AACH,MAAa,SAAU,SAAQ,wBAAS;IAepC,YAAY,IAYX;QACG,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAgB,CAAC;QAClC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,uBAAQ,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,CAAC;QACzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAEM,MAAM;;QACT,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO;YACH,GAAG,IAAI;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,EAAE,KAAI,IAAI,CAAC,IAAI;YAChC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;SAChD,CAAC;IACN,CAAC;IAEM,gBAAgB,CAAC,aAA2B;QAC/C,IAAI,IAAI,GAAG,aAAa,CAAC;QACzB,IAAI,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAEM,gBAAgB;QACnB,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,WAAW;QACjB,OAAO,SAAS,CAAC,IAAI,CAAC;IAC1B,CAAC;;AA9EL,8BAgFC;AA9EiB,cAAI,GAAG,OAAO,CAAC"}
@@ -38,7 +38,7 @@ export declare class RainComputationMap extends RainComputationAbstract {
38
38
  * @param json.map - Array of rain measurements or stringified JSON
39
39
  * @param json.links - Optional array of related nodes or links
40
40
  * @param json.version - Optional version string
41
- * @param json.quality - Optional quality metric (0-1)
41
+ * @param json.quality - Optional quality metric (0-1), -1 if unknown
42
42
  * @param json.progressIngest - Optional ingestion progress (0-100)
43
43
  * @param json.progressComputing - Optional computing progress (0-100)
44
44
  * @param json.timeSpentInMs - Optional computation time in milliseconds
@@ -34,7 +34,7 @@ class RainComputationMap extends RainComputationAbstract_1.RainComputationAbstra
34
34
  * @param json.map - Array of rain measurements or stringified JSON
35
35
  * @param json.links - Optional array of related nodes or links
36
36
  * @param json.version - Optional version string
37
- * @param json.quality - Optional quality metric (0-1)
37
+ * @param json.quality - Optional quality metric (0-1), -1 if unknown
38
38
  * @param json.progressIngest - Optional ingestion progress (0-100)
39
39
  * @param json.progressComputing - Optional computing progress (0-100)
40
40
  * @param json.timeSpentInMs - Optional computation time in milliseconds
@@ -1,198 +0,0 @@
1
- # Release Process Documentation
2
-
3
- ⚠️ IMPORTANT: Released are done by GitHub CI
4
-
5
- - No npm publish
6
- - No manual releases
7
-
8
- ## Patch Version Release Steps
9
-
10
- ### Prerequisites
11
-
12
- - Make sure you have all dependencies installed
13
- - Ensure you're starting from an up-to-date master branch
14
-
15
- ### Step-by-Step Process
16
-
17
- ⚠️ If any task fails, you must:
18
-
19
- - NOT proceed with any further steps
20
- - NOT try to fix or set the environment manually
21
- - Alert the team and request guidance
22
-
23
- 1. **Initial Verification**
24
- ```bash
25
- npm test
26
- ```
27
- This command runs the test suite. Do not proceed if any tests fail.
28
-
29
- 2. **Documentation Sync**
30
- Ensure all documentation is up-to-date with recent changes:
31
- - README.md
32
- - specs/*.md files
33
- - CHANGELOG.md
34
-
35
- 3. **Update Version Number**
36
- ```bash
37
- npm run bump
38
- ```
39
- This command automatically increments the patch version in package.json.
40
-
41
- 4. **Update CHANGELOG.md**
42
- - Move items from [Unreleased] section to a new version section
43
- - Run the update-changelog script to automatically add the current system date in ISO format (YYYY-MM-DD):
44
- ```bash
45
- npm run update-changelog
46
- ```
47
- - Update the version comparison links at the bottom of the file
48
-
49
- 5. **Version Control**
50
- ```bash
51
- git add .
52
- git commit -m "release: patch version X.Y.Z with [explanation of changes]"
53
- git tag -a vX.Y.Z -m "Version X.Y.Z"
54
- git push
55
- git push --tags
56
- ```
57
- Replace X.Y.Z with the actual version number from package.json and provide a clear explanation of changes.
58
-
59
- ## Minor and Major Version Release Steps
60
-
61
- For minor (feature) and major (breaking change) version releases, follow the same steps as for patch releases, with
62
- these differences:
63
-
64
- ### Minor Version (Features)
65
-
66
- 1. Use the following command instead of `npm run bump`:
67
- ```bash
68
- npm version minor --no-git-tag-version
69
- ```
70
-
71
- 2. In the commit message, use:
72
- ```bash
73
- git commit -m "release: minor version X.Y.0 with [explanation of new features]"
74
- ```
75
-
76
- 3. Ensure all new features are properly documented in the CHANGELOG.md
77
-
78
- ### Major Version (Breaking Changes)
79
-
80
- 1. Use the following command instead of `npm run bump`:
81
- ```bash
82
- npm version major --no-git-tag-version
83
- ```
84
-
85
- 2. In the commit message, use:
86
- ```bash
87
- git commit -m "release: major version X.0.0 with [explanation of breaking changes]"
88
- ```
89
-
90
- 3. Ensure all breaking changes are clearly documented in the CHANGELOG.md
91
- 4. Update the README.md to reflect any changes in usage patterns
92
- 5. Consider creating a migration guide for users upgrading from the previous major version
93
-
94
- ## For all Version Release Steps (Patch, Minor, or Major)
95
-
96
- ### Important Notes
97
-
98
- - Always run and verify tests before pushing
99
- - Document all significant changes in the commit message
100
- - Monitor the merge process for any conflicts
101
-
102
- ### Post-Release Verification
103
-
104
- - Verify the release is properly tagged
105
- - Test the build process:
106
- ```bash
107
- npm run build
108
- ```
109
- - Verify the built package can be installed:
110
- ```bash
111
- cd dist
112
- npm pack
113
- # This creates a .tgz file that can be installed locally
114
- # Install in a test project to verify it works:
115
- # npm install /path/to/raain-model-X.Y.Z.tgz
116
- ```
117
-
118
- ### Version Management Best Practices
119
-
120
- - Always check the current version in package.json before starting the release process
121
- - Use `npm run bump` to increment the version number only if needed
122
- - Ensure version numbers are consistent across:
123
- - package.json
124
- - git tags
125
- - CHANGELOG.md entries
126
- - Never manually edit version numbers
127
-
128
- ### CHANGELOG Management
129
-
130
- - Keep the [Unreleased] section at the top of CHANGELOG.md
131
- - Move unreleased changes to a new version section during release
132
- - Include the current date in ISO format (YYYY-MM-DD)
133
- - Organize changes under appropriate categories:
134
- - Added
135
- - Changed
136
- - Fixed
137
- - Dependencies
138
- - Technical Details
139
-
140
- ### Common Pitfalls to Avoid
141
-
142
- - Don't push any changes before receiving explicit "release" command
143
- - Don't create tags with placeholder version numbers (X.Y.Z)
144
- - Don't forget to push both commits and tags (only after "release" command)
145
- - Don't manually publish to npm
146
- - Don't bypass CI process
147
-
148
- ### Recovery Procedures
149
-
150
- If incorrect version numbers are used:
151
-
152
- 1. Delete the incorrect tag locally and remotely:
153
- ```bash
154
- git tag -d <incorrect_tag>
155
- git push origin :<incorrect_tag>
156
- ```
157
- 2. Update version numbers in all relevant files
158
- 3. Create new tag with correct version
159
- 4. Push changes and new tag
160
-
161
- If merge conflicts occur:
162
-
163
- 1. Document the conflicting files
164
- 2. Resolve conflicts locally
165
- 3. Commit the resolution with a clear message
166
- 4. Push the changes
167
- 5. Verify the merge was successful
168
-
169
- ### Directory Navigation
170
-
171
- - Return to the root directory for git operations
172
- - Use absolute paths when necessary to avoid confusion
173
-
174
- ### CI/CD Integration
175
-
176
- This project uses GitHub Actions for continuous integration and deployment. The CI workflow is defined in
177
- `.github/workflows/ci.yml` and is triggered on pushes to the master branch. The workflow includes:
178
-
179
- - Running tests
180
- - Building the project
181
- - Generating documentation and deploying to GitHub Pages
182
- - Publishing the package to npm
183
-
184
- To ensure successful CI/CD:
185
-
186
- - Always verify that tests pass locally before pushing to master
187
- - Check the GitHub Actions tab after pushing to monitor the workflow
188
- - Address any CI failures immediately
189
- - Ensure you have the necessary secrets configured (NPM_TOKEN) for npm publishing
190
-
191
- ### Future Improvements
192
-
193
- - Consider automating version consistency checks
194
- - Add pre-commit hooks for version validation
195
- - Implement automated changelog updates
196
- - Add automated testing of the release process
197
- - Consider implementing a release automation script
198
- - Enhance the CI/CD pipeline with additional checks and deployments