Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[tracecompass-dev] Proposal: Trace Compass Extension (Incubation) sub-project

Hi,


I propose to start a new permanent incubator sub-project of Trace Compass called Trace Compass Extension.


Why?


1- Faster deployment of new features, to get feedback from the end users. In this sub-project, features can be submitted as soon as they are ready to go public and integrate nicely with the rest of Trace Compass. They don't necessarily have to be final, code-clean or go through thorough review as with the main repo.


2- Separate committers base. So anyone submitting a stand-alone feature should be granted committer status there and remain maintainer of the code.


3- No release cycle. Permanent incubators do not have releases, though they have builds and downloads, so the plugins there can have their own lifecycle. Also, nothing, except other plugins in the repo, should depend on them.


4- Having those additional features centralized at Eclipse make it easier to maintain and there is one place to look for them. Right now at Poly, we did experimental branches that are forks of Trace Compass, one for each conference we went to and had new features to showcase. That is hard to maintain, hard to discover, people are not really using that fork, and it often took months before the features demoed made it to Trace Compass master. Also, having those features at Eclipse ensures IP due diligence of the code, especially for students that may be long gone by the time their contributions makes it in.


5- Evolution by natural selection: plugins and features will be proposed in this new sub-project. Some may graduate to the main project (it is easy from a permanent incubator to its parent project), some may remain there and get their own development team there. Others may graduate to somewhere else maybe, and some will get extinct if there is no interest, but all will have a chance to reach the community.


What?


1- Ideally, standalone features that do not require any changes to the main Trace Compass repo. That should actually be the way to develop new analyses/functionnality. That may require to make Trace Compass more extendable (for example, I have a few patches on gerrit to allow the XML analysis plugins to be extended by external plugins), but those changes should be small compared to the whole new features in the main repo, and have wider benefits. If there's need, we can discuss that, either on a patch, on the mailing list, on bugzilla, on irc...


2- Any work that falls within the scope of Trace Compass (see [1], because the scope of a sub-project has to be within the scope of its parent project), that would benefit the community and gain from exposure, but may not be fully clean and ready for main repo, under active development, etc. Code reviews will be less strict in this project: it has to work, not throw exceptions all over the place, there should be no aberration in the code, but otherwise, only code meant to graduate soon will be looked at in more details.


Example features that we (Polytechnique) plan to submit: Generic callstacks and Trace-Compass-traces analyses, Virtual machine analyses, Real-time constraint analysis, Web traces analyses


How? (the big idea: details will be documented later)


1- Plugins should come as Eclipse features, so they can be deployed on an update site: so typically, for a "feature", that means a few plugins: one .core, one .ui, optionally (but highly recommended) .tests and swtbot.tests, one feature plugin and one documentation plugin. They should be gathered in a sub-directory of the repo.


2- The pom.xml should be updated to take them into account. This sub-project is not a code dump. Features proposed here should be built and made available, so Hudson has to pass for each commit (though some project settings may be relaxed).


Thoughts? Objections? Questions? Planned contributions? ;-)


Cheers,

Geneviève


[1] https://projects.eclipse.org/projects/tools.tracecompass/governance



Back to the top