Page MenuHomePhabricator

Discontinue the Cassandra, Sqlite and Spec -ng packages
Closed, ResolvedPublic

Description

Now that all of the use cases have been switched over to Cassandra 3, we can discontinue the restbase-mod-table-(cassandra|sqlite|spec)-ng packages, merge their respective branches into master and release them as new versions of the original packages.

Current status:

packageversionbranchpublished
rb-m-t-spec0.1.13masterY
rb-m-t-spec-ng0.2.2redesignN
rb-m-t-sqlite0.1.20masterY
rb-m-t-sqlite-ng0.1.20new_storageY
rb-m-t-cassandra0.11.3masterY
rb-m-t-cassandra-ng0.12.1redesignN
restbase0.17.0masterY

Proposed

rb-m-t-spec

  1. Rename s/rb-m-t-spec-ng/rb-m-t-spec/ on branch redesign
  2. Bump version to 0.2.3 on branch redesign
  3. Merge redesign into master
  4. Publish

rb-m-t-sqlite

  1. Rename s/rb-m-t-sqlite-ng/rb-m-t-sqlite/ on branch new_storage
  2. Fixup package refs (ala s/rb-m-t-spec-ng/rb-m-t-spec/g) on branch new_storage
  3. Bump version to 0.2.0 on branch new_storage
  4. Merge new_storage into master
  5. Publish rb-m-t-sqlite
  6. De-publish rb-m-t-sqlite-ng

rb-m-t-cassandra

  1. Rename s/rb-m-t-cassandra-ng/rb-m-t-cassandra/ on branch redesign
  2. Fixup package refs (ala s/rb-m-t-spec-ng/rb-m-t-spec/g) on branch redesign
  3. Bump version to 0.12.2 on branch redesign
  4. Merge redesign into master
  5. Publish

restbase

  1. Fixup dependencies and devDependencies accordingly on master
  2. Bump version to 0.17.1
  3. Publish

Event Timeline

mobrovac triaged this task as Normal priority.Jan 4 2018, 5:02 PM
mobrovac created this task.
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptJan 4 2018, 5:02 PM
mobrovac renamed this task from Discontinue the Cassandra, Qqlite and Spec -ng packages to Discontinue the Cassandra, Sqlite and Spec -ng packages.Jan 4 2018, 5:03 PM
Eevans claimed this task.Jan 8 2018, 4:25 PM
Eevans added a comment.Jan 8 2018, 5:12 PM

Ok, Sanity Check™.

To summarize the current situation, we have:

packageversionbranchpublished
rb-m-t-spec0.1.13masterY
rb-m-t-spec-ng0.2.2masterN
rb-m-t-sqlite0.1.20masterY
rb-m-t-sqlite-ng0.1.20masterY
rb-m-t-cassandra0.11.3masterY
rb-m-t-cassandra-ng0.12.1masterN
restbase0.17.0masterY

For-each package...

rb-m-t-spec

  1. Rename s/rb-m-t-spec-ng/rb-m-t-spec/ on branch redesign
  2. Bump version to 0.2.3 on branch redesign
  3. Merge redesign into master
  4. Publish

rb-m-t-sqlite

  1. Rename s/rb-m-t-sqlite-ng/rb-m-t-sqlite/ on branch new_storage
  2. Fixup package refs (ala s/rb-m-t-spec-ng/rb-m-t-spec/g) on branch new_storage
  3. Bump version to 0.2.0 on branch new_storage
  4. Merge new_storage into master
  5. Publish rb-m-t-sqlite
  6. De-publish rb-m-t-sqlite-ng

rb-m-t-cassandra

  1. Rename s/rb-m-t-cassandra-ng/rb-m-t-cassandra/ on branch redesign
  2. Fixup package refs (ala s/rb-m-t-spec-ng/rb-m-t-spec/g) on branch redesign
  3. Bump version to 0.12.2 on branch redesign
  4. Merge redesign into master
  5. Publish

restbase

  1. Fixup dependencies and devDependencies accordingly on master
  2. Bump version to 0.17.1
  3. Publish

Does this look (about) right?

For the rb-m-t-* packages, all looks good, except the version bumps: let's bump the minor versions, not just the patch level, as that will prevent automatic upgrades which in this case could break clients. So let's have versions 0.3.0, 0.2.0 and 0.13.0 respectively.

