Skip to content

[master] Initial purge of community extensions#65971

Merged
dwoz merged 6 commits into
saltstack:masterfrom
dwoz:community-extension-purge
Apr 11, 2024
Merged

[master] Initial purge of community extensions#65971
dwoz merged 6 commits into
saltstack:masterfrom
dwoz:community-extension-purge

Conversation

@dwoz

@dwoz dwoz commented Jan 31, 2024

Copy link
Copy Markdown
Contributor

What does this PR do?

Initial purge of community extensions for 3008

#65970

Merge requirements satisfied?

[NOTICE] Bug fixes or features added to Salt require tests.

@dwoz dwoz requested a review from a team as a code owner January 31, 2024 21:27
@dwoz dwoz requested review from whytewolf and removed request for a team January 31, 2024 21:27
@salt-project-bot-prod-environment salt-project-bot-prod-environment Bot changed the title Initial purge of community extensions [master] Initial purge of community extensions Jan 31, 2024
Comment thread salt/states/virtualenv_mod.py
@dwoz dwoz changed the title [master] Initial purge of community extensions [wip] [master] Initial purge of community extensions Jan 31, 2024
@max-arnold

max-arnold commented Feb 1, 2024

Copy link
Copy Markdown
Contributor

Things that seem useful to keep in core (esp. sqlite modules, nacl modules, pkg runner, aptpkg/denconfmod states, rsync state):

engines:
stalekey.py <============== Useful for Cloud environments where minions come and go

modules:
smtp

output:
profile

pillar:
cmd_yaml <===============
cmd_json <==============
http_yaml
http_json
nacl
sqlite3 <===============

queues:
pgjsonb_queue
sqlite_queue <================

renderers:
pydsl

returners:
smtp_return
sqlite3_return <===================

runners:
nacl
pkg <===================
thin <???????? Salt-ssh?

sdb:
cache
rest
sqlite3 <===============

serializers:
keyvalue

states:
aptpkg <===================
debconfmod <==============
ethtool
kernelpkg
rsync <==================
smtp
sqlite3 <==================
xml

Alternatively, what is the process to get them back into core, if there is a significant demand?

@dwoz dwoz force-pushed the community-extension-purge branch 2 times, most recently from a4dd4af to 18b4347 Compare February 2, 2024 01:04
@dwoz dwoz added this to the Argon v3008.0 milestone Feb 2, 2024
@dwoz dwoz force-pushed the community-extension-purge branch from 18b4347 to 04189d1 Compare February 2, 2024 03:59
dmurphy18
dmurphy18 previously approved these changes Feb 20, 2024
dwoz and others added 6 commits April 5, 2024 16:17
- Add back cmd_json and cmd_yaml pillars for test fixes
- Remove broken tests and bump cache seed
- Fix filemap
- Restrict pyzmq to <25.1.1
- Fix pkg tests
- Fix performance test
- skip tests that failed due to zypperpkg module removal
- Fix tmp path so test passes on windows
- Remove files accidently added
@dwoz

dwoz commented Apr 8, 2024

Copy link
Copy Markdown
Contributor Author

Alternatively, what is the process to get them back into core, if there is a significant demand?

At this point it's very unlikely that anything removed by this PR will get added back in. If there is anything out of this list that is useful then there should be sufficient enough motivation for someone other than the core team to maintain a salt extension. Even if something is deemed to be worth of being supported further by the core team. We'd make an extension rather than adding it back into Salt. The one outlier I can think of would be we find a significant bug caused by something that has been removed.

@thatch45 thatch45 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I

@KartikShrikantHegde

Copy link
Copy Markdown

Hi @dwoz , what would be the tentative timeline for 3008 release?

@jheiselman

Copy link
Copy Markdown

I noticed that the cache modules are not in any of the lists. Is there a disposition for those yet? We use the redis cache module and noticed that the redis execution and returner modules are being moved out to the community extensions.

@jheiselman

Copy link
Copy Markdown

The etcd state module is listed as being core, but all other etcd-related modules (returner, execution, sdb) are listed as community. The state currently depend on the execution module for some functionality.

@jeffclay

Copy link
Copy Markdown

What is the motivation behind this? It seems like a lot of people are going to upgrade and find lots of missing/broken states. Shouldn't these modules, etc. have been flagged as deprecated prior to being deleted?

@boltronics

Copy link
Copy Markdown
Contributor

I just went to submit a patch for one of these modules and discovered this change just today. I find this quite scary. There is nothing in the execution module docs that state that this is going to happen, and it impacts me significantly.

Shouldn't these be split out into extension modules, supported or not (even if "archived"), before removing them from the main project? At least that way, people can fork what is needed and upgrade with minimal pain.

As requested months ago, it seems that we should have some transparency around the release timeline for 3008, and we urgently need some deprecation notices on the docs of modules for all currently supported versions.

