Java代写:SE701 Elastic Search

练习Git的使用方法,对开源项目Elastic Search进行协同开发。

Learning Outcomes

By completing this assignment, you should demonstrate your ability to:

  • use complex git commands
  • work with legacy code
  • write code that is easy to understand
  • analyze and manage technical dependencies, and
  • coordinate your development activities.

Assignment Details

Group formation: This is a group assignment. Each student must complete this assignment in a team of 2-3 students. Students should self-organise into teams. Each team should choose a group name. Groups should be created in Canvas on the People page under the Assignment 1 Teams tab. Groups must be formed before lecture on 8 March. Students not assigned to groups by this time will be automatically assigned.

Overview

This assignment involves making a significant contribution to the elastic/elasticsearch project hosted on GitHub (https://github.com/elastic/elasticsearch). Elasticsearch is a Open Source, Distributed, RESTful Search Engine. Open Source Software (OSS) projects have publically available source code that anyone can modify. They often have multple contributors. More than 700 people have contributed code to Elasticsearch.

Contributing guidelines: OSS project often have guidelines on how to contribute to the project. Details on how to contribute to the Elasticsearch project can be found at https://github.com/elastic/elasticsearch/blob/master/CONTRIBUTING.md. Please ensure these guidelines are followed.

Types of contributions

You should contribute by writing code which can be incorporated into Elasticsearch and submitting pull requests. Elasticsearch has an extensive list of open issues at https://github.com/elastic/elasticsearch/issues. It is a good idea to start by fixing some easier issues to get familiar with the project. It is suggested your first pull request fixes an Issue with the “low hanging fruit” or the “adopt me” label.

Where to contribute

Your pull request must be submitted to my personal fork, kblincoe/elasticsearch.

Coordination

Make sure you coordinate before you start fixing an issue to avoid multiple students working on the same issue. To coordinate, ask Kelly to add the issues you will be fixing to https://github.com/kblincoe/elasticsearch/blob/master/Coordination.md. Use the following format: [elasticsearch issue number]:[group name]. If another group has already claimed an issue, you can not work on this issue. Try to avoid issues that are already claimed by other external contributors as well.

Amount of contribution

Each two person team should submit at least 2 pull requests. Each three person team should submit at least 3 pull requests. All pull requests should fix an issue labeled “low hanging fruit” or “adopt me.”

Peer reviews

All pull requests must be peer reviewed by another member of your team before they are submitted. You are encouraged to work on pull requests using pair programming or mob programming - this is a form of peer review.

Submission

All work for this assignment will be completed on GitHub. Code does not need to be submitted to the lecturer. Code will be reviewed directly on GitHub. Each group should complete the assignment 1 report template and submit the completed report on Canvas by the due date. All pull requests must be submitted to kblincoe/elasticsearch prior to the due date.

Submitting to elastic/elasticsearch

Those students who are committed to making a contribution to the elasticsearch project can submit the pull request to the elastic/elasticsearch repository. This is not a course requirement. If you do this, you must be willing to follow through with the code review process and make changes as required to get your pull request merged.

Contributor license agreement

Prior to cobtributing to the Elasticsearch project, you are required to sign the contributor license agreement for elastic. You should sign as an individual contributor. The agreement can be found at https://www.elastic.co/contributor-agreement

Marking

This assignment is worth 15% of your total grade. 15 points will be allocated as follows:

  • Total overall amount of contribution to the Elasticsearch project. 4 points.
  • Pull requests demonstrate use of the workflow specified in the Elasticsearch contributing guidelines (i.e. coordinate before writing code, squash commits, rebase your branch on top of the latest master branch, test your code, etc.). 4 points.
  • Code is well commented, pull request titles are meaningful, and pull request descriptions provide sufficient detail. 3 points.
  • Selection of pull requests is well justified and dependencies are appropriately managed. 3 points.
  • Peer review performed for all pull requests. 1 point.

Late Submissions

Late submissions will incur the following penalties:

  • 15% penalty for 1 to 24 hours late,
  • 30% penalty for 24 to 48 hours late, and
  • 100% penalty for over 48 hours late (Canvas assignment automatically closes).

If you have a legitimate reason for submitting late, discuss this with the lecturer well in advance of the assignment due date.