If you discover issues, have ideas for improvements or new features, please report them to the issue tracker of the repository or submit a pull request. Please, try to follow these guidelines when you do so.
-
Check that the issue has not already been reported.
-
Check that the issue has not already been fixed in the latest code (a.k.a.
master
). -
Be clear, concise and precise in your description of the problem.
-
Open an issue with a descriptive title and a summary in grammatically correct, complete sentences.
-
Include any relevant code to the issue summary.
-
Follow the Angular JS commit convention https://gist.github.com/stephenparish/9941e89d80e2bc58a153 . We are little bit liberal with the conventions, take inspiration from the CCW commits history to find a good mesure
-
Discuss the Pull Request on the mailing list to maximize the chances it will be accepted
-
Read how to properly contribute to open source projects on Github
-
Centralize the collected knowledge in a new issue in the issue tracker. Mention the created issue on the mailing list thread.
-
Open a pull request that relates to only one subject with a clear title and description in grammatically correct, complete sentences.
-
Create and Use a topic branch off of the master branch to easily amend the pull request later, if necessary. It is OK to rebase the topic branch on top of the master branch.
-
Respect a 1-1 relation between Topic Branches and Pull Requests.
-
During the review/adapt phase for the Pull Request, append commits to the topic branch, don’t rewrite the history. This will make Reviewers life easier.
-
Once the Pull Request is Reviewed and Accepted, it is OK to squash related commits together before merging, if necessary.
You can see the Github Flow page for a visual version of the workflow: https://guides.github.com/introduction/flow/
-
Java 7
-
Maven >= 3.1.1
-
download from http://mirrors.linsrv.net/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip
-
unzip somewhere, e.g.
/path/to/maven
, create an environment variableM2_HOME=/path/to/maven
, add$M2_HOME/bin
to your path
-
-
Eclipse IDE for Java and DSL Developers
Luna sr1 (4.4.1) https://eclipse.org/downloads/packages/eclipse-ide-java-and-dsl-developers/lunasr1-
This packaging is preferred because it’s the one embedding the more eclipse source code packages out of the box (see https://www.eclipse.org/downloads/compare.php?release=luna )
-
Warning
|
The Git repository contains submodules in ccw.core/ccw-plugins/ . you must clone with the --recursive option
|
-
Clone CCW Repository
with the --recursive option
(this is a submodule option, see references below for more on submodules) -
In Eclipse, import the repository projects (
ccw.aggregator
,ccw.branding
,ccw.core
,ccw.core.test
,ccw.feature
,ccw.parent
,ccw.product
,doc
,paredit.clj
) -
cd into
ccw.core
and invokemvn clean verify
-
This will install all CCW dependencies in folder
ccw.core/lib/
-
The operation must be be repeated after each update of
ccw.core
dependencies
-
The following launch configuration files automatically install themselves in the "Run/Debug" Toolbar items as Shortcuts:
-
Counterclockwise Plugin
for Debugging the Plugin by launching it in the current PDE Target (shortcut forccw.core/Counterclockwise Plugin.launch
) -
Counterclockwise Product
for Debugging the Standalone Product (shortcut forccw.core/Counterclockwise Product.launch
) -
Counterclockwise Product Tests
for Launching the JUnit (SWTBot) tests (some tests don’t pass in this mode) (shortcut forccw.core.test/Counterclockwise Product Tests.launch
)
git clone https://github.com/ccw-ide/ccw cd ccw # Clean + compile + unit test + integration test + build updatesite # + build Windows / Linux / OS X standalone products + build documentation: mvn clean verify # Compile + tests but no product(s) built (less time to complete): # This deactivates the `luna` profile which deactivates the `ccw.product` module mvn verify -P \!luna # Same as above, but skipping launching tests: mvn clean verify -DskipTests # To only launch tests mvn clean test
The products will be available in folder ccw.product/target/products
The script script/set-version.sh
updates POMs
, MANIFESTs
and feature.xml
:
# If you want to set version to 0.20.0-SNAPSHOT $ cd ccw ccw$ script/set-version.sh 0.20.0-SNAPSHOT
-
Add the test namespace in
ccw.core.test/src/clj
using the usual namespace structure for folders -
Add the namespace to the list of namespaces to be tested in the java file
ccw.core.test/src/java/ccw/core/ClojureTests.java
-
Add the new feature dependency to the product definition in file
ccw.product/ccw.product
. See https://github.com/ccw-ide/ccw/blob/v0.31.1.STABLE001/ccw.product/ccw.product#L270 -
If the new feature is not already provided by the p2 repositories known to the build, you’ll need to add its repository to file
ccw.parent/pom.xml
. See https://github.com/ccw-ide/ccw/blob/v0.31.1.STABLE001/ccw.parent/pom.xml#L63
-
Determine the new version number
-
Update the Changelog note
-
Mark the issues as Fixed
-
Determine the versions of the dependencies to use
-
if required, cut new versions for these
-
ccw-server for instance
-
-
Upgrade the version numbers
-
Commit and tag
# Edit Changelog then... ./script/set-number 3.4.9.STABLE001 git commit -a -m"chore(mvn): Version 3.4.9.STABLE001" git tag "v3.4.9.STABLE001"
-
Push, let Jenkins build
git push ccw-ide master --tags
-
Update the Eclipse Market Place
-
Update http://updatesite.ccw-ide.org/stable and beta (content.xml and artifacts.xml)
-
Update http://doc.ccw-ide.org
-
Drop an email to users and dev list
-
Twit about it (mention #Counterclockwise and #Clojure)
-
Upgrade the version number for the new SNAPSHOTS, commit
# Edit Changelog then... ./script/set-number 3.4.10-SNAPSHOT git commit -a -m"chore(mvn): Upgrade version to 3.4.10-SNAPSHOT"
-
First clone the plugin as a submodule in the right directory
cd ccw.core/ccw-plugins/ git submodule add https://github.com/ccw-ide/ccw-plugin-xxx.git
-
Then open
ccw.core/plugin.xml
in Eclipse-
In the
Runtime
Tab, addccw-plugins/ccw-plugin-xxx
to the classpath -
In the
Build
Tab, in theBinary Build
group, ensure thatccw-plugins/ccw-plugin-xxx
is checked (everything insideccw-plugins
should be checked)
-
-
http://software.2206966.n2.nabble.com/Good-solution-for-non-osgi-jars-td5098103.html : original idea for using maven-dependency-plugin to copy deps into
lib/
-
https://github.com/reficio/p2-maven-plugin : easy to grok tutorial for beginning with maven tycho
-
https://maven.apache.org/plugins/maven-dependency-plugin/copy-mojo.html : maven
dependency:copy
reference -
https://maven.apache.org/plugins/maven-dependency-plugin/unpack-dependencies-mojo.html : maven
dependency:unpack-dependencies
reference -
Working with Git Submodules: https://git-scm.com/book/en/v2/Git-Tools-Submodules
-
responding to resource change events - https://www.eclipse.org/articles/Article-Resource-deltas/resource-deltas.html
-
tracking resource changes - http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2FresAdv_events.htm
-
how can I be notified of changes to the workspace- https://wiki.eclipse.org/FAQ_How_can_I_be_notified_of_changes_to_the_workspace%3F
-
Mark My Words - https://www.eclipse.org/articles/Article-Mark%20My%20Words/mark-my-words.html old but still good introduction to markers
-
Eclipse Help resource markers - http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2FresAdv_markers.htm
-
FAQ How do I create problem markers for my compiler - https://wiki.eclipse.org/FAQ_How_do_I_create_problem_markers_for_my_compiler%3F
-
Suport for displaying markers - http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2FwrkAdv_marker_support.htm
-
Custom markers and annotations, the bright side of Eclipse - http://cubussapiens.hu/2011/05/custom-markers-and-annotations-the-bright-side-of-eclipse/
-
How StyledText works - https://www.eclipse.org/articles/StyledText%201/article1.html
-
Into the deep end of the StyledText widget - https://eclipse.org/articles/StyledText%202/article2.html
-
How do I implement 'quick fixes' - https://wiki.eclipse.org/FAQ_How_do_I_implement_Quick_Fixes_for_my_own_language%3F
-
We have lift off, the Eclipse launch framework - https://eclipse.org/articles/Article-Launch-Framework/launch.html