« get me outta code hell

data: isOriginalRelease -> isMainRelease, etc - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-02-19 16:24:14 -0400
committer(quasar) nebula <qznebula@protonmail.com>2025-03-02 08:24:12 -0400
commit76e508ffe3818a78fb941ecde05fe9c269e8bc22 (patch)
tree3dcc62ca4b91799e59dab75a4dcf535e127d5e2b
parent2bbaa9a58728269f654e48fd9888a309ab890881 (diff)
data: isOriginalRelease -> isMainRelease, etc
Also isRerelease -> isSecondaryRelease

Im sure this is completely bug free and will not
involve squashing one million additional commits
-rw-r--r--src/common-util/search-spec.js2
-rw-r--r--src/common-util/wiki-data.js6
-rw-r--r--src/content/dependencies/generateArtistGroupContributionsInfo.js2
-rw-r--r--src/content/dependencies/generateArtistInfoPageTracksChunk.js2
-rw-r--r--src/content/dependencies/generateArtistInfoPageTracksChunkItem.js2
-rw-r--r--src/content/dependencies/generateGroupGalleryPage.js2
-rw-r--r--src/content/dependencies/generateTrackArtistCommentarySection.js54
-rw-r--r--src/content/dependencies/generateTrackInfoPage.js10
-rw-r--r--src/content/dependencies/listGroupsByDuration.js2
-rw-r--r--src/content/dependencies/listTracksByDate.js20
-rw-r--r--src/data/checks.js35
-rw-r--r--src/data/composite/things/artist/artistTotalDuration.js8
-rw-r--r--src/data/composite/things/track/index.js8
-rw-r--r--src/data/composite/things/track/inheritContributionListFromMainRelease.js (renamed from src/data/composite/things/track/inheritContributionListFromOriginalRelease.js)20
-rw-r--r--src/data/composite/things/track/inheritFromMainRelease.js (renamed from src/data/composite/things/track/inheritFromOriginalRelease.js)18
-rw-r--r--src/data/composite/things/track/withAlwaysReferenceByDirectory.js27
-rw-r--r--src/data/composite/things/track/withMainRelease.js (renamed from src/data/composite/things/track/withOriginalRelease.js)28
-rw-r--r--src/data/composite/things/track/withOtherReleases.js19
-rw-r--r--src/data/composite/things/track/withPropertyFromMainRelease.js (renamed from src/data/composite/things/track/withPropertyFromOriginalRelease.js)36
-rw-r--r--src/data/things/track.js67
-rw-r--r--src/strings-default.yaml2
21 files changed, 183 insertions, 187 deletions
diff --git a/src/common-util/search-spec.js b/src/common-util/search-spec.js
index 3d05c021..75de0d16 100644
--- a/src/common-util/search-spec.js
+++ b/src/common-util/search-spec.js
@@ -109,7 +109,7 @@ export const searchSpec = {
       trackData
         // Exclude rereleases - there's no reasonable way to differentiate
         // them from the main release as part of this query.
-        .filter(track => !track.originalReleaseTrack),
+        .filter(track => !track.mainReleaseTrack),
     ].flat(),
 
     process(thing, opts) {
diff --git a/src/common-util/wiki-data.js b/src/common-util/wiki-data.js
index e012759d..24212e90 100644
--- a/src/common-util/wiki-data.js
+++ b/src/common-util/wiki-data.js
@@ -167,10 +167,10 @@ export function getFlashLink(flash) {
 }
 
 export function getTotalDuration(tracks, {
-  originalReleasesOnly = false,
+  mainReleasesOnly = false,
 } = {}) {
-  if (originalReleasesOnly) {
-    tracks = tracks.filter(t => !t.originalReleaseTrack);
+  if (mainReleasesOnly) {
+    tracks = tracks.filter(t => !t.mainReleaseTrack);
   }
 
   return accumulateSum(tracks, track => track.duration);
diff --git a/src/content/dependencies/generateArtistGroupContributionsInfo.js b/src/content/dependencies/generateArtistGroupContributionsInfo.js
index f84d00de..3e0cd1d2 100644
--- a/src/content/dependencies/generateArtistGroupContributionsInfo.js
+++ b/src/content/dependencies/generateArtistGroupContributionsInfo.js
@@ -36,7 +36,7 @@ export default {
     for (const track of filteredTracks) {
       for (const group of track.album.groups) {
         groupToCountMap.set(group, groupToCountMap.get(group) + 1);
-        if (track.duration && track.originalReleaseTrack === null) {
+        if (track.duration && track.mainReleaseTrack === null) {
           groupToDurationMap.set(group, groupToDurationMap.get(group) + track.duration);
           groupToDurationCountMap.set(group, groupToDurationCountMap.get(group) + 1);
         }
diff --git a/src/content/dependencies/generateArtistInfoPageTracksChunk.js b/src/content/dependencies/generateArtistInfoPageTracksChunk.js
index b42e4165..f6d70901 100644
--- a/src/content/dependencies/generateArtistInfoPageTracksChunk.js
+++ b/src/content/dependencies/generateArtistInfoPageTracksChunk.js
@@ -40,7 +40,7 @@ export default {
         contribs
           .filter(contrib => contrib.countInDurationTotals)
           .map(contrib => contrib.thing)
-          .filter(track => track.isOriginalRelease)
+          .filter(track => track.isMainRelease)
           .filter(track => track.duration > 0));
 
     data.duration =
diff --git a/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js b/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js
index 96976826..ba3005e2 100644
--- a/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js
+++ b/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js
@@ -80,7 +80,7 @@ export default {
       query.track.duration,
 
     rerelease:
-      query.track.isRerelease,
+      query.track.isSecondaryRelease,
 
     contribAnnotations:
       (query.displayedContributions
diff --git a/src/content/dependencies/generateGroupGalleryPage.js b/src/content/dependencies/generateGroupGalleryPage.js
index 79746cd0..206c495d 100644
--- a/src/content/dependencies/generateGroupGalleryPage.js
+++ b/src/content/dependencies/generateGroupGalleryPage.js
@@ -86,7 +86,7 @@ export default {
 
     data.numAlbums = albums.length;
     data.numTracks = tracks.length;
-    data.totalDuration = getTotalDuration(tracks, {originalReleasesOnly: true});
+    data.totalDuration = getTotalDuration(tracks, {mainReleasesOnly: true});
 
     data.gridNames = albums.map(album => album.name);
     data.gridDurations = albums.map(album => getTotalDuration(album.tracks));
diff --git a/src/content/dependencies/generateTrackArtistCommentarySection.js b/src/content/dependencies/generateTrackArtistCommentarySection.js
index 399c804a..63c4e93d 100644
--- a/src/content/dependencies/generateTrackArtistCommentarySection.js
+++ b/src/content/dependencies/generateTrackArtistCommentarySection.js
@@ -13,7 +13,7 @@ export default {
   query: (track) => ({
     otherRereleasesWithCommentary:
       track.otherReleases
-        .filter(track => !track.isOriginalRelease)
+        .filter(track => !track.isMainRelease)
         .filter(track => !empty(track.commentary)),
   }),
 
@@ -21,14 +21,14 @@ export default {
     contentHeading:
       relation('generateContentHeading'),
 
-    originalReleaseTrackLink:
-      (track.isRerelease
-        ? relation('linkTrack', track.originalReleaseTrack)
+    mainReleaseTrackLink:
+      (track.isSecondaryRelease
+        ? relation('linkTrack', track.mainReleaseTrack)
         : null),
 
-    originalReleaseArtistCommentaryEntries:
-      (track.isRerelease
-        ? track.originalReleaseTrack.commentary
+    mainReleaseArtistCommentaryEntries:
+      (track.isSecondaryRelease
+        ? track.mainReleaseTrack.commentary
             .map(entry => relation('generateCommentaryEntry', entry))
         : null),
 
@@ -48,22 +48,22 @@ export default {
     name:
       track.name,
 
-    isRerelease:
-      track.isRerelease,
+    isSecondaryRelease:
+      track.isSecondaryRelease,
 
-    originalReleaseName:
-      (track.isRerelease
-        ? track.originalReleaseTrack.name
+    mainReleaseName:
+      (track.isSecondaryRelease
+        ? track.mainReleaseTrack.name
         : null),
 
-    originalReleaseAlbumName:
-      (track.isRerelease
-        ? track.originalReleaseTrack.album.name
+    mainReleaseAlbumName:
+      (track.isSecondaryRelease
+        ? track.mainReleaseTrack.album.name
         : null),
 
-    originalReleaseAlbumColor:
-      (track.isRerelease
-        ? track.originalReleaseTrack.album.color
+    mainReleaseAlbumColor:
+      (track.isSecondaryRelease
+        ? track.mainReleaseTrack.album.color
         : null),
 
     otherReleaseAlbumNames:
@@ -84,7 +84,7 @@ export default {
             title: language.$('misc.artistCommentary'),
           }),
 
-        data.isRerelease &&
+        data.isSecondaryRelease &&
           html.tags([
             html.tag('p', {class: ['drop', 'commentary-drop']},
               {[html.onlyIfSiblings]: true},
@@ -93,29 +93,29 @@ export default {
                 const workingOptions = {};
 
                 workingOptions.album =
-                  relations.originalReleaseTrackLink.slots({
+                  relations.mainReleaseTrackLink.slots({
                     content:
-                      data.originalReleaseAlbumName,
+                      data.mainReleaseAlbumName,
 
                     color:
-                      data.originalReleaseAlbumColor,
+                      data.mainReleaseAlbumColor,
                   });
 
-                if (data.name !== data.originalReleaseName) {
+                if (data.name !== data.mainReleaseName) {
                   workingCapsule += '.namedDifferently';
                   workingOptions.name =
-                    html.tag('i', data.originalReleaseName);
+                    html.tag('i', data.mainReleaseName);
                 }
 
                 return language.$(workingCapsule, workingOptions);
               })),
 
-            relations.originalReleaseArtistCommentaryEntries,
+            relations.mainReleaseArtistCommentaryEntries,
           ]),
 
         html.tags([
-          data.isRerelease &&
-          !html.isBlank(relations.originalReleaseArtistCommentaryEntries) &&
+          data.isSecondaryRelease &&
+          !html.isBlank(relations.mainReleaseArtistCommentaryEntries) &&
             html.tag('p', {class: ['drop', 'commentary-drop']},
               {[html.onlyIfSiblings]: true},
 
diff --git a/src/content/dependencies/generateTrackInfoPage.js b/src/content/dependencies/generateTrackInfoPage.js
index 9af85aac..1c349c2e 100644
--- a/src/content/dependencies/generateTrackInfoPage.js
+++ b/src/content/dependencies/generateTrackInfoPage.js
@@ -27,10 +27,10 @@ export default {
   extraDependencies: ['html', 'language'],
 
   query: (track) => ({
-    originalReleaseTrack:
-      (track.isOriginalRelease
+    mainReleaseTrack:
+      (track.isMainRelease
         ? track
-        : track.originalReleaseTrack),
+        : track.mainReleaseTrack),
   }),
 
   relations: (relation, query, track) => ({
@@ -83,11 +83,11 @@ export default {
 
     referencedByTracksList:
       relation('generateTrackListDividedByGroups',
-        query.originalReleaseTrack.referencedByTracks),
+        query.mainReleaseTrack.referencedByTracks),
 
     sampledByTracksList:
       relation('generateTrackListDividedByGroups',
-        query.originalReleaseTrack.sampledByTracks),
+        query.mainReleaseTrack.sampledByTracks),
 
     flashesThatFeatureList:
       relation('generateTrackInfoPageFeaturedByFlashesList', track),
diff --git a/src/content/dependencies/listGroupsByDuration.js b/src/content/dependencies/listGroupsByDuration.js
index da2f26db..c79e1bc4 100644
--- a/src/content/dependencies/listGroupsByDuration.js
+++ b/src/content/dependencies/listGroupsByDuration.js
@@ -16,7 +16,7 @@ export default {
       groups.map(group =>
         getTotalDuration(
           group.albums.flatMap(album => album.tracks),
-          {originalReleasesOnly: true}));
+          {mainReleasesOnly: true}));
 
     filterByCount(groups, durations);
     sortByCount(groups, durations, {greatestFirst: true});
diff --git a/src/content/dependencies/listTracksByDate.js b/src/content/dependencies/listTracksByDate.js
index 0a2bfd6c..b2cba5e6 100644
--- a/src/content/dependencies/listTracksByDate.js
+++ b/src/content/dependencies/listTracksByDate.js
@@ -42,10 +42,10 @@ export default {
         query.chunks
           .map(({date}) => date),
 
-      rereleases:
+      secreleases:
         query.chunks.map(({chunk}) =>
           chunk.map(track =>
-            track.originalReleaseTrack !== null)),
+            track.mainReleaseTrack !== null)),
     };
   },
 
@@ -65,20 +65,20 @@ export default {
       chunkRows:
         stitchArrays({
           trackLinks: relations.trackLinks,
-          rereleases: data.rereleases,
-        }).map(({trackLinks, rereleases}) =>
+          secreleases: data.secreleases,
+        }).map(({trackLinks, secreleases}) =>
             stitchArrays({
               trackLink: trackLinks,
-              rerelease: rereleases,
-            }).map(({trackLink, rerelease}) =>
-                (rerelease
+              secrelease: secreleases,
+            }).map(({trackLink, secrelease}) =>
+                (secrelease
                   ? {stringsKey: 'rerelease', track: trackLink}
                   : {track: trackLink}))),
 
       chunkRowAttributes:
-        data.rereleases.map(rereleases =>
-          rereleases.map(rerelease =>
-            (rerelease
+        data.secreleases.map(secreleases =>
+          secreleases.map(secrelease =>
+            (secrelease
               ? {class: 'rerelease'}
               : null))),
     });
diff --git a/src/data/checks.js b/src/data/checks.js
index ff278d36..10261e4f 100644
--- a/src/data/checks.js
+++ b/src/data/checks.js
@@ -228,11 +228,11 @@ export function filterReferenceErrors(wikiData, {
       artistContribs: '_contrib',
       contributorContribs: '_contrib',
       coverArtistContribs: '_contrib',
-      referencedTracks: '_trackNotRerelease',
-      sampledTracks: '_trackNotRerelease',
+      referencedTracks: '_trackMainReleasesOnly',
+      sampledTracks: '_trackMainReleasesOnly',
       artTags: '_artTag',
       referencedArtworks: '_artwork',
-      originalReleaseTrack: '_trackNotRerelease',
+      mainReleaseTrack: '_trackMainReleasesOnly',
       commentary: '_commentary',
     }],
 
@@ -358,29 +358,28 @@ export function filterReferenceErrors(wikiData, {
                 findFn = ref => boundFind.track(ref.reference);
                 break;
 
-              case '_trackNotRerelease':
+              case '_trackMainReleasesOnly':
                 findFn = trackRef => {
                   const track = boundFind.track(trackRef);
-                  const originalRef = track && CacheableObject.getUpdateValue(track, 'originalReleaseTrack');
+                  const mainRef = track && CacheableObject.getUpdateValue(track, 'mainReleaseTrack');
 
-                  if (originalRef) {
-                    // It's possible for the original to not actually exist, in this case.
-                    // It should still be reported since the 'Originally Released As' field
-                    // was present.
-                    const original = boundFind.track(originalRef, {mode: 'quiet'});
+                  if (mainRef) {
+                    // It's possible for the main release to not actually exist, in this case.
+                    // It should still be reported since the 'Main Release' field was present.
+                    const main = boundFind.track(mainRef, {mode: 'quiet'});
 
                     // Prefer references by name, but only if it's unambiguous.
-                    const originalByName =
-                      (original
-                        ? boundFind.track(original.name, {mode: 'quiet'})
+                    const mainByName =
+                      (main
+                        ? boundFind.track(main.name, {mode: 'quiet'})
                         : null);
 
                     const shouldBeMessage =
-                      (originalByName
-                        ? colors.green(original.name)
-                     : original
-                        ? colors.green('track:' + original.directory)
-                        : colors.green(originalRef));
+                      (mainByName
+                        ? colors.green(main.name)
+                     : main
+                        ? colors.green('track:' + main.directory)
+                        : colors.green(mainRef));
 
                     throw new Error(`Reference ${colors.red(trackRef)} is to a rerelease, should be ${shouldBeMessage}`);
                   }
diff --git a/src/data/composite/things/artist/artistTotalDuration.js b/src/data/composite/things/artist/artistTotalDuration.js
index a4a33542..b8a205fe 100644
--- a/src/data/composite/things/artist/artistTotalDuration.js
+++ b/src/data/composite/things/artist/artistTotalDuration.js
@@ -48,18 +48,18 @@ export default templateCompositeFrom({
 
     withPropertyFromList({
       list: '#allContributions.thing',
-      property: input.value('isOriginalRelease'),
+      property: input.value('isMainRelease'),
     }),
 
     withFilteredList({
       list: '#allContributions',
-      filter: '#allContributions.thing.isOriginalRelease',
+      filter: '#allContributions.thing.isMainRelease',
     }).outputs({
-      '#filteredList': '#originalContributions',
+      '#filteredList': '#mainReleaseContributions',
     }),
 
     withContributionListSums({
-      list: '#originalContributions',
+      list: '#mainReleaseContributions',
     }),
 
     exposeDependency({
diff --git a/src/data/composite/things/track/index.js b/src/data/composite/things/track/index.js
index 32c72f78..492b35be 100644
--- a/src/data/composite/things/track/index.js
+++ b/src/data/composite/things/track/index.js
@@ -1,15 +1,15 @@
 export {default as exitWithoutUniqueCoverArt} from './exitWithoutUniqueCoverArt.js';
-export {default as inheritContributionListFromOriginalRelease} from './inheritContributionListFromOriginalRelease.js';
-export {default as inheritFromOriginalRelease} from './inheritFromOriginalRelease.js';
+export {default as inheritContributionListFromMainRelease} from './inheritContributionListFromMainRelease.js';
+export {default as inheritFromMainRelease} from './inheritFromMainRelease.js';
 export {default as withAlbum} from './withAlbum.js';
 export {default as withAlwaysReferenceByDirectory} from './withAlwaysReferenceByDirectory.js';
 export {default as withContainingTrackSection} from './withContainingTrackSection.js';
 export {default as withDate} from './withDate.js';
 export {default as withDirectorySuffix} from './withDirectorySuffix.js';
 export {default as withHasUniqueCoverArt} from './withHasUniqueCoverArt.js';
-export {default as withOriginalRelease} from './withOriginalRelease.js';
+export {default as withMainRelease} from './withMainRelease.js';
 export {default as withOtherReleases} from './withOtherReleases.js';
 export {default as withPropertyFromAlbum} from './withPropertyFromAlbum.js';
-export {default as withPropertyFromOriginalRelease} from './withPropertyFromOriginalRelease.js';
+export {default as withPropertyFromMainRelease} from './withPropertyFromMainRelease.js';
 export {default as withSuffixDirectoryFromAlbum} from './withSuffixDirectoryFromAlbum.js';
 export {default as withTrackArtDate} from './withTrackArtDate.js';
diff --git a/src/data/composite/things/track/inheritContributionListFromOriginalRelease.js b/src/data/composite/things/track/inheritContributionListFromMainRelease.js
index f4ae3ddb..89252feb 100644
--- a/src/data/composite/things/track/inheritContributionListFromOriginalRelease.js
+++ b/src/data/composite/things/track/inheritContributionListFromMainRelease.js
@@ -1,5 +1,5 @@
-// Like inheritFromOriginalRelease, but tuned for contributions.
-// Recontextualized contributions for this track.
+// Like inheritFromMainRelease, but tuned for contributions.
+// Recontextualizes contributions for this track.
 
 import {input, templateCompositeFrom} from '#composite';
 
@@ -9,36 +9,36 @@ import {withRecontextualizedContributionList, withRedatedContributionList}
   from '#composite/wiki-data';
 
 import withDate from './withDate.js';
-import withPropertyFromOriginalRelease
-  from './withPropertyFromOriginalRelease.js';
+import withPropertyFromMainRelease
+  from './withPropertyFromMainRelease.js';
 
 export default templateCompositeFrom({
-  annotation: `inheritContributionListFromOriginalRelease`,
+  annotation: `inheritContributionListFromMainRelease`,
 
   steps: () => [
-    withPropertyFromOriginalRelease({
+    withPropertyFromMainRelease({
       property: input.thisProperty(),
       notFoundValue: input.value([]),
     }),
 
     raiseOutputWithoutDependency({
-      dependency: '#isRerelease',
+      dependency: '#isSecondaryRelease',
       mode: input.value('falsy'),
     }),
 
     withRecontextualizedContributionList({
-      list: '#originalValue',
+      list: '#mainReleaseValue',
     }),
 
     withDate(),
 
     withRedatedContributionList({
-      list: '#originalValue',
+      list: '#mainReleaseValue',
       date: '#date',
     }),
 
     exposeDependency({
-      dependency: '#originalValue',
+      dependency: '#mainReleaseValue',
     }),
   ],
 });
diff --git a/src/data/composite/things/track/inheritFromOriginalRelease.js b/src/data/composite/things/track/inheritFromMainRelease.js
index 38ab06be..b1cbb65e 100644
--- a/src/data/composite/things/track/inheritFromOriginalRelease.js
+++ b/src/data/composite/things/track/inheritFromMainRelease.js
@@ -1,9 +1,9 @@
 // Early exits with the value for the same property as specified on the
-// original release, if this track is a rerelease, and otherwise continues
+// main release, if this track is a secondary release, and otherwise continues
 // without providing any further dependencies.
 //
-// Like withOriginalRelease, this will early exit (with notFoundValue) if the
-// original release is specified by reference and that reference doesn't
+// Like withMainRelease, this will early exit (with notFoundValue) if the
+// main release is specified by reference and that reference doesn't
 // resolve to anything.
 
 import {input, templateCompositeFrom} from '#composite';
@@ -11,11 +11,11 @@ import {input, templateCompositeFrom} from '#composite';
 import {exposeDependency, raiseOutputWithoutDependency}
   from '#composite/control-flow';
 
-import withPropertyFromOriginalRelease
-  from './withPropertyFromOriginalRelease.js';
+import withPropertyFromMainRelease
+  from './withPropertyFromMainRelease.js';
 
 export default templateCompositeFrom({
-  annotation: `inheritFromOriginalRelease`,
+  annotation: `inheritFromMainRelease`,
 
   inputs: {
     notFoundValue: input({
@@ -24,18 +24,18 @@ export default templateCompositeFrom({
   },
 
   steps: () => [
-    withPropertyFromOriginalRelease({
+    withPropertyFromMainRelease({
       property: input.thisProperty(),
       notFoundValue: input('notFoundValue'),
     }),
 
     raiseOutputWithoutDependency({
-      dependency: '#isRerelease',
+      dependency: '#isSecondaryRelease',
       mode: input.value('falsy'),
     }),
 
     exposeDependency({
-      dependency: '#originalValue',
+      dependency: '#mainReleaseValue',
     }),
   ],
 });
diff --git a/src/data/composite/things/track/withAlwaysReferenceByDirectory.js b/src/data/composite/things/track/withAlwaysReferenceByDirectory.js
index 26c5ba97..aebcf793 100644
--- a/src/data/composite/things/track/withAlwaysReferenceByDirectory.js
+++ b/src/data/composite/things/track/withAlwaysReferenceByDirectory.js
@@ -51,7 +51,7 @@ export default templateCompositeFrom({
 
     // Remaining code is for defaulting to true if this track is a rerelease of
     // another with the same name, so everything further depends on access to
-    // trackData as well as originalReleaseTrack.
+    // trackData as well as mainReleaseTrack.
 
     exitWithoutDependency({
       dependency: 'trackData',
@@ -60,45 +60,46 @@ export default templateCompositeFrom({
     }),
 
     exitWithoutDependency({
-      dependency: 'originalReleaseTrack',
+      dependency: 'mainReleaseTrack',
       value: input.value(false),
     }),
 
-    // It's necessary to use the custom trackOriginalReleasesOnly find function
+    // It's necessary to use the custom trackMainReleasesOnly find function
     // here, so as to avoid recursion issues - the find.track() function depends
     // on accessing each track's alwaysReferenceByDirectory, which means it'll
     // hit *this track* - and thus this step - and end up recursing infinitely.
-    // By definition, find.trackOriginalReleasesOnly excludes tracks which have
-    // an originalReleaseTrack update value set, which means even though it does
+    // By definition, find.trackMainReleasesOnly excludes tracks which have
+    // an mainReleaseTrack update value set, which means even though it does
     // still access each of tracks' `alwaysReferenceByDirectory` property, it
     // won't access that of *this* track - it will never proceed past the
     // `exitWithoutDependency` step directly above, so there's no opportunity
     // for recursion.
     withResolvedReference({
-      ref: 'originalReleaseTrack',
+      ref: 'mainReleaseTrack',
       data: 'trackData',
-      find: input.value(find.trackOriginalReleasesOnly),
+      find: input.value(find.trackMainReleasesOnly),
     }).outputs({
-      '#resolvedReference': '#originalRelease',
+      '#resolvedReference': '#mainRelease',
     }),
 
     exitWithoutDependency({
-      dependency: '#originalRelease',
+      dependency: '#mainRelease',
       value: input.value(false),
     }),
 
     withPropertyFromObject({
-      object: '#originalRelease',
+      object: '#mainRelease',
       property: input.value('name'),
     }),
 
     {
-      dependencies: ['name', '#originalRelease.name'],
+      dependencies: ['name', '#mainRelease.name'],
       compute: (continuation, {
         name,
-        ['#originalRelease.name']: originalName,
+        ['#mainRelease.name']: mainReleaseName,
       }) => continuation({
-        ['#alwaysReferenceByDirectory']: name === originalName,
+        ['#alwaysReferenceByDirectory']:
+          name === mainReleaseName,
       }),
     },
   ],
diff --git a/src/data/composite/things/track/withOriginalRelease.js b/src/data/composite/things/track/withMainRelease.js
index 7aefc64a..3a91edae 100644
--- a/src/data/composite/things/track/withOriginalRelease.js
+++ b/src/data/composite/things/track/withMainRelease.js
@@ -1,7 +1,7 @@
-// Just includes the original release of this track as a dependency.
-// If this track isn't a rerelease, then it'll provide null, unless the
-// {selfIfOriginal} option is set, in which case it'll provide this track
-// itself. This will early exit (with notFoundValue) if the original release
+// Just includes the main release of this track as a dependency.
+// If this track isn't a secondary release, then it'll provide null, unless
+// the {selfIfMain} option is set, in which case it'll provide this track
+// itself. This will early exit (with notFoundValue) if the main release
 // is specified by reference and that reference doesn't resolve to anything.
 
 import {input, templateCompositeFrom} from '#composite';
@@ -12,42 +12,42 @@ import {withResolvedReference} from '#composite/wiki-data';
 import {soupyFind} from '#composite/wiki-properties';
 
 export default templateCompositeFrom({
-  annotation: `withOriginalRelease`,
+  annotation: `withMainRelease`,
 
   inputs: {
-    selfIfOriginal: input({type: 'boolean', defaultValue: false}),
+    selfIfMain: input({type: 'boolean', defaultValue: false}),
     notFoundValue: input({defaultValue: null}),
   },
 
-  outputs: ['#originalRelease'],
+  outputs: ['#mainRelease'],
 
   steps: () => [
     withResultOfAvailabilityCheck({
-      from: 'originalReleaseTrack',
+      from: 'mainReleaseTrack',
     }),
 
     {
       dependencies: [
         input.myself(),
-        input('selfIfOriginal'),
+        input('selfIfMain'),
         '#availability',
       ],
 
       compute: (continuation, {
         [input.myself()]: track,
-        [input('selfIfOriginal')]: selfIfOriginal,
+        [input('selfIfMain')]: selfIfMain,
         '#availability': availability,
       }) =>
         (availability
           ? continuation()
           : continuation.raiseOutput({
-              ['#originalRelease']:
-                (selfIfOriginal ? track : null),
+              ['#mainRelease']:
+                (selfIfMain ? track : null),
             })),
     },
 
     withResolvedReference({
-      ref: 'originalReleaseTrack',
+      ref: 'mainReleaseTrack',
       find: soupyFind.input('track'),
     }),
 
@@ -63,7 +63,7 @@ export default templateCompositeFrom({
         ['#resolvedReference']: resolvedReference,
       }) =>
         continuation({
-          ['#originalRelease']: resolvedReference,
+          ['#mainRelease']: resolvedReference,
         }),
     },
   ],
diff --git a/src/data/composite/things/track/withOtherReleases.js b/src/data/composite/things/track/withOtherReleases.js
index f8c1c3f0..3fec8742 100644
--- a/src/data/composite/things/track/withOtherReleases.js
+++ b/src/data/composite/things/track/withOtherReleases.js
@@ -2,7 +2,7 @@ import {input, templateCompositeFrom} from '#composite';
 
 import {exitWithoutDependency} from '#composite/control-flow';
 
-import withOriginalRelease from './withOriginalRelease.js';
+import withMainRelease from './withMainRelease.js';
 
 export default templateCompositeFrom({
   annotation: `withOtherReleases`,
@@ -15,26 +15,27 @@ export default templateCompositeFrom({
       mode: input.value('empty'),
     }),
 
-    withOriginalRelease({
-      selfIfOriginal: input.value(true),
+    withMainRelease({
+      selfIfMain: input.value(true),
       notFoundValue: input.value([]),
     }),
 
+    // TODO: Jegus shouldn't this be a proper reverse list
     {
-      dependencies: [input.myself(), '#originalRelease', 'trackData'],
+      dependencies: [input.myself(), '#mainRelease', 'trackData'],
       compute: (continuation, {
         [input.myself()]: thisTrack,
-        ['#originalRelease']: originalRelease,
+        ['#mainRelease']: mainRelease,
         trackData,
       }) => continuation({
         ['#otherReleases']:
-          (originalRelease === thisTrack
+          (mainRelease === thisTrack
             ? []
-            : [originalRelease])
+            : [mainRelease])
             .concat(trackData.filter(track =>
-              track !== originalRelease &&
+              track !== mainRelease &&
               track !== thisTrack &&
-              track.originalReleaseTrack === originalRelease)),
+              track.mainReleaseTrack === mainRelease)),
       }),
     },
   ],
diff --git a/src/data/composite/things/track/withPropertyFromOriginalRelease.js b/src/data/composite/things/track/withPropertyFromMainRelease.js
index fd37f6de..393a4c63 100644
--- a/src/data/composite/things/track/withPropertyFromOriginalRelease.js
+++ b/src/data/composite/things/track/withPropertyFromMainRelease.js
@@ -1,8 +1,8 @@
-// Provides a value inherited from the original release, if applicable, and a
-// flag indicating if this track is a rerelase or not.
+// Provides a value inherited from the main release, if applicable, and a
+// flag indicating if this track is a secondary release or not.
 //
-// Like withOriginalRelease, this will early exit (with notFoundValue) if the
-// original release is specified by reference and that reference doesn't
+// Like withMainRelease, this will early exit (with notFoundValue) if the
+// main release is specified by reference and that reference doesn't
 // resolve to anything.
 
 import {input, templateCompositeFrom} from '#composite';
@@ -10,10 +10,10 @@ import {input, templateCompositeFrom} from '#composite';
 import {withResultOfAvailabilityCheck} from '#composite/control-flow';
 import {withPropertyFromObject} from '#composite/data';
 
-import withOriginalRelease from './withOriginalRelease.js';
+import withMainRelease from './withMainRelease.js';
 
 export default templateCompositeFrom({
-  annotation: `inheritFromOriginalRelease`,
+  annotation: `inheritFromMainRelease`,
 
   inputs: {
     property: input({type: 'string'}),
@@ -26,18 +26,18 @@ export default templateCompositeFrom({
   outputs: ({
     [input.staticValue('property')]: property,
   }) =>
-    ['#isRerelease'].concat(
+    ['#isSecondaryRelease'].concat(
       (property
-        ? ['#original.' + property]
-        : ['#originalValue'])),
+        ? ['#mainRelease.' + property]
+        : ['#mainReleaseValue'])),
 
   steps: () => [
-    withOriginalRelease({
+    withMainRelease({
       notFoundValue: input('notFoundValue'),
     }),
 
     withResultOfAvailabilityCheck({
-      from: '#originalRelease',
+      from: '#mainRelease',
     }),
 
     {
@@ -54,14 +54,14 @@ export default templateCompositeFrom({
           ? continuation()
           : continuation.raiseOutput(
               Object.assign(
-                {'#isRerelease': false},
+                {'#isSecondaryRelease': false},
                 (property
-                  ? {['#original.' + property]: null}
-                  : {'#originalValue': null})))),
+                  ? {['#mainRelease.' + property]: null}
+                  : {'#mainReleaseValue': null})))),
     },
 
     withPropertyFromObject({
-      object: '#originalRelease',
+      object: '#mainRelease',
       property: input('property'),
     }),
 
@@ -77,10 +77,10 @@ export default templateCompositeFrom({
       }) =>
         continuation.raiseOutput(
           Object.assign(
-            {'#isRerelease': true},
+            {'#isSecondaryRelease': true},
             (property
-              ? {['#original.' + property]: value}
-              : {'#originalValue': value}))),
+              ? {['#mainRelease.' + property]: value}
+              : {'#mainReleaseValue': value}))),
     },
   ],
 });
diff --git a/src/data/things/track.js b/src/data/things/track.js
index af2206f0..6ac417b5 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -60,15 +60,15 @@ import {
 
 import {
   exitWithoutUniqueCoverArt,
-  inheritContributionListFromOriginalRelease,
-  inheritFromOriginalRelease,
+  inheritContributionListFromMainRelease,
+  inheritFromMainRelease,
   withAlbum,
   withAlwaysReferenceByDirectory,
   withContainingTrackSection,
   withDate,
   withDirectorySuffix,
   withHasUniqueCoverArt,
-  withOriginalRelease,
+  withMainRelease,
   withOtherReleases,
   withPropertyFromAlbum,
   withSuffixDirectoryFromAlbum,
@@ -208,7 +208,7 @@ export class Track extends Thing {
     creditSources: commentary(),
 
     lyrics: [
-      inheritFromOriginalRelease(),
+      inheritFromMainRelease(),
       contentString(),
     ],
 
@@ -216,7 +216,7 @@ export class Track extends Thing {
     sheetMusicFiles: additionalFiles(),
     midiProjectFiles: additionalFiles(),
 
-    originalReleaseTrack: singleReference({
+    mainReleaseTrack: singleReference({
       class: input.value(Track),
       find: soupyFind.input('track'),
     }),
@@ -230,7 +230,7 @@ export class Track extends Thing {
     }),
 
     artistContribs: [
-      inheritContributionListFromOriginalRelease(),
+      inheritContributionListFromMainRelease(),
 
       withDate(),
 
@@ -266,7 +266,7 @@ export class Track extends Thing {
     ],
 
     contributorContribs: [
-      inheritContributionListFromOriginalRelease(),
+      inheritContributionListFromMainRelease(),
 
       withDate(),
 
@@ -276,9 +276,6 @@ export class Track extends Thing {
       }),
     ],
 
-    // Cover artists aren't inherited from the original release, since it
-    // typically varies by release and isn't defined by the musical qualities
-    // of the track.
     coverArtistContribs: [
       exitWithoutUniqueCoverArt({
         value: input.value([]),
@@ -320,7 +317,7 @@ export class Track extends Thing {
     ],
 
     referencedTracks: [
-      inheritFromOriginalRelease({
+      inheritFromMainRelease({
         notFoundValue: input.value([]),
       }),
 
@@ -331,7 +328,7 @@ export class Track extends Thing {
     ],
 
     sampledTracks: [
-      inheritFromOriginalRelease({
+      inheritFromMainRelease({
         notFoundValue: input.value([]),
       }),
 
@@ -405,20 +402,20 @@ export class Track extends Thing {
       exposeDependency({dependency: '#hasUniqueCoverArt'}),
     ],
 
-    isOriginalRelease: [
-      withOriginalRelease(),
+    isMainRelease: [
+      withMainRelease(),
 
       exposeWhetherDependencyAvailable({
-        dependency: '#originalRelease',
+        dependency: '#mainRelease',
         negate: input.value(true),
       }),
     ],
 
-    isRerelease: [
-      withOriginalRelease(),
+    isSecondaryRelease: [
+      withMainRelease(),
 
       exposeWhetherDependencyAvailable({
-        dependency: '#originalRelease',
+        dependency: '#mainRelease',
       }),
     ],
 
@@ -525,7 +522,7 @@ export class Track extends Thing {
         transform: parseAdditionalFiles,
       },
 
-      'Originally Released As': {property: 'originalReleaseTrack'},
+      'Main Release': {property: 'mainReleaseTrack'},
       'Referenced Tracks': {property: 'referencedTracks'},
       'Sampled Tracks': {property: 'sampledTracks'},
 
@@ -558,28 +555,28 @@ export class Track extends Thing {
     },
 
     invalidFieldCombinations: [
-      {message: `Rereleases inherit references from the original`, fields: [
-        'Originally Released As',
+      {message: `Secondary releases inherit references from the main one`, fields: [
+        'Main Release',
         'Referenced Tracks',
       ]},
 
-      {message: `Rereleases inherit samples from the original`, fields: [
-        'Originally Released As',
+      {message: `Secondary releases inherit samples from the main one`, fields: [
+        'Main Release',
         'Sampled Tracks',
       ]},
 
-      {message: `Rereleases inherit artists from the original`, fields: [
-        'Originally Released As',
+      {message: `Secondary releases inherit artists from the main one`, fields: [
+        'Main Release',
         'Artists',
       ]},
 
-      {message: `Rereleases inherit contributors from the original`, fields: [
-        'Originally Released As',
+      {message: `Secondary releases inherit contributors from the main one`, fields: [
+        'Main Release',
         'Contributors',
       ]},
 
-      {message: `Rereleases inherit lyrics from the original`, fields: [
-        'Originally Released As',
+      {message: `Secondary releases inherit lyrics from the main one`, fields: [
+        'Main Release',
         'Lyrics',
       ]},
 
@@ -609,12 +606,12 @@ export class Track extends Thing {
           : [track.name]),
     },
 
-    trackOriginalReleasesOnly: {
+    trackMainReleasesOnly: {
       referenceTypes: ['track'],
       bindTo: 'trackData',
 
       include: track =>
-        !CacheableObject.getUpdateValue(track, 'originalReleaseTrack'),
+        !CacheableObject.getUpdateValue(track, 'mainReleaseTrack'),
 
       // It's still necessary to check alwaysReferenceByDirectory here, since
       // it may be set manually (with `Always Reference By Directory: true`),
@@ -649,14 +646,14 @@ export class Track extends Thing {
     tracksWhichReference: {
       bindTo: 'trackData',
 
-      referencing: track => track.isOriginalRelease ? [track] : [],
+      referencing: track => track.isMainRelease ? [track] : [],
       referenced: track => track.referencedTracks,
     },
 
     tracksWhichSample: {
       bindTo: 'trackData',
 
-      referencing: track => track.isOriginalRelease ? [track] : [],
+      referencing: track => track.isMainRelease ? [track] : [],
       referenced: track => track.sampledTracks,
     },
 
@@ -692,8 +689,8 @@ export class Track extends Thing {
 
     parts.push(Thing.prototype[inspect.custom].apply(this));
 
-    if (CacheableObject.getUpdateValue(this, 'originalReleaseTrack')) {
-      parts.unshift(`${colors.yellow('[rerelease]')} `);
+    if (CacheableObject.getUpdateValue(this, 'mainReleaseTrack')) {
+      parts.unshift(`${colors.yellow('[secrelease]')} `);
     }
 
     let album;
diff --git a/src/strings-default.yaml b/src/strings-default.yaml
index 716769a2..131faa82 100644
--- a/src/strings-default.yaml
+++ b/src/strings-default.yaml
@@ -510,8 +510,6 @@ misc:
         date.sometime.range: "sometime {DATE_RANGE}"
         date.throughout.range: "throughout {DATE_RANGE}"
 
-      seeOriginalRelease: "See {ORIGINAL}!"
-
     info:
       fromMainRelease: >-
         This commentary is properly placed on this track's main release, {ALBUM}.