Comments (7)
Hi @wegmans-alex-beck !
The way we're currently managing super-linter releases is (loosely) based on the Conventional Commits spec. Given a version identifier (vMAJOR.MINOR.PATCH
):
- We bump
MAJOR
on breaking changes only. - We bump
MINOR
on new features (example: we add a new linter or a new backward-compatible configuration option). - We bump
PATCH
on bugfixes and linter updates.
Conditionally enabling linters based on when we include them is too complex for us to maintain. Also, we're probably not going to change the fact that new linters are enabled by default when we introduce them because that would be a breaking change that we're not considering at the moment.
One could argue that adding a new linter might be considered a (potentially) breaking change, but we decided against that, in the end. The main reason emerged when we started thinking about how to handle dependency updates for linters. For example, what shall we do if a linter that we currently ship with super-linter adds a new check, or includes a bugfix for an existing check that was broken? All these changes are potentially breaking for downstream users. With this in mind, we decided for the strategy I described above.
I would advise using the full version identifier (example: v6.4.0
, instead of a partial one (example: v6.4
or v6
) for builds where you want to make more reproducible.
from super-linter.
We are all humans, but last times this also happens to me. I think something like stable
tag would be a solution.
from super-linter.
What should the stable
tag point at?
from super-linter.
What should the
stable
tag point at?
At the last stable release :) the most stable version, or any point where we can be sure.
Some version where the most of bugs are closed and no breaking features.
from super-linter.
How would we decide what "stable release" means? It's a somewhat vague concept. :)
It could mean different things to different people.
I think we might be overcomplicating this because you can already use a fully qualified version identifier (example: v6.0.0
) instead of partial (unstable by definition) ones (v6.0
, v6
, latest
).
My suggestion here is to stick with a fully qualified version identifier that you consider stable/fine/working as you expect/etc. This is what you consider "stable".
Also, I would set appropriate branch protection rules. This would make upgrades less painful, especially if you have any system in place to automatically update (or propose updates) your dependencies, such as DependaBot or Renovate.
from super-linter.
I understand you: not so easy to decide what version is the most stable for all users. I think stable is when you run with defaults, the most bugs are already fixed and no new breaking features added.
So if you would like to suggest something like "this version is the most stable", or "this version is one of the best" I can pin them. But, yes, I can pin a special one instead of the latest
. Because sometimes I need to mergre a changes wihtout spending time for examing recently added tools. Let it be 6.4.1 :)
from super-linter.
Thanks for sharing the details of your use case. Perhaps we can close this.
from super-linter.
Related Issues (20)
- Behavior not supported, please either only include (VALIDATE=true) or exclude (VALIDATE=false) linters, but not both HOT 7
- Failed to deploy to production
- Superlinter workflow fail to download module error. HOT 11
- Support configuring the GitHub server URL HOT 5
- JSCPR yielding errors on files in excluded directory HOT 3
- Make the output of each linter available to users for further processing HOT 2
- v6 failing for missing default branch HOT 9
- Thank you super-linter contributors (2024-04-01..2024-04-30) HOT 1
- Missing Scope in GITHUB_ACTIONS Checks HOT 1
- Update Golang linter configuration to avoid the deprecated `linters.govet.check-shadowing` option HOT 1
- Don't require the full Git history HOT 4
- Accept an option to dump log output to github Job Summaries HOT 5
- Check: CKV2_GHA_1: "Ensure top-level permissions are not set to write-all" HOT 1
- `docs/disabling-linters.md` removed in `v6` — is this expected? HOT 3
- Configure a non-root user HOT 1
- ESLint Fails to Parse Configuration File with .mjs Extension HOT 9
- Failed to deploy to production
- Failed to deploy to production
- Failed to deploy to production
- Ensure that status checks take the dynamically built test suite into account
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from super-linter.