Weitere ähnliche Inhalte Ähnlich wie XNAT Open Source Development (20) Kürzlich hochgeladen (20) XNAT Open Source Development2. Goal
Introduce potential contributors to the
methods and tools for contributing to XNAT
2
4. XNAT is Open Source!
Freedom
Leverage others’ work
Contribute
4
6. Bug Reports & Feature Requests
xnat_discussion@googlegroups.com
For sensitive issues, bugs@xnat.org
Provide details!
• Environment
• Versions
• Steps to reproduce
• Screenshots
• Logs
6
13. XNAT Internals
xdat_core - org.nrg.xft
– translates between XML schema & other
formats
– XFTItem.java
xdat_core - org.nrg.xdat
– admin, security, search infrastructure around
XFT
– Web app structure
13
16. #1 – Version Control with Mercurial
hg.xnat.org
Replacement for CVS & Subversion
Distributed (everyone has full repo & can commit)
Sane branching & merging
16
17. Why Leave CVS?
Network connectivity required
Lack of support for renaming/moving files
Lack of atomic commits
Single point of failure
Expensive branch operations
Day-long merges
17
18. Mercurial Quick Start
hg clone http://hg.xnat.org/xdat_release
# view differences
hg diff
# commit and send changes to remote repo
hg commit
hg push
# get the latest remote changes
hg pull --update
18
20. Integration Manager Workflow
blessed developer developer
repository public public
integration developer developer
manager private private
20
22. #2 – Maven
Build & Dependency Management
Migrating to Maven 2
– xdat_release & pipelines still use Maven 1
(hidden behind bin/setup.sh)
– New projects should use Maven 2
22
23. Why not Ant?
Dependency management
– Reduce blobs in version control system
Standardized project layout & commands
23
24. xdat_core & Maven
$ cd xdat_core
$ mvn clean install
[INFO] Scanning for projects...
...
[INFO] BUILD SUCCESSFUL
24
31. 1) Clone & Set up Projects
hg clone http://hg.xnat.org/xdat_core
mvn clean install
hg clone http://hg.xnat.org/xdat_release
...
bin/setup.sh -Ddeploy=true
...
31
32. 2) Register in Eclipse
cp sample.classpath .classpath
cp sample.project .project
32
38. 6) Publish the Change
Options include:
• Sending patch file
• Forking on Bitbucket
38
43. Go Forth and Develop
http://nrg.wikispaces.com/XNAT+2010+Workshop+-
+Custom+Features+and+Open+Source+Development
43