Loathing-Associates-Scripting-Society / philter

Inventory cleanup script for KoLmafia
Other
7 stars 5 forks source link

RFC: Adopt a new project name #37

Open pastelmind opened 3 years ago

pastelmind commented 3 years ago

Timeline

Overview

We have received requests to move away from the current name ("OCD-Cleanup") to support non-ableist language. "OCD-Cleanup" inherits the name from OCD Inventory Control, from which it was forked.

We expect non-trivial challenges in renaming this project. However, we may gain some benefits. Thus, I'd like to request for comments in this article.

Edit: I created a forum thread on https://kolmafia.us/threads/thoughts-on-renaming-ocd-cleanup.26002 so that people can voice their sentiments without creating a GitHub account.

Technical Challenges

If we rename this project, it makes sense to rename the primary script (ocd-cleanup.ash) and relay script (relay_OCD-Cleanup_Manager.ash) as well. If we use different names for the project and the scripts, users may be confused, especially when debugging the script and reporting issues. Furthermore, keeping the old name around would undermine the agenda for renaming the project.

Renaming the project and the scripts will cause breaking changes, which we should address carefully:

Opportunity for Changes

Renaming the project provides a unique opportunity to add breaking changes:

Rename to What?

Members of the KoLmafia forums and the Ascension Speed Society Discord have suggested the following names (in alphabetical order): Declutter, Dematerializer, Invensorty, InventoryCleanup, InventoryManagement, Philter, TidyJS, Script That Follows The Rules, InvClean.

I hosted an anonymous poll between May 02 and May 12. Each participant were given two votes, including an option to suggest a name other than those in the list. 28 people participated including myself. The results are still viewable by visiting the poll link, but I'll copy-paste them here for convenience:

