User:Furey/How many copies of dogmove.c?

From NetHackWiki
Jump to navigation Jump to search

NetHackWiki hosts a lot of source code. I picked one file, dogmove.c, to illustrate.

Vanilla source files

12 files:

These are well organized. If you view history, it took some file moves to get to this organization.

Variant source files

2 files:

Hardfought offers SLASH'EM 0.0.8E0F2. And our collection of SLASH'EM 0.0.7E7F3 source code files has only 5 files. But the files we do have are well organized.

Vanilla redirects

Vanilla redirects for namespace

9 redirects:

  • (X) NetHack 1.3d/dogmove.c -> Source:NetHack 1.3d/dogmove.c
  • (X) NetHack 1.4f/dogmove.c -> Source:NetHack 1.4f/dogmove.c
  • (X) NetHack 2.2a/dogmove.c -> Source:NetHack 2.2a/dogmove.c
  • (X) NetHack 2.3e/dogmove.c -> Source:NetHack 2.3e/dogmove.c
  • (X) NetHack 3.0.0/dogmove.c -> Source:NetHack 3.0.0/dogmove.c
  • (X) NetHack 3.1.0/dogmove.c -> Source:NetHack 3.1.0/dogmove.c
  • (2) NetHack 3.2.0/dogmove.c -> Source:NetHack 3.2.0/dogmove.c
  • (2) NetHack 3.3.0/dogmove.c -> Source:NetHack 3.3.0/dogmove.c
  • (2) NetHack 3.4.0/dogmove.c -> Source:NetHack 3.4.0/dogmove.c

The numbers in parentheses are use counts.

In March 2008, there was a bot-driven migration of source files from the main namespace to the Source namespace. This migration left behind thousands of redirectors from main to Source. Most of these redirectors never acquired any callers after the migration.

These redirectors do have explicit version numbers so they fit into an organizational scheme. However, they clutter search results. A search for "dogmove.c" has a limit of 20 filename matches, which means the search results are quietly missing matching files because these redirectors are occupying result slots.

I am working through these redirectors and marking them with deletion tags.

Vanilla redirects for dirname

3 redirects:

These are leftovers from bot-driven moves in January 2016 and May 2018. Again, explicit version numbers, and again, clutter search results. The 3.4.3 redirect has more use count which would make it harder to remove. I believe it worthwhile to delete the 3.6.0 and 3.6.1, and leave the 3.4.3 for later.

Variant redirects

Variant redirects for namespace

1 redirect:

  • (X) SLASH'EM 0.0.7E7F2/dogmove.c -> Source:SLASH'EM 0.0.7E7F2/dogmove.c

Bot-driven move, March 2008. Deletion in progress.

Tough leftovers

3 redirects:

  • (1) SLASH'EM 0.0.7E7F2/fountain.c
  • (100+) SLASH'EM 0.0.7E7F2/monst.c
  • (1) SLASH'EM 0.0.7E7F2/uhitm.c

Unversioned redirects

2 redirects:

Here comes the controversy. These redirects are convenient, but most of the callers are wrong: the callers expect 3.4.3 source, but are quietly getting 3.6.1 source, leading to many instances where the citation is nonsense.

There are at least four positions here.

Position 0: (proposed by Furey): these redirects should not even exist.

  • pro: no way to misuse them
  • pro: nothing to explain
  • pro: unversioned source references often go quietly wrong (these redirects certainly have)
  • con: they are popular
  • con: editors want to refer to a source file quickly, not to type some long name

Position 1: these redirects should point to 3.4.3 source. Forever.

  • pro: that is how most of the users were written
  • pro: no quiet breakage
  • con: confusing to editors

Position 2: these redirects should point to current source.

  • pro: some editors use the redirects this way
  • con: current source is currently 3.6.7, which NetHackWiki does not have.

Position 3: (proposed by Ion Frigate): these should be disambiguation files, not redirects.

  • Source:dogmove.c and/or Dogmove.c would contain a short version-independent summary, followed by links to all versions
  • pro: editors can write Dogmove.c and the meaning is usually clear from context.
  • con: lots of work to get from current state to this state.