Skip to content

Commit 83d0ddd

Browse files
authored
Merge pull request #524 from buildingSMART/IVS-822-adapt-platform-spec
adapt platform spec (IVS-822)
2 parents 74fee83 + 566e119 commit 83d0ddd

1 file changed

Lines changed: 142 additions & 0 deletions

File tree

adapt_platform.md

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
# Spec for adapting platform to support the annual release policy
2+
3+
## Background
4+
5+
This document is intended as a design document for the changes needed to accommodate the annual release policy.
6+
More specifically, the release of v1.0.0 and exiting the beta phase means that changes and additions to the rules
7+
will need to be firewalled from the production environment that is being used to populate scorecards.
8+
9+
## Release policy
10+
11+
These are the steps involved and business rules, with rough timelines.
12+
13+
1. exit beta, 1.0.0 released Q1 2026
14+
2. no new rules or rule fixes for version 1 that affect vendors seeking scorecard-based certification
15+
- Warnings raised by Industry Best Practice (IBP) rules are not included in the assessment of a specific vendor tool version
16+
- Therefore new IBP rules may be released under the 1.0 major version label when deemed appropriate by the product manager
17+
3. other performance improvements, UI adjustments are ok as they do not affect scorecard-based assessment
18+
4. new rules and rule fixes continue "behind the scenes"
19+
5. these new rules are available on a limited, invitation-only basis for beta testing
20+
- v2.0.0-b1
21+
- v2.0.0-b2
22+
- v2.0.0-b3
23+
- ...
24+
6. Q4 2026 - rule freeze and change from beta to release candidate v2.0.0-rc1
25+
7. Q1 2027 - rule fixes only
26+
- v2.0.0-rc2
27+
- v2.0.0-rc3
28+
- ...
29+
8. End of Q1 2027 - release of 2.0.0 to PROD environment
30+
31+
## Repositories, submodules, and environments
32+
33+
Submodules will continue to be utilized as they have in the past -
34+
namely with `buildingSMART/validate` as the primary repository and
35+
`buildingSMART/ifc-data-model` and `buildingSMART/ifc-gherkin-rules` as submodules.
36+
37+
Of these two submodules, only `buildingSMART/ifc-gherkin-rules` will be affected by
38+
the adaption of the platform.
39+
A new branch named `preview` will be created in both `validate` and `ifc-gherkin-rules`.
40+
41+
Note: this branch in `validate` will merely be used to point at a specific (different) commit in the
42+
`ifc-gherkin-rules` submodule.
43+
All other content will track the `validate/development` branch.
44+
45+
### Environments
46+
47+
There are currently two environments, DEV and PROD.
48+
These two environment will continue as they have in the past.
49+
A new environment PREVIEW will be spun up (instance sizes and capacities to match DEV)
50+
and will go-live with new rules as they are developed.
51+
52+
#### Correlation to branch names
53+
54+
| Name | Deploys from branch | Notes |
55+
|----------|--------------------------|-----------------------------------------|
56+
| PROD | validate\/main | 1.x releases until Q1 2027 |
57+
| DEV | validate\/development | unchanged from beta phase |
58+
| PREVIEW | validate\/preview | new rules and rule fixes (v.2.0) |
59+
60+
### Branching Strategy
61+
62+
_Note: square symbols indicate an update to a submodule reference, not a merge._
63+
64+
```mermaid
65+
%%{init: {
66+
'logLevel': 'debug',
67+
'theme': 'dark',
68+
'gitGraph': {
69+
'parallelCommits': true,
70+
'mainBranchName': 'validate/main',
71+
'commit': {
72+
'highlight': {
73+
'fill': '#ffffff',
74+
'stroke': '#ff6b6b',
75+
'stroke-width': '1px',
76+
'stroke-dasharray': '3,3'
77+
}
78+
}
79+
}
80+
}}%%
81+
gitGraph
82+
commit
83+
84+
branch "validate/development" order: 1
85+
branch "ifc-gherkin-rules/development" order: 2
86+
commit
87+
commit tag:"1.0.1"
88+
89+
checkout "validate/development"
90+
merge "ifc-gherkin-rules/development" tag:"1.0.1" type: HIGHLIGHT
91+
92+
checkout "validate/main"
93+
merge "validate/development" tag:"1.0.1"
94+
95+
checkout "validate/development"
96+
commit
97+
commit tag:"1.0.2"
98+
99+
checkout "validate/main"
100+
merge "validate/development" tag:"1.0.2"
101+
102+
branch "validate/preview" order: 3
103+
checkout "ifc-gherkin-rules/development"
104+
branch "ifc-gherkin-rules/preview" order: 4
105+
commit
106+
commit
107+
checkout "validate/preview"
108+
merge "ifc-gherkin-rules/preview" tag:"2.0.0b1" type: HIGHLIGHT
109+
110+
checkout "validate/development"
111+
commit
112+
commit tag:"1.1.0"
113+
114+
checkout "validate/main"
115+
merge "validate/development" tag:"1.1.0"
116+
117+
118+
checkout "ifc-gherkin-rules/preview"
119+
commit
120+
commit
121+
checkout "validate/preview"
122+
merge "ifc-gherkin-rules/preview" tag:"2.0.0b2" type: HIGHLIGHT
123+
```
124+
125+
## Rule Catalog Documentation
126+
127+
The Github Workflow [pages-build-deployment](https://github.com/buildingSMART/ifc-gherkin-rules/actions/workflows/pages/pages-build-deployment)
128+
generates documentation of all rules and gherkin step implementations.
129+
This documentation is then deployed to branch-specific URLS, e.g.
130+
131+
[https://buildingsmart.github.io/ifc-gherkin-rules/branches/main/features/index.html]
132+
133+
and
134+
135+
[https://buildingsmart.github.io/ifc-gherkin-rules/branches/development/features/index.html]
136+
137+
and
138+
139+
[https://buildingsmart.github.io/ifc-gherkin-rules/branches/preview/features/index.html]
140+
141+
Therefore this Github action does not require any changes to accommodate the new `preview` branch
142+
or any other adaptations to the platform to support the rules freeze.

0 commit comments

Comments
 (0)