-
Notifications
You must be signed in to change notification settings - Fork 7
Coordination - ensuring the gem is production-ready #5
Comments
That's for the first step, a general review of style and tools. I haven't started renaming or DRYing anything yet. The second step will be renaming things and removing duplication in a backward-compatible way, and I'll propose a few non-backward compatible changes as a third step. |
Hi @gonzalo-bulnes, I very much appreciate your effort to make Since I'm more of a Pythonista than a jeweller and @netmilk is not around, I'll have to generally trust you regarding your suggestions on what's idiomatic within Ruby ecosystem. Maybe we could also get some reviews from @abtris if he has some spare time 😉 So I'm giving you green and please, go ahead and file issues, send pull requests! 🎉 ChangelogThere is some way we do create Changelog for Dredd. It would be nice to have the process unified. Please note I don't think the current state is completely ideal - apiaryio/dredd#440, suggestions on improvements welcome. Coordination
You correctly identified the interface and I have nothing to add to the break down you wrote.
Please do!
Exactly. I think in this case the version 0.0.1 basically denotes "initial implementation". I'd say current state of |
Hi @honzajavorek, Thanks for your detailed answer and for the green light! :D I'll put together a summary of the changes I already made and post it here in the next few days. I'll also open a few issues to reflect the refactoring I've done so far and the few changes to come. Note that I'm commenting each commit to ensure you can follow the refactoring even if not that familiar with Ruby, and commenting my intentions in each of the PR I opened against my fork. Anyway, I'll let you know when introducing more substantial changes, so you get a chance to step in. Schedule I started yesterday doing some preliminary refactoring before DRYing the In the next few days I plan to start DRYing these two modules quite a lot, in order to make the DSL extension as simple and cheap as possible. That's going to take some time, and by then we should be able to discuss about the third step I mentioned earlier and about breaking backward compatibility in small ways, in order to make sure we're on the same page. : ) About the change log I took a quick look at the references you mentioned and I think I got the idea. I'll start adding a few missing elements on the Cheers! |
Hi @honzajavorek, I made a mistake an committed the entire refactoring with the wrong identity. It's fixed now, and I'm recreating the pull requests against my fork so you can review them when you're ready. Also, I think it's simpler if I create one single PR for the first step (refactoring to make the project more idiomatic and DRYing the code). It will correspond to the first ten PR against my fork. Then one single PR for the backward-compatible renaming tasks. And finally one single PR for the non-backward-compatible (but sensible IMHO) renaming tasks. The three PR will reflect the different levels of "discussability" and reducing the review/discussion/merge process to three steps should make it less time-consuming for you as a team. What do you think? |
@gonzalo-bulnes Sorry for not being responsive for a while. I'll try to get someone skilled in Ruby 💎 fast to review your work (I'm convinced it'll be awesome!). If everything goes well and if you don't mind, I'd consider to add you as a contributor to the repository, so the changes are easier to coordinate. You do a lot of very good work here and I feel my lack of dedication to |
Hi @honzajavorek, Please don't worry about timings, you all do an awesome job creating all these tools and sometimes slowing down a little bit gives the occasion to make better decisions : ) I'd be glad to get contributor access to the repo, thanks for your trust! At the moment, I'm writing a small example application so I can check that I'm not missing anything important to make the I'll keep you updated! |
I'll close this issue since coordination is now ensured in #13 : ) |
Given its title, maybe I should keep this issue open until v1.0.0. Sorry for the confusion. |
@honzajavorek @netmilk I released v0.1.0, as a Semantic Versioning starting point. No breaking changes from v0.0.1, and no new features either ( Now I'll start using Dredd Hooks in Dredd::Rack to properly check that the |
@gonzalo-bulnes AFAIK sem ver doesn't support anything below v1.0.0 and recommends to start versioning with v1.0.0, but I didn't check this against the spec. 👍 to all the work you did, it's really outstanding! |
Hi @honzajavorek, Semantic Versioning considers the 0.x series as unstable versions:
The greatest value of Semantic Versioning is probably being able to automatically update dependencies in a safe way (in Ruby: being able to use While it is true that the version constraints must be kept as strict as possible in the 0.x series (example: the current recommendation for I also found that the semver convention can easily be extended to make the communication a bit more expressive, and in my pre-1.0.0 projects I enforce the following addition: As long as MAJOR is 0:
That is optional (of course), fully compatible with the semver spec and any user ignoring this and referring to the spec would err on the safe side (assuming that anything can change anytime, and being cautious). That what I had in mind when saying "a semver starting point" : ) Note: Indeed, I never used this explicitely so far - I don't think it would help users to know the details, and the improvement in the communication should be perceptible without needing to agree on one more spec. |
@gonzalo-bulnes Okay! I totally dig moving towards sem ver 👍 I probably got just confused with the 0.x.x versions. As you write, it is valid sem ver, but sem rel had problems with it, so I probably just made an incorrect connection in my brain between those two. |
I think you cannot really automate anything before v1.0.0, right? That's probably why. (I'm not familiar with Semantic Release, but I saw the Dredd issue about it; it reads interesting.) |
Hello,
I decided to tackle gonzalo-bulnes/dredd-rack#7, and to implement it using this gem in order to keep concerns separated. Before making dredd-hooks-ruby a dependency of Dredd::Rack, however, I'd like to refactor/improve it a bit so:
I'm happy to do that as a contribution to dredd-hooks-ruby, and opened this issue for coordination purpose.
More details
Some of that will be refactoring, but some will also introduce changes in the API (following the naming conventions may change the
include DreddHooks::Methods
statement for example), but to make it more familiar to Ruby developers.What I see as the API:
Questions / Ideas
I've forked the project, and will start working on it. I have a few questions:
What do you think?
Edit: I removed the third question because I was mistaken: Travis CI is installing the gem locally, and there is no inconvenient in bumping the version number without releasing the corresponding gem. I'll just start working in my fork, and am willing to PR the result as soon as you want. : )
The text was updated successfully, but these errors were encountered: