-
Notifications
You must be signed in to change notification settings - Fork 41
docs(standard): deprecate it.conforme.* keys #223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Deprecate it.conforme.* keys, as they refer to obsolete guidelines and/or are about legal compliance which maintainers are unlikely to take responsibility for. Because of that, in practice they are rarely used.
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
@yaml-9000 deprecation |
This is now marked as a national section change to the Standard and it will require the approval of the Steering Committee member representing the Country (@dptdgi) and at least 50% approve votes. cc @publiccodeyml/chair @publiccodeyml/steering-committee 📄 Voting procedure | 📄 Working Group Charter | 🤖 bot commands |
Thanks for your contribution 🙏 This is now marked as a The Chair will eventually pick up this proposal and start the voting procedure using cc @publiccodeyml/chair @publiccodeyml/steering-committee 📄 Voting procedure | 📄 Working Group Charter | 🤖 bot commands |
@yaml-9000 vote-start |
Voting is now open on this proposal! If you are a member of the Steering Committee you can now vote! The polls will stay open for 14 days, until Tue, 14 Oct 2025 07:14:49 GMT. Leave a 👍 (thumbs up) on this comment to accept the proposal or a 👎 (thumbs down) to reject it. cc @publiccodeyml/steering-committee 📄 Voting procedure | 📄 Working Group Charter | 🤖 bot commands |
@dptdgi Silence is formally allowed, but it would be much more constructive to have an explicit position, so the community can understand the rationale. |
Hello @bfabio,
does not hold. I made a quick check on a recent copy of the Italian catalogue (around 420 repos) and here are the normalized counts:
So ~380 repos use the keys and hundreds with yes. This is enough for me to keep them. I agree with you that the meaning of those flags is not so useful, do you think that instead of deprecating them we can think of better replacement (e.g. incorporating versioning, partial support) and offer a migration path? |
@dptdgi thanks for finally taking the time to look into this, but I think you might have missed a few important details about how this actually works. First, those numbers don't tell the whole story. The old publiccode-editor used to create many of those files didn't show those fields as optional unfortunately, even though they were. People either set them to random 'no' or were forced to add them. Also, the count is off to me: the Italian catalogue has 479 software entries right now, not 420. ❯ publiccode-api-client software | wc -l
479 Second, the publiccode-parser currently has a bug as well: when serializing, it sets those optional flags to false even when they are unset. This means that any data extracted via the APIs is misleading. That needs fixing and it makes the usage look higher than it really is. But more importantly, this is exactly what deprecations are for. These fields refer to conformance with models that are now deprecated, they makes no sense for new files and we can't semantically reuse them to mean some later versions of the model. It's precisely the way to later remove or replace those fields to have an upgrade path, since that requires a breaking change in the next major version.
If we don't remove stuff that needs to go, we're either holding back v1 or worse carrying into it and forcing another breaking change for v2 later. Also note that deprecating something does not remove it. Deprecated fields continue to work until a new major version, which adopters can choose to upgrade to whenever they want. Please take a look at the documentation and how the deprecation process and Semantic Versioning work in this project. |
Thank @bfabio for the detailed explanation, in short is not because they are not used, but because we are not sure they were used correctly.
Ok, but the diff is a minor percentage, as far as I know in the Italian catalogue there are repos counted twice and old unreachable repos are not purged and I would exclude 3rd party sources in the count (to focus only in the local use).
Oh, glad to know, but I did not used the publiccode parser but used the original publiccode.yml from the repos with some yq and sed. I think I run in the opposite problem (I missed some repos due their unavailability and your total count is higher because of that).
I think that proposing to deprecate the keys, without any proposal on a possible replacement (that does not need to be final) is not looking for a solution but just hiding a problem. Anyway I will forward the question to my colleagues at DTD to try to reach a consensus for this decision. |
No, the deprecation is because those keys don't make sense anymore for new files because those guidelines are deprecated: for example |
Ok, for lineeGuidaDesign but others are still valid, like gdpr and misureMinimeSicurezza, not sure about modelloInteroperabilita since the link is broken but the model may be the same. Deprecating all instead of only broken is another pain point of the proposal. |
We had a consultation, and we are in favor of the deprecation. For the future we may think of some keys that better specify some form of compliance with external references (being software or regulation). |
Deprecate
it.conforme.*
(conforme/lineeGuidaDesign
,conforme/modelloInteroperabilita
,misureMinimeSicurezza
,gdpr
) keys, as they refer to obsolete guidelines and/or are about legal compliance which maintainers are unlikely to take responsibility for.Because of that, in practice they are rarely used.