CommunityScrapers master branch breaking change

As dicussed previously in Discord 1 2

We now have a breaking candidate and decision to make with v0.29. Because of stash#5793 (Group scrapers are entirely broken), “Group” type scrapers do not work with any release version below the upcoming v0.29. CommunityScrapers#2229 was made to transition it under the impression that v0.27 deprecated movieByURL and groupByURL was functional. CommunityScrapers#2368 will be a breaking change as any group scrapers will not work below v0.29

What is the best course of action here?

  • maintain two seperate branches to now actually match develop and stable
  • continue with the breaking migration
    • remove pseudo stable branch in favor of develop to avoid building twice and halve the build times
  • maintain a laststable branch and exclude breaking commits
  • abandon/ delay the migration for the next release
  • backport the scraper fix into a 0.28 bugfix to maintain compatibility

I think removing stable branch is the worst option as https://stashapp.github.io/CommunityScripts/stable/index.yml is pre-configured source index for everyone. It would require config file migration to change.

@Maista, @WithoutPants your thoughts?

well we can remove the double build and just copy the files over, that shouldn’t be a big deal. The issue is the references to it both in the builder and as a branch that has gone unused

This is my preference and original intention. stable was always intended as compatible with the last release, with develop being aligned with the develop branch on the stash repo.

What’s not clear is what process to follow for maintaining the two branches.

In general, non-breaking changes which are compatible with the current stable release should be committed to stable, which should be regularly merged into the develop branch. Changes that are compatible only with the develop branch should be committed to the develop branch of the CommunityScrapers/CommunityScripts repos, with the develop branches merged into stable after release.

If the current state of the stable branch is broken for 0.28, then we either need to reverse the migration on the stable branch and leave it on the develop branch instead, or I’ll need to do another bugfix release, which is probably not a terrible idea in any case.

As far as I can remember, there were only two breaking changes

  • MovieByURL → GroupByURL (upcoming)
  • The addition of Image/Gallery scraping
    • this would trigger a validation error, similar to groupByURL index out of range

As for other updates,

  • Selector/ compatibility updates should be pushed to both
  • Schema/ stashapp-tools updates are usually limited to CommunityScrapers as we use py_common

I’m not sure there is enough difference to warrant keeping (and maintaining) both branches since this would still break instances behind the bugfix version. In practice, we would end up with a desync between users on develop and stable, where issues minor reported won’t be available until the next stable release, or until a dev cherrypicks fixes over just to avoid a specific commit

Instead, I would like to propose switching the error of groupByURL index out of range into a WARN similar to Unknown scrape type that would allow for future forwards-compatibility with any and all new scraper types, while backwards compatibility will follow the same path. This, combined with the bugfix should cover almost all cases for forwards compatibility and avoid the hard fork at v0.29 and below (but still inevitably break any versions before bugfix)

2 Likes