If the expectation is that the community will pick up support for anything removed, it may take time for that to happen. Such work will likely not even begin if people are not fully across what is happening.

@jleroy

jleroy commented Aug 6, 2024

Copy link
Copy Markdown
Contributor

I totally agree with @boltronics: you can’t remove hundreds of community extensions, some heavily used, without any dialogue with the community and especially without issuing deprecation notices at least 3 major versions before effectively removing them. This is simply madness.
Also please explain what’s the motivation behind this decision.

@Oloremo

Oloremo commented Aug 6, 2024

Copy link
Copy Markdown
Contributor

Their motivation is quite simple - core team is gutted and they have no capacity to support all these modules. So they cut them off with the idea that they will be available as extensions with community support.

Ansible did something like that in 2.10: https://docs.ansible.com/ansible/latest/collections/community/general/index.html

As for communication and deprecation - they had some communication via Community All-Hands meeting at least and current Salt situation is that they can't really wait for some graceful deprecation period. Salt will do a lot of radical changes to survive.

P.S. I'm paraphrasing things that I heard + add my understanding of the situation. Take it with a grain of...

@dmurphy18

Copy link
Copy Markdown
Contributor

@Oloremo FYI, the original idea for moving modules to salt-extensions, was generated by discussions in the bar after PyCon 2018 in Cleveland, and the team had slowly started to move modules to salt-extensions, but you are correct, that after the gutting, the speed up to move parts to salt-extensions accelerated, since gutted, but the Core Team was moving that direction.

Back at PyCon in 2018, there were 400+ modules, and we needed to get the number down to allow for a stable core of Salt which could be improved and make thoroughly solid, with appropriate test, code coverage, etc. Also moving parts to salt-extensions would allow for faster resolution of issues for that part, rather than being tied to a Salt release date, for example: saltext.vault has definitely improved Vault support in Salt.

@max-arnold

Copy link
Copy Markdown
Contributor

A question for everyone:

What additional communication channels (besides the SEP process, Open Hour meetings, blog posts, Slack/Discord community. Github issues) the Salt Core team should have used to inform about the decision to remove these modules from Salt?

@Oloremo

Oloremo commented Aug 6, 2024

Copy link
Copy Markdown
Contributor

95% of users don't read any of that, IMO.
But I'd believe that at least half would read release notes, so with a graceful deprecation message in the upcoming releases, it would be distributed to a critical mass of users.

Sadly that won't be the case.

@jeffclay

jeffclay commented Aug 6, 2024

Copy link
Copy Markdown

A question for everyone:

What additional communication channels (besides the SEP process, Open Hour meetings, blog posts, Slack/Discord community. Github issues) the Salt Core team should have used to inform about the decision to remove these modules from Salt?

Following the guidelines laid out here https://docs.saltproject.io/en/master/topics/development/salt_extensions.html#how-do-i-deprecate-a-salt-module-to-a-salt-extension would be nice.

To indicate that a Salt module is being deprecated in favor of a Salt extension, for each Salt module include deprecated tuple in the module. The tuple should include the version of Salt that the module will be removed, the name of the collection of modules that are being deprecated, and the URL where the source for the new extension can be found. The version should be 2 major versions from the next major release. For example, if the next major release of Salt is 3100, the deprecation version should be set to 3102.

@boltronics

boltronics commented Aug 7, 2024

Copy link
Copy Markdown
Contributor

What additional communication channels (besides the SEP process, Open Hour meetings, blog posts, Slack/Discord community. Github issues) the Salt Core team should have used to inform about the decision to remove these modules from Salt?

Thanks for asking. I think that the problem with all of those listed is that they require someone to actively go out of their way to review.

IMO, significant changes such as this are worthy of a post to the salt-announce mailing list. Alternatively, the Salt Blog posts could be pushed to a dedicated mailing list, if they are to be considered important reading.

Unfortunately, the open hour at 10 PST is 3AM AEST, so I've never watched one live. I have watched the odd recording, but not in a while. However, I'd be more likely to check out recordings if there were a mail list that listed discussion points and linked to timestamps that I could jump to.

Aside from the announce mailing list, I mostly just look at https://docs.saltproject.io/en/latest/topics/releases/index.html#upcoming-release and https://docs.saltproject.io/en/latest/ref/index.html unless I run into a problem — which is how I found out about this. So, if you wanted to be really thorough, you could put an "important announcement" text/icon in the documentation header containing a link to where these upcoming changes have been documented.

I seldom use Discord as I generally find it distracting when working.

[edit: fixed a typo]

@BCarley

BCarley commented Nov 13, 2024

Copy link
Copy Markdown

FYI, the docs are currently saying that these will be removed in favour of salt-exensions in v3009. This already landing in master makes me think the plan is for this to go out in v3008?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:full Run the full test suite test:pkg Run the package tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.