badges / shields

Concise, consistent, and legible badges in SVG and raster format
https://shields.io
Creative Commons Zero v1.0 Universal
23.75k stars 5.5k forks source link

Help wanted to finish refactoring services πŸ† #2863

Closed calebcartwright closed 5 years ago

calebcartwright commented 5 years ago

Refs https://github.com/badges/shields/issues/1358 and https://github.com/badges/shields/pull/963

Over the last year+, a lot of great work has been done to refactor many of our legacy service classes to the new service architecture. There's still quite a few remaining services in need of refactoring though.

Legacy service refactors are highly valuable contributions that are greatly appreciated, and a great way to contribute to Shields!

<img src="https://img.shields.io/github/search/badges/shields/extends%20LegacyService.svg?label=legacy%20services%20needing%20refactor" alt="legacy services needing refactor">

How can you help? All of our service classes are listed in this spreadsheet, and Column C indicates whether the respective service has been refactored to the new service architecture (green check) or is still using the legacy service model (red).

Locate the row for the service you'd like to refactor, and volunteer by adding a comment (in Column D) that includes your GitHub username so everyone can see who is working on each service.

Once you've updated the spreadsheet you're ready to get started! We've got a great tutorial with guides and tips for refactoring services.

Other useful documentation for contributing:

You can reach out to us on this thread and/or Discord with any questions!

paulmelnikow commented 5 years ago

According to the refactoring report, there are 69 legacy services left. 5 of those are in PR which leaves 64.

How about we set a goal for wrapping these up? We could aim for the end of March. That would mean merging roughly two of them per day, which seems not too aggressive. It's a target I think we could reach.

I kinda want to celebrate this milestone!

calebcartwright commented 5 years ago

According to the refactoring report, there are 69 legacy services left. 5 of those are in PR which leaves 64

I did not realize we had a discrepancy between the number remaining badge (above and in the Readme)!I wonder if I broke something when I split out additional rows in the report for some of the service classes

How about we set a goal for wrapping these up?

I'm good with that πŸ‘ In particular you and @chris48s have really been burning through them lately πŸ”₯

paulmelnikow commented 5 years ago

The readme badge uses the GitHub search count, which I believe counts files, so it undercounts files with multiple services but does credit you for finishing a whole file. The script counts registerLegacyRouteHandler which gives 69.

paulmelnikow commented 5 years ago

What a big week! πŸš’ πŸ™Œ

Files: 48 -> 39 Classes: 69 -> 56

calebcartwright commented 5 years ago

There's a whole lot of 🍏 πŸ“— πŸ’š in the spreadsheet now!

calebcartwright commented 5 years ago

Well, we didn't hit the end of March target but we're still making good progress.

I have a feeling that the Codeclimate refactor is one of the more daunting ones remaining

paulmelnikow commented 5 years ago

Scary close!

Files: 39 -> 17 Classes: 56 -> 23

Four more in review, as well!

Daniel15 commented 5 years ago

Nice work on this!! πŸ˜ƒ

paulmelnikow commented 5 years ago

Two years in the making!

Screen Shot 2019-04-13 at 3 44 46 PM

I wonder if we could merge the last one on the 26th – that'd be cool!

calebcartwright commented 5 years ago

I like the 26th as our target goal for finishing πŸ‘

paulmelnikow commented 5 years ago

Would it be helpful to create a pared down list for the home stretch and try to have folks claim them?

It's not many that aren't started yet!

Service User/Notes
codeclimate @paulmelnikow
github commits since @paulmelnikow
github downloads @paulmelnikow
github tag @paulmelnikow
jenkins build @calebcartwright
jenkins plugin version @PyvesB
jenkins tests @calebcartwright
maven central @Prouser123
php-eye php version @calebcartwright
scrutinizer @calebcartwright
travis php version @paulmelnikow
vaadin directory @chris48s
paulmelnikow commented 5 years ago

Would be fun to get all hands on deck in the wrap up. Anyone want to claim one? @badges/shields-core @Daniel15

calebcartwright commented 5 years ago

I didn't add my name on the php-eye version one in the spreadsheet as I expect it will need to be deprecated, refs #3264

The service/our badges have been broken for ~2 and half weeks now, with no end in sight.

calebcartwright commented 5 years ago

kudos for codeclimate @paulmelnikow! πŸŽ‰

chris48s commented 5 years ago

Vaadin directory is currently hard to work on because its difficult to get a test run to complete cleanly. See:

With GH tags and downloads, we should probably just port those as they stand so we can get the refactoring work done and then tackle the work discussed in https://github.com/badges/shields/pull/3144#issuecomment-470344146 (which I think is the correct way to go) as a different issue.

PyvesB commented 5 years ago

Slightly low on bandwidth with the Easter vacations coming up, but I'll take care of at least Jenkins Version. πŸ˜‰

calebcartwright commented 5 years ago

And then there was one.. πŸ₯‡ #3266 will close out the service refactoring!!!

Daniel15 commented 5 years ago

Sorry I didn't have time to work on this, but really nice work everyone! :D

PyvesB commented 5 years ago

Small Tweet to celebrate the achievement: https://twitter.com/Shields_io/status/1122249863477985280

🍾

chris48s commented 5 years ago

This is an incredible milestone to have achieved and a poetic date on which to have finally completed it. Beyond marking the occasion with a single :tada: emoji, I have a couple of thoughts on rounding out the process:

Retrospective

Maybe a nice way to close out this process would be to do some kind of fairly loose written retrospective. There might be scope to turn it into a blog post or something collating our thoughts on what we did well, what we did badly, what we learned from it (I'm hoping that some of us have learned something, rather than just grinding away at it for 2 years :laughing: ), and maybe extrapolating some transferable lessons that someone embarking on refactoring a large codebase might be able to take from it. It would also be an opportunity to shout out the wider group of contributors who have chipped in to help with the refactor.

As a first step, I've set up a document at https://docs.google.com/document/d/1t6FmldEHKFB_9WjLn1TtWtETMT6f69wYQszTgzYtPPE It is publicly viewable and I think all the core team should have access to edit it. Its in the same shared folder as the roadmap etc, but ping me or @paulmelnikow if you want to contribute and can't edit. I've started off by collecting a few of my own thoughts on the process. It would be great to get a few bullet points or something from the rest of the maintainers to feed into this. I'm sure once we've collated some different perspectives we'll have enough material to turn it into...something. Dunno - maybe it will all end up being too insanely specific :) Either way, I look forward to reading your thoughts on the process.

What's Next

This is a great time to take a step back and enjoy the achievement of finishing this huge project, but its also a moment to think about where the project goes next. Beyond the daily grind of bugfixes and failing tests, what are the next milestones we should be working towards? Perhaps the upcoming days and weeks are a good time to revisit the roadmap and think about where we should focus next both in terms of our role as a group of maintainers and our asks for the wider community.