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 /? 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 , Fedora, 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 ▹ repositories 10 ▹ http://hg.openjdk.java.net OpenJDK ▹ Instructions: project http://openjdk.java.net/guide/re positories.html *From Wikipedia (09/2016) 12 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 ▹ 21 ▹ Hadoop Open Source ▹ Notepad++ Software ▹ Android ▹ and many more... ▸ Popular project hosting sites ▹ Github ▹ Bitbucket ▹ SourceForge JCP: : 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