Software Project Management in Practice 2 HELLO! I am Cagdas Gerede I am here because I love to talk about Software. You can find me at [email protected] 3
OpenJDK proj. Who develops java/javac? What process do they follow? Would you like to be a contributor? ▸ Open source implementation of Java Platform 4 ▸ http://openjdk.java.net OpenJDK project *Screenshot taken from http://openjdk.java.net 5 (Sep 2016) OpenJDK project ▸ Oracle JDK vs. OpenJDK 6 ▹ Oracle JDK extends OpenJDK with closed-source components OpenJDK project ▸ Who uses: 7 ▹ Default Java Standard edition in Ubuntu, Fedora, Red Hat Ent. OpenJDK ▹ 21% of developers project ▸ Who develops: ▹ Oracle and IBM employees ▹ Volunteers ▸ Open to new contributors: ▹ Yes
[From http://openjdk.java.net/faq/] 8 Java Virtual Machines
*Screenshot taken from https://en.wikipedia.org/wiki/HotSpot (Sep 2016) ▸ Process ▹ Scrum or Kanban 9 ▸ Proposals and evaluations OpenJDK ▹ JSR and JCP project ▸ Issue Tracking ▹ JIRA based Bug System (JBS) ▸ Code Repository ▹ Mercurial repositories 10 ▹ http://hg.openjdk.java.net OpenJDK ▹ Instructions: project http://openjdk.java.net/guide/re positories.html *From Wikipedia (09/2016) 12 Version Control Concepts ▸ Branch ▸ Fork 13 ▸ Changeset Version Control ▸ Commit Concepts ▸ Merge ▹ File locking vs. merge-based ▸ Data comparison ▸ Trunk ▸ Issue Tracking ▹ JIRA based 14 ▹ JDK Bug System (JBS) OpenJDK ▹ https://bugs.openjdk.java.net project ▸ Example: ▹ https://bugs.openjdk.java.net/br owse/JDK-8017120 *https://bugs.openjdk.java.net/browse/JDK-8017120 ▸ Email lists 16 ▹ http://mail.openjdk.java.net/mail man/listinfo OpenJDK ▸ project Specific component: ▹ [email protected] ▹ http://mail.openjdk.java.net/pipe rmail/compiler-dev/ ▸ Example Dev Thread: 17 ▹ http://mail.openjdk.java.net/pipe rmail/compiler-dev/2016-August OpenJDK project /thread.html ▸ Question: ▹ http://mail.openjdk.java.net/pipe rmail/compiler-dev/2016-August /010298.html ▸ Code Review ▹ http://openjdk.java.net/guide/cod
18 eReview.html OpenJDK project ▸ How to contribute 19 ▹ http://openjdk.java.net/contribut e/ OpenJDK project ▸ Kanban Board 20 ▹ https://bugs.openjdk.java.net/se cure/RapidBoard.jspa?rapidView OpenJDK project =542&selectedIssue=JDK-81597 13 ▸ Agile, Scrum, Kanban, Waterfall: ▹ http://goo.gl/B2pYgj ▸ Other open source projects ▹ Eclipse 21 ▹ Hadoop Open Source ▹ Notepad++ Software ▹ Android ▹ and many more... ▸ Popular project hosting sites ▹ Github ▹ Bitbucket ▹ SourceForge JCP: Java community process: 22 https://jcp.org/en/home/index
JSR: Java specification request ▸ Typical 23 ▹ Documentation is wrong or incomplete OpenJDK ▹ project Hard to set up environment and get going ▸ Change Planning 24 ▹ http://openjdk.java.net/guide/ch angePlanning.html ▸ Identify a bug/Enhancement/feature request (FR, RFE) ▸ Changeset, change list (CS, CL), Change request (CR, SCR) ▸ Change review ▸ Discuss the intended change ▸ Create a bug if not exist 25 ▹ Set status to “open” Steps for ▸ fixing a bug Fix the bug locally ▸ Write a test ▸ Request a review ▸ Create a changeset ▸ Push the changeset By-laws 26 http://openjdk.java.net/bylaws Dev Schedule Milestones 27 http://openjdk.java.net/projects /jdk8/milestones Author Committer Reviewer Lead Contributor (can can push CS to Experienced Committer that create CS but repo committer coordinates 28 cannot push to project activities repo) Project roles Can approve CS
destined for repo Readability (owner approval) reviewer
Knowledgeable in
coding guidelines and use of Approval can be finer granular (owners per language folder) (readability One CS may require multiple reviewers approaval (editing files in multiple Instructions on becoming an 29 author http://openjdk.java.net/projects /index.html Now you have the basic terminology to explore an open source project.
30
END