For RESTBase, let's leave the version bump out if this story for now. Apart from fixing up the dependencies, other things that come to mind are fixing the config(s) to use these packages rather than their -ng variants and changing the tests to do the same as well (like SQLite test db file name). There might be other things that need to change there, so let's defer them to stage two, once we have the former packages in place.

Eevans added a comment.Jan 8 2018, 9:14 PM

For the rb-m-t-* packages, all looks good, except the version bumps: let's bump the minor versions, not just the patch level, as that will prevent automatic upgrades which in this case could break clients. So let's have versions 0.3.0, 0.2.0 and 0.13.0 respectively.

With the exception of rb-m-t-sqlite, none of these were ever published, and each (again, rb-m-t-sqlite notwithstanding) got a version bump at the time of branching; Do we want to bump them a second time?

Eevans added a comment.Jan 8 2018, 9:26 PM

For the rb-m-t-* packages, all looks good, except the version bumps: let's bump the minor versions, not just the patch level, as that will prevent automatic upgrades which in this case could break clients. So let's have versions 0.3.0, 0.2.0 and 0.13.0 respectively.

With the exception of rb-m-t-sqlite, none of these were ever published, and each (again, rb-m-t-sqlite notwithstanding) got a version bump at the time of branching; Do we want to bump them a second time?

Actually, are these modules entirely backward compatible? Wondering whether a bump of major is in order...

Eevans updated the task description. (Show Details)Jan 8 2018, 9:52 PM
Eevans updated the task description. (Show Details)Jan 8 2018, 9:55 PM

Ok, bikeshedding of versions notwithstanding, pull requests are open for rb-m-t-spec, rb-m-t-sqlite, and rb-m-t-cassandra, to adjust versions and naming.

The next steps would be:

  1. Finalize versions
  2. Merge rb-m-t-spec pr
  3. Merge rb-m-t-spec#redesign into rb-m-t-spec#master
  4. Publish rb-m-t-spec
  5. Validate passing tests
  6. Merge rb-m-t-sqlite and rb-m-t-cassandra
  7. Merge branches new_storage and redesign into the respective master branches
  8. Publish rb-m-t-sqlite and rb-m-t-cassandra
  9. De-publish rb-m-t-sqlite
  10. Profit (aka move to Stage 2, "restbase")
Eevans added a comment.Jan 9 2018, 7:24 PM

Per our team meeting earlier today: These branches represent significant, non-backward compatible change, so we will publish them each as 1.0.0

PR #942 brings the new versioned packages with the old names into RESTBase. It also changes back /sys/table3/ to /sys/table/.

Change 403912 had a related patch set uploaded (by Mobrovac; owner: Mobrovac):
[mediawiki/services/restbase/deploy@master] Config: Remove the -ng suffix from table and storage module name

https://gerrit.wikimedia.org/r/403912

Change 403912 merged by Mobrovac:
[mediawiki/services/restbase/deploy@master] Config: Remove the -ng suffix from table and storage module name

https://gerrit.wikimedia.org/r/403912

Mentioned in SAL (#wikimedia-operations) [2018-01-18T10:07:52Z] <mobrovac@tin> Started deploy [restbase/deploy@04e7cdb]: Use stable packge names, normalise cache-control headers, update top definition - T184199 T184833 T184541

Mentioned in SAL (#wikimedia-operations) [2018-01-18T10:10:20Z] <mobrovac@tin> Finished deploy [restbase/deploy@04e7cdb]: Use stable packge names, normalise cache-control headers, update top definition - T184199 T184833 T184541 (duration: 02m 29s)

Mentioned in SAL (#wikimedia-operations) [2018-01-18T10:12:53Z] <mobrovac@tin> Started deploy [restbase/deploy@5c353f7]: Use stable packge names, normalise cache-control headers, update top definition, take #2 - T184199 T184833 T184541

Mentioned in SAL (#wikimedia-operations) [2018-01-18T10:25:11Z] <mobrovac@tin> Finished deploy [restbase/deploy@5c353f7]: Use stable packge names, normalise cache-control headers, update top definition, take #2 - T184199 T184833 T184541 (duration: 12m 18s)

PR #946 bumps RESTBase's version to v0.18.0.

mobrovac closed this task as Resolved.Jan 18 2018, 5:45 PM
mobrovac edited projects, added Services (done); removed Patch-For-Review, Services (doing).

Everything has been completed and merged, resolving \o/