30
Software Project Management in Practice

Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

  • Upload
    others

  • View
    39

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

Software Project Management in

Practice

Page 2: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

HELLO!I am Cagdas GeredeI am here because I love to talk about Software. You can find me at [email protected]

2

Page 3: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

OpenJDK proj.Who develops java/javac? What process do they follow? Would you like to be a contributor?

3

Page 4: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

OpenJDKproject

▸ Open source implementation of Java Platform

▸ http://openjdk.java.net4

Page 5: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

OpenJDK project

*Screenshot taken from http://openjdk.java.net(Sep 2016)5

Page 6: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

OpenJDKproject

▸ Oracle JDK vs. OpenJDK▹ Oracle JDK extends OpenJDK

with closed-source components6

Page 7: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

OpenJDKproject

▸ Who uses:▹ Default Java Standard edition

in Ubuntu, Fedora, Red Hat Ent.▹ 21% of developers

▸ Who develops:▹ Oracle and IBM employees▹ Volunteers

▸ Open to new contributors:▹ Yes

7

[From http://openjdk.java.net/faq/]

Page 8: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

Java Virtual Machines

*Screenshot taken fromhttps://en.wikipedia.org/wiki/HotSpot(Sep 2016)

8

Page 9: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

OpenJDKproject

▸ Process▹ Scrum or Kanban

▸ Proposals and evaluations▹ JSR and JCP

▸ Issue Tracking▹ JIRA based Bug System (JBS)

9

Page 10: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

OpenJDKproject

▸ Code Repository▹ Mercurial repositories▹ http://hg.openjdk.java.net▹ Instructions:

http://openjdk.java.net/guide/repositories.html

10

Page 11: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

*From Wikipedia (09/2016)

Page 12: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

Version Control Concepts

12

Page 13: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

Version Control Concepts

▸ Branch▸ Fork▸ Changeset▸ Commit▸ Merge

▹ File locking vs. merge-based▸ Data comparison▸ Trunk

13

Page 14: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

OpenJDKproject

▸ Issue Tracking▹ JIRA based▹ JDK Bug System (JBS)▹ https://bugs.openjdk.java.net

▸ Example:▹ https://bugs.openjdk.java.net/br

owse/JDK-8017120

14

Page 15: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

*https://bugs.openjdk.java.net/browse/JDK-8017120

Page 19: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

OpenJDKproject

▸ How to contribute▹ http://openjdk.java.net/contribut

e/19

Page 21: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

Open Source Software

▸ Other open source projects▹ Eclipse▹ Hadoop▹ Notepad++▹ Android▹ and many more...

▸ Popular project hosting sites▹ Github▹ Bitbucket▹ SourceForge

21

Page 22: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

JCP: Java community process:https://jcp.org/en/home/index

JSR: Java specification request

22

Page 23: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

OpenJDKproject

▸ Typical▹ Documentation is wrong or

incomplete▹ Hard to set up environment and

get going

23

Page 24: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

▸ Change Planning▹ 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

24

Page 25: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

▸ Discuss the intended change▸ Create a bug if not exist

▹ Set status to “open”▸ Fix the bug locally▸ Write a test▸ Request a review▸ Create a changeset▸ Push the changeset

Steps for fixing a bug

25

Page 26: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

By-laws

http://openjdk.java.net/bylaws26

Page 28: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

Project roles

AuthorContributor (can create CS but cannot push to repo)

Readability reviewerKnowledgeable in coding guidelines and use of language (readability approaval

Committercan push CS to repo

Reviewer Experienced committer

Can approve CS destined for repo(owner approval)

28LeadCommitter that coordinates project activities

Approval can be finer granular (owners per folder)One CS may require multiple reviewers (editing files in multiple

Page 29: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

29 Instructions on becoming an authorhttp://openjdk.java.net/projects/index.html

Page 30: Software Project Management in Practicecegerede.etu.edu.tr/courses/bil481Fall2017/Examining_openjdk_project.pdfOracle JDK extends OpenJDK with closed-source components 6. OpenJDK project

30 Now you have the basic terminology to explore an open source project.

END