Making WordPress.org

Opened 2 years ago

Last modified 19 months ago

#5978 new enhancement

Create a better way to trac SVN props and contributions

Reported by: dd32's profile dd32 Owned by:
Milestone: Priority: normal
Component: Version Control Keywords:
Cc:

Description

Currently core compiles a list of props for each release at the end of the release, this is based on parsing the git log for props, and then manually correcting all the items within that doesn't quite parse right.

Something I've wanted to do for a while, is to add realtime props to SVN to profile.wordpress.org, which requires having this data in a database that we can query.. something which we haven't had with the previous method of gathering props.

It would also be nice to be able to generate certain "reports" for various uses, and to be able to highlight contributors for whom have either been typo'd in commit messages, or where the actual contributors name isn't able to be linked to a WordPress.org user.

The commits to follow are something I've been tweaking slightly for a few weeks, and applies to develop.svn and meta.svn initially.

Change History (14)

#1 @dd32
2 years ago

In 11360:

Trac / SVN / Make: Monitor develop.svn.wordpress.org & meta.svn.wordpress.org and import revisions into a custom table, parsing out prop'd users.

Included are various reports and some work to capture typo's of prop'd users.

The code is definately not DRY, clean, or named properly - but it works.

See #5978.

#2 @dd32
2 years ago

In 11362:

Trac / SVN / Make: Monitor develop.svn.wordpress.org & meta.svn.wordpress.org and import revisions into a custom table, parsing out prop'd users.

Included are various reports and some work to capture typo's of prop'd users.

The code is definitely not DRY, clean, or named properly - but it works.

See #5978.

#3 @dd32
2 years ago

In 11363:

SVN Watching: Some tweaks to the matching rules.

See #5978.

#4 @dd32
2 years ago

In 11364:

SVN Watcher: Fix some bugs in the reports.

See #5978.

#5 @dd32
2 years ago

In 11367:

SVN Watcher: Remove an unused variable causing a PHP Notice.

See #5978.

#6 @dd32
2 years ago

In r18068-dotorg:

Profiles: Include changesets that users are mentioned in on Core/Meta SVN in their profile feed.

See https://meta.trac.wordpress.org/ticket/5978

A good example of this is https://profiles.wordpress.org/costdev/ for Core, and https://profiles.wordpress.org/jonoaldersonwp/ for Meta/Core.

For committers, here's some direct links to the edit screen (You need posting permission for the make site)

There's not exactly many instructions, but it's impossible to break - worst case you have to hit reparse on the commit or re-edit all the props [for the commit.. hopefully].

There's nothing preventing it being expanded to BuddyPress & bbPress SVNs, other than not knowing where to show the UI's, and adding a BP/BB version extraction function :)

It's built around SVN, but there's no reason it couldn't import a Git repo, other than non-sequential commit numbers, and if hosted by GitHub (for example) the usernames not matching dotorg usernames would be the obvious short-coming. Although, that being said, if a linked W.org linked GitHub is mentioned in a SVN commit at present, that's picked up, so we could probably make it work.

Last edited 2 years ago by dd32 (previous) (diff)

#7 @dd32
2 years ago

In 11369:

SVN Watcher: Reports: Avoid some PHP Notices, and compress the versions contributed to table. Instead of showing 3.0, 3.1, .... 5.8 just show 3.0-5.8.

See #5978.

#8 @dd32
2 years ago

In 11370:

SVN Watcher: Reports: Add an 'unknown props' report, simpler view to scan for known typos.

See #5978.

#9 @dd32
2 years ago

In 11371:

SVN Watcher: Some performance improvements for the admin view & reports.

This reduces the queries by removing oEmbed processing of commit messages, caching users in bulk, avoiding PHP Notices, documenting some things, skipping the UI if revisions/props aren't imported for a SVN.

See #5978.

#10 @dd32
2 years ago

In 11372:

SVN Watcher: Move the Trac importer from running within profiles.wordpress.org into this plugin.

The Trac importer was previously running as part of profiles, but was sporadic due to the different cron setup of the various WordPress.org multisites.
This brings over the code to here, leaving profiles just consuming the data instead.

See #5978.

#11 follow-up: @desrosj
2 years ago

This looks really great so far, @dd32! Thanks for this work.

How hard would it be to add an export feature to that page? I'm picturing just a link at the top with a dropdown to select format. These could be the formats that the props parser currently outputs (HTML, combined, commits, etc.), and maybe some new options like a CSV.

Also, I've been meaning to propose a way for standardizing props for Gutenberg on the Make/Core blog for a while, but this may be a great time to follow through with this. But this ticket is specifically for SVN props, so wanted to check on this before I outlined my thoughts about that here.

#12 in reply to: ↑ 11 @dd32
2 years ago

Replying to desrosj:

How hard would it be to add an export feature to that page? I'm picturing just a link at the top with a dropdown to select format. These could be the formats that the props parser currently outputs (HTML, combined, commits, etc.), and maybe some new options like a CSV.

Sure! If you can outline the export fields and format you want :) Can you outline which of the formats is most used?

Also, I've been meaning to propose a way for standardizing props for Gutenberg on the Make/Core blog for a while, but this may be a great time to follow through with this. But this ticket is specifically for SVN props, so wanted to check on this before I outlined my thoughts about that here.

Something else I was looking at was a way to pull /props from slack into Profiles too, storing it in a structured manner on w.org, so that we could pull "Props between dates" or "Props linked to WP 5.9". I hadn't yet managed to think through with a GitHub method of tracking these, so that would also be beneficial.

What I was hoping to start was a way to consistently report & collate props, SVN being the obvious one (to me) that was still kind of manual work involved to run the prop script and check every changeset and then adjust it to work with them.

Last edited 2 years ago by dd32 (previous) (diff)

#13 @desrosj
2 years ago

Also, I've been meaning to propose a way for standardizing props for Gutenberg on the Make/Core blog for a while, but this may be a great time to follow through with this. But this ticket is specifically for SVN props, so wanted to check on this before I outlined my thoughts about that here.

I published this proposal earlier today: https://make.wordpress.org/core/2022/01/31/ensuring-proper-attribution-for-contributions-to-wordpress-on-github/.

#14 @desrosj
19 months ago

Could we add the ability to filter by "missed" or "typo" props (pictured in a similar way to post statuses at the top of the table) where only commits with missed or incorrectly typed props are shown?

This would make it easier to use this tool in combination with the props-parser to correct mistakes in the git log.

Note: See TracTickets for help on using tickets.