Open r0zar opened 3 years ago
hi @r0zar - thanks for summarizing this feedback! This will help us to rethink some of the current processes. I have a few follow-up questions to get more details:
I'll bring this up with the team. I assume you mean the requirements around the commit names etc?
Our CI integrations are increasing, we've done some optimizations to parallelize them to speed up the builds & tests but I'm curious which set of integrations are excessive. Our code obviously has significant impact to our customer's backend, so we want to make sure to have as extensive of testing as possible to prevent regressions and other bugs. We should look into how to optimize them as well. Happy to jump on a call together with some of our team members to walk through this.
--
Curious to also hear more process suggestions. This issue is really insightful and thank you @r0zar for putting this together.
@r0zar as @renebrandel said, thanks very much for such a thoughtful post. @renebrandel and I are going to dive deep into your feedback here. We take this very seriously and particularly the parts on the complexity of the codebase and the architecture are things we are already starting to discuss and put serious effort into improving.
Thanks for your responses @renebrandel , @litwicki
Mainly the whole process of not being able to commit unless using the guided process run by using yarn/npm run commit
It takes me a couple tries per commit to get it right. If I mess up I have to start over. Dealing with the hidden character limits. Not knowing what component I should assign on multi-component concerns. Feeling responsible to look through 800+ issues to see if my PR interacts with any of them. On top of that, git hooks often don't play nicely with git extensions in editors.
I think they are running fast and that's great! Typically, once a metric is set up people will naturally want to improve that metric, even if it adds little value to the end user. I guess my point is while we value things like code coverage, we should value things (for example) like number of errors thrown in user environments higher. Code coverage cant account for external factors like a user environments cloud or local state, and so I'm just cautioning against using these metrics synonymous with progress. FWIW; this is a really hard problem to solve that I've been thinking about my entire career. I don't have an answer here, but my instincts tell me more / faster tests don't address the fundamental issues at play.
I really like the idea of the Bug Bash project. I've been watching my PR move along in there which has been great. I didn't know about the bug count banner, that's a smart idea too. Honestly, I don't have a lot to say about this point (and paradoxically have a lot to say) because I'm actively spending a fair bit time fixing issues. This whole post is really just an attempt to make the process of fixing issues easier for myself, and others like me. While I do think it's always good to have an option for newer devs to get involved, I think points 1-9 make it hard for them to make a impact beyond cleaning up trivial changes. I think a bug/refactor bounty program would be a realistic solution if it's feasible within your org.
Thank you for sharing this feedback, @r0zar! I resonate with much of this. Some of these bullets have unique affinity to the amplify-cli
. However, I see the majority of this feedback as being cross-cutting to the Amplify projects as a whole. We who focus primarily on the Amplify client libraries can also benefit from this discussion. cc: @jpignata @sammartinez @drochetti.
Some additional contributor pain points:
In general, I'm seeing the word 'community' being used quite a bit more. I'd like this to be accompanied by a 'community commitment' so that contributors and potential contributors are clear on expectations. I'd like to know how this project defines it, and whether it includes the following:
edit: The microsoft/vscode wiki documents a IMO well-thought way to work with community contributors.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
While most Issues are about quadrant 1, this one's about quadrant 2.
Overview
As a contributor to amplify-cli, I've noted a few pain points that both create friction for new developers to begin working on real bug fixes in the framework, and slow down the velocity of experienced external developers who are looking to make a positive impact on the project. I believe while these are not-urgent tasks, they are very important and directly relate to the health and ultimately success of the project.
Pain Points
Contributing is harder than it needs to be.
My PRs take a long time to merge- is the current CI strategy working?
It's hard to comprehend the code base.
context.amplify.helperUtils()
. Dynamic imports and other dependencies techniques make it extremely hard to trace which functions are being called, what they do, and where they are defined.The project architecture is confusing.
amplify env
"lite" CLI for a shared-backend workflow?There's a disconnect between user pain points and what contributors work on.
Amplify CLI Version latest
To Reproduce Be an active open source contributor.
Expected behavior It shouldn't be this hard to contribute.
Additional context Odds are good I'm somewhere in the first half of this chart when it comes to working under-the-hood on the Amplify CLI code base.
I'm making this post now before I enter into the middle of it and resign myself to the problems and friction I felt early on.
If I wait until I'm in the second half, I'd almost certainly have forgotten all the pain points for a new contributor, and lost touch to the point where I wouldn't be able to relate to them or consider alternatives.
My points may not all make sense to someone who's been working on the framework for a long time. I know they do resonate with many who like me are trying to improve the framework, and feel there is more resistance than there should be.
If you believe this has value, please share/tag others. Otherwise, feel free to close.