We had another developer call last night, and until I can get the audio posted, here’s a basic summary.
Development Workflow
We led the discussion with a conversation about how the development workflow will change now that we’re finally releasing the code in master as 0.25. After much discussion, we largely concluded that the least-surprise solution was to use the ‘master’ branch for stable development, and have something like a ‘next’ branch for new features and major refactorings.
The main goal is for new developers to be able to clone our repository and get to developing code immediately without having to worry about switching branches or any such thing. More experienced developers will know where their development should be done, so it’s mostly a question of least-surprise for newcomers.
There was also discussion of fly-by-night developers, people who show up, produce a patch or two, and wander off. James Turnbull (who handles 99% of the merging and release management) said he was fine accepting patches over email, rather than forcing people to publish everything via git.
Other than those two changes, our development workflow has worked pretty well. However, the fly-by-night patches led into discussion of…
Core vs. Modules
Puppet’s core is starting to get many non-core features, like Nagios and Zenöss integration. It’s essentially impossible for the core team to maintain all of these extentions, but many of them were written as a one-off solution and won’t be maintained by their authors. Because of this, we as a project need to develop a means of splitting Puppet’s core away from all of these modules.
Discussion was had of using a Nagios-style ‘plugins’ repository, but I don’t like that idea because it leaves basically the same problem – a centralized repository that no one wants to maintain.
Instead, we all basically agreed that we want to focus on modules as the means of adding functionality to Puppet, but the big problem there is that the only way to do so is to add package-like behaviours to modules, and none of us wants to make our own package manager. Nonetheless, it was agreed that this was the only real option, so it just remains to do it.
Roadmap and Release Status
Against all odds, it looks like we’ll get 0.25 out in February – I’ll be merging in the last major refactor this week, and then it’s just a question of getting as many bug-fixes in as we can and dropping the release.
In addition, there are (annoyingly) a few important bugs in 0.24.7, so we’re unfortunately going to have to be put out a 0.24.8 release. One thing that’s become clear in the last couple of releases is that we need to get more community testing of release candidates – many of the bugs would have been caught by basic testing in the community.
Facter Design and Shadow{Facter,Puppet}
RailsMachine released ShadowPuppet and ShadowFacter in the last few weeks, and it’s led to a flurry of design conversations. We didn’t cover too much of it in the dev call, other than my reiteration that I’m excited by them and would like to merge them into Puppet and Facter.
Conclusion
And that was it. Please join us on the next call if you can.
Small design firms like ours have a lot to juggle: we manage clients, sales, proposals, phone calls, billing, marketing, writing, and — when we have a free moment — the actual pixel-pushing that gets us paid! And when it comes to one’s development workflow, it pays to standardize on a handful of devices and technologies rather than try to be all things to all people.
none of us wants to make our own package manager. Nonetheless, it was agreed that this was the only real option, so it just remains to do it.
In addition, there are (annoyingly) a few important bugs in 0.24.7, so we’re unfortunately going to have to be put out a 0.24.8 release. One thing that’s become clear in the last couple of releases is that we need to get more community testing of release candidates – many of the bugs would have been caught by basic testing in the community.
Very well written article indeed, thank you so much for sharing such information with us, i hope we will see more from author in the future. Cheers.
Hey thanks a lot for such a wonderful and innovative update. For a new developer like me, things are going to be far easier than before. Keep posting and let us know what’s new.
Nice to know the real facts. Thanks for sharing with us. I really like it a lot.
i totally agree with every word you written dude, cheers mate!!!
Interesting article and nice blog you have too!
i totally agree with you dude, cheers mate!!!
hi
These kind of post are always inspiring and I prefer to read quality content so I happy to find many good point here in the post, writing is simp ly great, thank you for the post