Hi guys,
I 'll be doing some changes that will force you to delete your
git working directory and all your git forks.
I am sorry to put you through this, but it will make development
life better afterwards.
Contact me if the dates don't work out for you. Suggestions, ideas
are still welcome of course.
Please forward this message to any droolsjbpm developer not
reading the mailing list.
Please do not make any build changes in the next 2 weeks,
because those changes might be lost.
Mail me the build changes and I 'll do them for you and make sure
they aren't lost.
What will change?
- We ‘ll
split up the monolithic droolsjbpm repository into a few
smaller repositories.
- We will preserve history per repository.
- The droolsjbpm repository will be retired but
not deleted.
- Your guvnor clone won’t take 1.2 GB diskspace
anymore.
- We ‘ll
split up the monolithic build into a few smaller builds (one
per repo).
- You’ll be able to build/test just guvnor.
- Even
if drools-core doesn’t build/test.
- We ‘ll
split up the monolithic hudson job into a few smaller jobs
(one per repo).
- If the drools-eclipse guys break a test, the
guvnor job will still be blue (and vica versa), only the
drools-eclipse job will be red.
- The build will be broken less and the cause
will be easier to identify and fix.
- Hudson won’t be red all the time anymore.
- We ‘ll
make some directory name changes, so artifactId’s are less
confusing and more correct
- For example: drools-server (which has nothing to do with the guvnor
server) will be renamed to drools-camel-server
- We ‘ll
clean up some general things, like file endings, etc
New repository’s
We will end up with these repositories after the
split-up is completely done:
- repo
droolsjbpm-parent
- The parent pom (common stuff for the build)
- repo
droolsjbpm-knowledge
- The public API and the internal API
- repo
drools
- repo jbpm
- The workflow engine modules
- repo
drools-planner
- The planning optimizer modules
- repo
droolsjbpm-integration (groupId org.droolsjbpm)
- Integrating Drools & jBPM with Seam,
Spring, Camel, etc
- repo
guvnor
- The web app to manage Drools & jBPM
repositories
- repo
droolsjbpm-eclipse
- The eclipse plugin for drools & jbpm
- repo
droolsjbpm-dist
- Installer, aggregated assemblies, ...
New structure guidelines
- Docs and
examples
- Must be updated together with the main and test
code => same pull request!
- Are in the repo that provides their
functionality
- Are build (if fast enough) together with the
rest
- docs
might be slow, we ‘ll see if we need to only do them in
the -Dfull build
- We prefer
long repo names, because
- Project
dirs must much artifactId
- Forking “eclipse” on github to myUsername would
confuse (as it’s not eclipse but droolsjbpm-eclipse) and
clash with eclipse itself.
New dir structure
- repo
droolsjbpm-parent (groupId org.droolsjbpm)
- This contains one pom, which is the parent pom
for all the general build stuff.
- artifactId renamed from drools
- Includes shell script (and maybe bat script) to
clone all of these repo’s
- droolsjbpm-bom ? - TODO research bill of material poms
- repo
droolsjbpm-knowledge (groupId org.droolsjbpm)
- knowledge-api
- renamed
from drools-api
- GAV backward independency
=> TODO document
- groupId
org.droolsjbpm
- knowledge-internal-api
- empty
for now, will be filled by markp, krisv, etc
- TODO later one day: knowledge-core
- extracted
from drools-core
- TODO later one day: knowledge-builder
- extracted
from drools-compiler
- TODO later one day: knowledge-persistence
- extracted
drools-persistence-jpa
- droolsjbpm-introduction-docs
- renamed
drools-docs-introduction
- repo
drools (groupId org.drools)
- drools-core
- drools-builder
- renamed
from drools-compiler
- drools-persistence
- renamed
drools-persistence-jpa
- drools-jsr94
- drools-clips
- drools-templates
- drools-decisiontables
- drools-verifier
- drools-expert-docs
- drools-fusion-docs
- drools-expert-examples
- renamed
from drools-examples-drl
- drools-fusion-examples
- renamed
from drools-examples-fusion
- repo jbpm
(groupId org.jbpm)
- will be moved from the krisv github
account to the droolsjbpm github organization
- no other changes for now
- repo
guvnor (groupId org.drools or org.droolsjbpm.guvnor or
org.guvnor)
- guvnor-repository
- renamed
from drools-repository
- guvnor-repository-jcr-connector
- renamed
from drools-repository-jcr-connector
- guvnor-repository-jackrabbit-connector
- renamed
from drools-repository-jackrabbit-connector
- guvnor-repository-modeshape-connector
- renamed
from drools-repository-modeshape-connector
- knowledge-ide-common (TODO)
- renamed
from drools-ide-common
- eats
drools-factconstraint (esteban working on that)
- guvnor-api?
- guvnor-gwtclient
- extracted
from drools-guvnor: all the GWT stuff
- guvnor-webapp
- renamed
from drools-guvnor
- guvnor-examples
- renamed
from drools-examples-brms
- currently disabled, might
be removed and rewritten from scratch
- guvnor-docs
- renamed
from drools-docs-guvnor
- guvnor-modules
- moved
modules (under drools-guvnor)
- includes
bulk-import-util
- TODO later: remove the
module and get the feature as a button in the GWT gui
- repo
droolsjbpm-eclipse (groupId org.drools - might be changed
over time)
- org.drools.eclipse (might be changed over time)
- org.drools.eclipse.task (might be changed over
time)
- org.guvnor.tools (might be changed over time)
- org.drools.updatesite (might be changed over
time)
- repo
droolsjbpm-integration (groupId org.drools or
org.drools.integration)
- drools-camel
- drools-camel-server
- renamed
from drools-server
- drools-pipeline
- drools-seam
- drools-seam2
- TODO do we want to keep
this?
- drools-seam3
- drools-spring
- drools-ant
- drools-maven-plugin
- osgi-bundles
- drools-rhq-plugin
- drools-simulator
- drools-grid
- drools-rhq-plugin
- knowledge-integration-docs
- renamed
from drools-docs-integration
- repo
drools-planner (groupId org.drools.planner)
- drools-planner-core
- drools-planner-examples
- drools-planner-docs
- renamed
from drools-docs-planner
- drools-planner-assembly
- repo droolsjbpm-dist (groupId org.droolsjbpm)
- Assemblies? Or per repo?
- Per
repo, but make src etc here
- TODO later: uber documentation?
- install-stale
- renamed
from install because it’s been moved into jbpm.
Implications: a very disruptive
change
- Difficult
copying patches to 4.x, 5.0 and 5.1...
- But not impossible, as I 'll first all
directories to the new repo, before renaming them
- so the
old release branches/tags will still have the old
directory names
- and
git is suppose to be able to deal with directory name
changes of branches
- Some Maven
GAV (groupId, artifactId’s) change
- Everything will be documented in the release
notes
While we’re freezing anyway:
- Before the
move:
- Simplify & stabilize build
- Simplify
javadocs generation
- keep groups if possible,
but not required
- Before
pushing the moved part into a new repo:
- [Guvnor] Remove all the generated GWT files
from the history
- because
it smaller repo makes a faster clone.
- $ git
filter-branch --tree-filter
'~/removeGeneratedGwtScript.sh' --all
- Before
allowing others to touch the new repo:
- All line endings to \n (unix), except *.bat
files
- All \t (tabs) in *.java files replace by 4
spaces
- all \t
(tabs) in *.xml files replace by 2 spaces
- All copyright should start with /* and not /**
because a copyright is not a valid javadoc.
- Strip the @author from each *.java
- It’s
not accurate at all anymore (=bitrot).
- Actually, most of the time
it’s the original author, not the current guy who
currently knows what it does.
- Git history is much, much
more accurate.
- Statistics generated by
ohloh and github.
- Git can distinguish the
author from the committer
- Credit
is given on the team page and the blog.
- These pages are actually
read by outsiders.
- Contact me to improve your
entry on the team page. Don’t be shy.
- Motivation
(must see video): How to get a healthy open source
project? http://video.google.com/videoplay?docid=-4216011961522818645#
How will this change happen?
- I'll split-off drools-planner tomorrow 8-FEB-2011
- To flesh out the split-up process.
- I don't think anyone forked and changed these modules.
- I'll split-off droolsjbpm-eclipse Wednesday 9-FEB-2011
- I don't think anyone forked and changed these modules.
- I'll probably split-off guvnor Friday 11-FEB-2011
- Get your guvnor fork changes merged into master by
Thursday 10-FEB-2011.
- Contact me if this date is a problem.
- Other splits-off will be announced later.
--
With kind regards,
Geoffrey De Smet
irc.codehaus.org #drools
_______________________________________________
rules-dev mailing list
rules-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev