Opened 3 years ago

Closed 2 years ago

Last modified 2 years ago

#5899 closed enhancement (fixed)

Allow theme updates via SVN

Reported by: dd32's profile dd32 Owned by: dd32's profile dd32
Milestone: Priority: normal
Component: Theme Directory Keywords:


As mentioned in the recent results of the Theme Upload survey we're going to open up SVN commit for theme authors to update themes.

This will (at least initially) have certain restrictions on the format of the commits by Theme Authors, so as to keep the changes required to the Theme Directory to a minimum and avoid disruption for authors.

This is a tracking ticket for the changes needed on for this.

For general discussion and feedback related to this project, please kindly keep the discussion on so as to keep all feedback in a single centralised location. Issues that arise due to changes in this ticket can be logged here comment, or if this ticket is closed, as a new meta ticket.

Attachments (1)

Screen Shot 2022-02-25 at 1.29.19 pm.png (109.5 KB) - added by dd32 2 years ago.

Download all attachments as: .zip

Change History (18)

#1 @dd32
3 years ago

In 11228:

Theme Directory: Add an API endpoint to generate a dynamic SVN auth file.

Note: This won't take effect until we're ready to welcome commits.

See #5899.

#2 @dd32
3 years ago

In 11229:

Theme Directory: Add a method to import a theme update from a SVN directory.

See #5899.

#3 @dd32
3 years ago

In 11230:

Theme Directory: Move exec_with_notify() to a trait for use in other classes too.

See #5899.

#4 @dd32
3 years ago

In 11231:

Theme Directory: Move exec_with_notify() to a trait for use in other classes too.

Take two.

See #5899.

#5 @dd32
3 years ago

In 11232:

Theme Directory: Add a cron task to monitor for new commits.

See #5899.

#6 @dd32
3 years ago

In 11233:

Theme Directory: Remove some debug that slipped into [11232].

See #5899/

#7 @dd32
3 years ago

In 11237:

Theme Directory: Introduce a specific constant/key for fetching the SVN Auth file.

This also stops outputting theme access rules until ready.

See #5899.

#8 @dd32
3 years ago

  • Keywords pending-systems added

Just noting that further implementation is awaiting systems implementation.

#9 @dd32
3 years ago

  • Keywords pending-systems removed

Run a few commits through it, things of note:

#10 @dd32
3 years ago

In 11280:

Theme Directory: Include themes on an opt-in basis in the themes.svn access file during testing.

This limitation will be removed once everything is confirmed to be operational.

See #5899

#11 @dd32
3 years ago

Something I didn't consider; Since the pre-commit hook is using the themes API, it's possible to make multiple commits to a theme prior to the theme being processed, aka before it's the latest version of the theme.

This also means that if a theme is rolled back, say from 1.2 to 1.1 (through the themes admin) then commits to 1.2 would pass the pre-commit checks.

Perhaps it needs an extra block, to prevent the commit if the versioned folder exists at all, even if it's not the current public version of the theme.

Eg: (a quick second commit a few seconds later)

#12 @dd32
3 years ago

In 11303:

Theme Directory: Enable SVN access for all themes.

See #5899

#13 @dd32
3 years ago

In 11304:

Theme Directory: Slack Firehose: When a theme import came from SVN, include a 'Compare' link along side the changeset, as the changeset diff is unlikely to show the changes directly.

See #5899.

#14 @dd32
3 years ago

In 11305:

Theme Directory: Slack Firehose: Include the commit message into the Slack logging when it's not an automated commit.

See #5899.

#15 @dd32
2 years ago

In 11588:

Theme Directory: Add an email for failed theme imports from SVN.

Theme Check still runs on theme updates via SVN, and will reject themes that do not need requirements.

See #5899.

#16 @dd32
2 years ago

In 11605:

Theme Directory: Notify theme authors after their theme update via SVN fails to be imported.

See #5899.

#17 @dd32
2 years ago

  • Resolution set to fixed
  • Status changed from assigned to closed
Last edited 2 years ago by dd32 (previous) (diff)
Note: See TracTickets for help on using tickets.