You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _pages/develop/architecture.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -257,7 +257,7 @@ It gets more subtle when making heavy use of software libraries (sometimes calle
257
257
Some cardinal reasons to strive for reproducible builds are:
258
258
259
259
- Reproducible builds are essential for the scientific method (see sidebar right).
260
-
- It becomes possible to use a [feature branch workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow) development style where the `master` branch is always release ready—or even a {% include wikipedia title='Continuous delivery' text='continuous delivery'%} approach.
260
+
- It becomes possible to use a [feature branch workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow) development style where the main branch is always release ready—or even a {% include wikipedia title='Continuous delivery' text='continuous delivery'%} approach.
261
261
-[Debugging with git-bisect](/develop/git/pinpoint-regressions) becomes feasible.
262
262
- As a consequence, it avoids {% include wikipedia title='Technical debt' text='technical debt'%} in favor of a robust development style.
263
263
- It attracts more developers to the project, since things "just work" out of the box.
@@ -268,7 +268,7 @@ For the reasons stated above, the SciJava software components strive for reprodu
268
268
269
269
Each component depends on release [versions](http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-syntax.html#pom-reationships-sect-versions) of *all* its dependencies—never on [snapshots](http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-syntax.html#pom-relationships-sect-snapshot-versions) or [version ranges](http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-project-dependencies.html#pom-relationships-sect-version-ranges). A Maven snapshot is a moving target, and depending on one results in an irreproducible build. Similarly, all Maven plugins used, as well as the parent POM, are also declared at release versions. In short: all `<version>` tags specify release versions, never `SNAPSHOT` or `LATEST` versions. We use the [Maven Enforcer Plugin](http://maven.apache.org/enforcer/maven-enforcer-plugin/) to enforce this requirement (though it can be temporarily disabled by setting the `enforcer.skip` property).
270
270
271
-
We sometimes use `SNAPSHOT` versions temporarily on topic branches. However, we always [rewrite them](/develop/git#rewriting-history) before merging to master, to purge all `SNAPSHOT` references, so that all commits in the history build reproducibly. We use SciJava's [check-branch.sh](https://github.com/scijava/scijava-scripts/blob/1386a7b0bc9e832d45f925202e1382717cf4a706/check-branch.sh) script to ensure all commits on a topic branch build cleanly with passing tests.
271
+
We sometimes use `SNAPSHOT` versions temporarily on topic branches. However, we always [rewrite them](/develop/git#rewriting-history) before merging to main, to purge all `SNAPSHOT` references, so that all commits in the history build reproducibly. We use SciJava's [check-branch.sh](https://github.com/scijava/scijava-scripts/blob/1386a7b0bc9e832d45f925202e1382717cf4a706/check-branch.sh) script to ensure all commits on a topic branch build cleanly with passing tests.
272
272
273
273
## Using snapshot couplings during development
274
274
@@ -293,7 +293,7 @@ In the case of Eclipse, you may need to "Update Maven project" in order to see t
293
293
294
294
{% include notice icon="warning" content='Current versions of the Eclipse Maven integration (tested with Eclipse Mars) fail to correctly resolve the `LATEST` version tag to `SNAPSHOT`s. Use the command-line client instead.' %}
295
295
296
-
Either way, ***be sure to work on a topic branch while developing code in this fashion.*** You will need to clean up your Git history afterwards before merging things to the `master` branch, in order to achieve [reproducible builds](#reproducible-builds).
296
+
Either way, ***Be sure to work on a topic branch while developing code in this fashion.*** You will need to clean up your Git history afterwards before merging things to the main branch, in order to achieve [reproducible builds](#reproducible-builds).
0 commit comments