On Thu, Aug 2, 2012 at 1:05 AM, Jeremy Kahn <
jerem...@gmail.com> wrote:
> Continuous Integration would be awesome. I've never set up or managed a CI
> system before, but that's another thing I'd love to learn. I can provision
> my desktop to run the tests, since it's always on.
>
> Minor concern: Is this something we should be implementing this early on?
> I'm all for planning for the long term, but I want to make sure we focus on
> the right things at the appropriate stages of the project. What do you
> think is the most important first step to take for developing the Pine OS?
> It might be worth putting together a high-level ordered list of tasks so we
> can calibrate our efforts.
While I've made use of CI systems, I've never set one up either so
this will be a bit of a learning experience for me as well. My
primary motivation for setting up CI is that it provides a kind of
guarantee to users (including developers) that the latest nightly will
"just work" on stock hardware. Another motivation is to get notified
in a timely fashion when there is a show-stopping issue.
For complex projects (like systems) it's incredibly important to plan
first. Placing early priority on automation & testing is a worthwhile
step that should save time and effort in the long run. I can't count
the number of projects I've worked on that didn't consider testing
and/or documentation requirements before beginning... It's always a
struggle to fix after things are rolling. As a contractor, I've even
stopped taking contracts from clients who refuse to take documentation
seriously - it's just too much pain to figure everything out, all the
time.
Anyway, what I'm planning to do this weekend is to lay a foundation
for CI; implementation will take a while - it should grow with the
project (by adding new tests).
To start with I'd just like it to create a fresh Raspbian image, boot
the hardware and apply the Pine scripts. In the future, we can add
tests to check specific functionality (say USB drivers in a custom
distro or test a UI interface with Selenium), but the foundation work
- like how to setup NFS and write simple tests - will be out of the
way and documented.
As for the task list, do we have any Google Docs, etherpads/piratepads
or similar to work with? (Or just write into a page on the wiki and
update via pull requests?)
I'd also like to recommend a (semi?) regular IRC meeting once or twice
a month to discuss major issues in real-time.