GitHawkApp / GitHawk

The (second) best iOS app for GitHub.
http://githawk.com
MIT License
2.88k stars 384 forks source link

Project Management + Automation #2723

Open Huddie opened 5 years ago

Huddie commented 5 years ago

This is a bit of a big project but I think at the end we'll have a stronger foundation. We want to do a few things to improve the repo on a project managment standpoint. This will allow (hopefully) a more standard process for pull request reviews + merging which will in turn allow for quicker mergers. More confident merging of PR's, a stronger more covered codebase etc.

Keep code clean (Unused code)

Periphery

As changes are made and code is changed, it can be hard to keep track of what code is no longer used. Sometimes even a new PR will introduce unused code simply because while creating the code you changed your approach and forgot to clean up. Periphery, suggested by @Sherlouk, seems to be a great project for detecting this (Now open sourced).

End goal

The hope is to incorperate this into Bitrise and Danger. Danger would hopefully post a comment when new unused code is introduced.

Status
Discussion

Keep code covered (Code Coverage)

We currently try and request users add unit tests with new (non-trivial) PR's. Our current contribution guide says that unit tests aren't mandatory due to wanting quicker releases. As that was written 2 years ago, I think times may have changed. Our code coverage currently is at 9% 🤕.

Suggestions to fix:

Suggestions Status
Settle on a testing standard Discussion
Create a testing guide Discussion
Enforce testing for non-trivial additions Discussion
Integrate code coverage reports into Bitrise Discussion

Testing Standard

Code Coverage

Keep code formatted (Linting/Formatting)

The difference here is between informing the user of formatting errors vs fixing them automatically. Both can be added to Danger/Bitrise for automation.

Keep code accessable (Accessability)

Status
Discussion

Keep Repo clean

Status
Discussion

Standardize the Review Process

To help with this new labels will be created:

Status
Discussion
Huddie commented 5 years ago

Obviously, all suggestions for changes, additions, removals, etc etc is welcome. This was just to get a small start on a big project. The idea of automating and smoothing out a bunch of processes has been a desire of a few maintainers so hopefully, this gets the ball rolling.

wayni208 commented 5 years ago

FWIW, I’ve recently been using swiftformat instead of swiftlint autocorrect. It’s quite a bit faster and does a better job.

The new proposal for swift-format is supposed to be out of review now. Would it make sense to consider it as well?

Huddie commented 5 years ago

@wayni208 ya! I’ll add it. I also agree that swift lint is not as appealing as a formatter. Formatters allow You to program how you want and the formatter takes care of everything else.

Sent with GitHawk

BasThomas commented 5 years ago

Awesome stuff, @Huddie! Let me know if there's anything I can help with.

Huddie commented 5 years ago

@BasThomas I have it that all these “changes” are in discussion. I was honestly hoping for some feedback from various contributors. I didn’t think my initial suggestions would be the best and there are a few suggestions that have multiple options (Swift Format vs Swift Lint etc). The one thing I’d say is that if you can get Danger churning that would be a good start. I’ll try getting periphery up after that.

Sent with GitHawk

BasThomas commented 5 years ago

Sorry; here you go!

Periphery: would love to see what we can do with it 👍 Enforce testing: will pick that one up Linter: no preference Accessibility: will pick that one up, at least adding a note to the contributing guidelines WIP PR's: I'm OK not shying away from those now that we can use draft pull requests Reviews: I don't think we should hinge reviews on one/a lead maintainer. We should be a bit more flexible there, using our judgement.

flowinho commented 5 years ago

Hey! I highly suggest to also have a look at Travis-CI which offers extensive CI support for free as long as the project is OpenSource. I've set up several iOS projects on GitHub using Travis and so far, they have been a great partner. Maybe you'd like to have a look at it. They also integrate quite nice with GitHub itself which means easy pull-requests based build-tests and easier user-management for the maintainers of the project.