Poll results (2021-05-12) [click to show/hide] ![image](https://user-images.githubusercontent.com/29533079/117941698-524faa00-b345-11eb-83ef-f5e486f02ca2.png) | Name | Votes | % | |--------|------:|------:| | Declutter | 5 | 17.9% | | Dematerializer | 1 | 3.6% | | Invensorty | 7 | 25.0% | | InventoryCleanup | 11 | 39.3% | | InventoryManagement | 4 | 14.3% | | **Philter** | **15** | **53.6%** | | TidyJS | 2 | 7.1% | | Script That Follows The Rules | 1 | 3.6% | | InvClean | 1 | 3.6% | In addition, one person gave a vote for "OCD-Cleanup". I assume they preferred to keep the current name?

"Philter" has been selected by a significant (53.6%) number of participants. πŸŽ‰ Thank you to everyone who joined in the poll!

When does this happen?

Note: Technical details are being moved to #43.

Phase 1: Preparation

Phase 2: Migration

Expect 3~4 weeks.

Phase 3: Touchdown

Expect ~3 months, which should give users ample time to adapt.

Trivia

Trivia _("RFC" stands for [Request for Comments](https://en.wikipedia.org/wiki/Request_for_Comments). It refers to a formal process of sharing ideas and proposals, and is popular among many organizations. We don't have any such formal practices, though; I just thought it sounded good.)_
taltamir commented 3 years ago

requests? as in more than one person? really? at first I thought this was a prank but on second thought I can imagine this being real in todays world. this is not a trivial change either as it requires every single user out there to manually uninstall and then reinstall to get the new names. personally I am against causing such a massive hassle for so many people over such a thing if it really gets renamed then I am in favor of invClean. mostly because it is short

pastelmind commented 3 years ago

I didn't want to name names because I understand it might be a polarizing subject--some may feel incredulous, others passionate. The idea came up in Discord, though, so you can locate the original conversation if need be.

Rinn commented 3 years ago

If this ends up happening I'd also use it as an opportunity to change the primary branch from 'master' to 'release' or something like that.

pastelmind commented 3 years ago

Are you recommending that we keep a master branch for code and release branch for build artifacts? While I like that approach (single source of truth and whatnot), it needs more effort than just renaming the repo. We can no longer rely on GitHub's redirects to push updates seamlessly to existing users. We'd have to figure out a different migration strategy.

(I'm not saying "no" here ofc. It may still happen but we need to discuss it more.)

Even if that happens, I believe making the release branch the primary one is a bad idea. Since GitHub displays the primary branch to visitors, we need a proper README to act as the "home page", providing instructions for installing, usage, etc. However, we can't put a README in the release branch.

Rinn commented 3 years ago

No i mean get rid of master entirely because it's also construed as problematic.

You can have a readme in the release branch if you move the mafia files into a subfolder like autoscend does.

pastelmind commented 3 years ago

Oh, ok. In that case I say let's go with main as it's what GitHub is recommending anyway. Better to align with the expectations of newcomers who would be more familair with main.

Edit: It's done.

Crotha commented 3 years ago

As long as the migration process is written for people who can barely make github accounts, I am all for it!
Get your own name and recognition πŸ‘

ETA: https://github.com/Loathing-Associates-Scripting-Society/OCD-Cleanup/pull/38
couldn't this alpha be used for the namechange and introduction? Or is the intention of OCD2 something different (because above a rewrite due to the namechange is listed as pro, and the alpha sounds like a rewrite, just of a larger scale)

pastelmind commented 3 years ago

I put up a forum thread over at kolmafia.us (link also added above). We could keep the more technical discussion here.

38 is not a full rewrite (yet). It is a rewrite for the relay script which is the web page part. The cleanup script which does the actual cleanup is still ASH.

I've been postponing a full rewrite because I could not justify breaking backwards compatibility before. Now that we actually have something we can advertise as a major upgrade, I might look into it again.

taltamir commented 3 years ago

Well, if this goes through the only less painful way I can see it working is: step 1: fork the code. step 2: rename the fork step 3: the original should not be deleted. instead an update should be pushed to abort on run which instructs people to uninstall current version and install the differently named one

this will minimize the pain of the rename if it goes through.

pastelmind commented 3 years ago

Aborting on run would be disruptive; I'd like to add a transitory period where we emit deprecation warnings. Assuming that people run the cleanup at least once per month, I think we can put the warnings up for 2~4 weeks.

Renaming the repository itself is not disruptful, at least immediately. GitHub provides transparent redirects so that installs using the current URL would "just work". Just to be sure, I tried installing via the old URL we used before the first rename, and it still works:

svn checkout http://github.com/Loathing-Associates-Scripting-Society/OCD-Inventory-Control/trunk/release

(We can't delete the redirect either, since GitHub controls the whole thing. But why bother?)

My idea is to detect the install URL used via svn_exists() and emit instructions for reinstall.


Renaming the scripts would take more involvement. Here's a rough plan:

  1. Introduce new scripts that wrap the existing scripts. New scripts will have to coexist with the old ones for a period of time.
  2. Move the core logic into new scripts, and convert the old scripts into wrappers for the new scripts. The situation has turned.
  3. Add deprecation warnings to old scripts so that users see what is going on.
  4. After a grace period of 2-4 weeks, remove the old scripts.
Phillammon commented 3 years ago

I'm happy to out myself as one of the voices advocating for a rename, and back many of the suggestions here. Pastel's above plan makes a lot of sense, and it would appear that github's transparent redirects obviate the most egregious downsides, which is nice.

As to the actual naming question, I'd like to second both philter and invClean as respectively in keeping with tradition and being a direct explanation of what the script does, so either seems worthwhile on that front.

pastelmind commented 3 years ago

Here's the poll for the name change. I'll leave it open until Saturday. Yup, I knew I'd miss my own deadlines 😭.

pastelmind commented 3 years ago

Poll results are up! See the Rename to What? section of the first post. Thanks to everyone who participated.

I also added more detailed plans in the When does this happen? section. The plan may change, or be moved into a separate tracking issue(s).