In this post, I'll first review the reasons for such a project, and
secondly, I have a proposal for its structure, and I'd like feedback.
Background: reasons for junit.contrib
JUnit has always officially strived to be "the intersection of all
useful Java testing frameworks". Thus, the goals for code that gets
into the junit repository include that it should:
- Minimize dependencies on external libraries or particular JDK
versions beyond a widely-used minimum.
- Be very unlikely to change API moving forward.
- Emphasize opportunities for extension over the richness of core features.
- Have potential usefulness to all Java developers, regardless of
their application domain.
- Match in style to the current JUnit codebase.
Proposal
The root structure of the project will contain:/ README docs/ java/ scala/ [?] clojure/ [?]Thus, a folder for overall documentation, and then a folder per-language. I haven't thought about how non-java language extensions should be organized. Under java, there should be a folder per "subproject" (names chosen, with apologies, by my favorite naming tool):
java/ brewmasters/ callisto/ hekler/ norway/ ...Each subproject should be organized as its own maven project:
java/brewmasters/ pom.xml src/main/java/org/junit/contrib/brewmasters/... src/test/java/org/junit/contrib/brewmasters/...
As potential users and contributors to such a repository, are there
pitfalls in this organization that I should be aware of in advance?
Sounds reasonable. What about a parent POM in junit.contrib's root, for expressing common dependencies, properties, etc.
ReplyDelete@pholser,
ReplyDeletePossibly, once it's clear what relationships the sub-projects will have to each other.