Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Netflix/iep
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.1.0
Choose a base ref
...
head repository: Netflix/iep
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.1.1
Choose a head ref
  • 11 commits
  • 2 files changed
  • 1 contributor

Commits on Oct 26, 2017

  1. add contributing guide (#339)

    This is based on the Atlas contributing guide, but modified
    a bit for this project.
    brharrington authored Oct 26, 2017
    Copy the full SHA
    72a16ab View commit details

Commits on Nov 9, 2017

  1. spectator 0.59.0

    brharrington committed Nov 9, 2017
    Copy the full SHA
    458a5ae View commit details
  2. aws-java-sdk 1.11.227

    brharrington committed Nov 9, 2017
    Copy the full SHA
    5d42208 View commit details
  3. eureka 1.8.5

    Note, as of 1.8.0 eureka depends on compactmap which is
    LGPL. So transitive licenses are less consistent now if
    using something that pulls in Eureka.
    brharrington committed Nov 9, 2017
    Copy the full SHA
    8e7a98e View commit details
  4. equalsverifier 2.3.3

    brharrington committed Nov 9, 2017
    Copy the full SHA
    27b6b59 View commit details
  5. rxjava 1.3.3

    brharrington committed Nov 9, 2017
    Copy the full SHA
    befb964 View commit details
  6. rxjava2 2.1.6

    brharrington committed Nov 9, 2017
    Copy the full SHA
    5083f1e View commit details
  7. reactive-streams 1.0.1

    brharrington committed Nov 9, 2017
    Copy the full SHA
    3cf66e6 View commit details
  8. config 1.3.2

    brharrington committed Nov 9, 2017
    Copy the full SHA
    a49bfe0 View commit details
  9. Copy the full SHA
    cd2e313 View commit details
  10. archaius 2.2.11 and 0.7.6 (#341)

    Update both the old archaius and 2.x version to the
    latest releases. The 2.x release has performance fixes
    to avoid using exceptions for control flow when accessing
    the default values.
    brharrington authored Nov 9, 2017
    Copy the full SHA
    726190f View commit details
Showing with 196 additions and 10 deletions.
  1. +186 −0 CONTRIBUTING.md
  2. +10 −10 project/Dependencies.scala
186 changes: 186 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
# Contributing to IEP

First off, thanks for taking the time to contribute!

The following is a set of guidelines for contributing to IEP. Use your best judgment, and
feel free to propose changes to this document in a pull request.

**Table of Contents**

[How can I contribute?](#how-can-i-contribute)
* [Asking Questions](#asking-questions)
* [Reporting Issues or Feature Requests](#reporting-issues-or-feature-requests)
* [Contributing Code](#contributing-code)

[Guides](#guides)
* [Issue Labels](#issue-labels)
* [Git Commit Messages](#git-commit-messages)
* [Build and Test](#build-and-test)
* [License Headers](#license-headers)
* [Versions and Compatibility](#versions-and-compatibility)
* [Updating Documentation](#updating-documentation)

## How Can I Contribute?

### Asking Questions

If you have a question, then you can ask on the [mailing list] or by filing an [issue]. There
is not a strong preference among the developers, however, users that are not actively involved
in development may be more likely to see the question on the mailing list.

[mailing list]: https://groups.google.com/forum/#!forum/netflix-atlas
[issue]: https://github.com/Netflix/iep/issues

### Reporting Issues or Feature Requests

Issues and feature requests are managed via [GitHub issues][issue]. When filing an issue for
a bug, we would appreciate if you first check open issues to see if there are any similar
requests.

When **reporting a bug**, then please include the following:

* Expected results
* Actual results
* Exact steps to reproduce the problem, bonus points for providing a failing unit test

When **requesting a feature**, then please try to answer the following:

* What does this allow a user to accomplish that they cannot do now?
* How urgent is the need?
* Does it align with the goals of IEP?

### Contributing Code

[APLv2]: https://github.com/Netflix/iep/blob/master/LICENSE

By contributing code, you agree to license your contribution under the terms of the [APLv2].
To submit code:

* Create a fork of the project (this includes Netflix contributors, do not push branches
directly to the main repository)
* Create a branch for your change
* Make changes and add tests
* Commit the changes following the [commit guidelines](#git-commit-messages)
* Push the branch with your changes to your fork
* Open a pull request against the IEP project

#### Testing

Where possible, test cases should be added to cover the new functionality or bug being
fixed. Test cases should be small, focused, and quick to execute.

#### Pull Requests

The following guidelines are to help ensure that pull requests (PRs) are easy to review and
comprehend.

* **One PR addresses one problem**, conflating issues in the same PR makes it more difficult
to review and merge.
* **One commit per PR**, the final merge should have a single commit with a
[good commit message](#git-commit-messages). Note, we can squash and merge via GitHub
so it is fine to have many commits while working through the change and have us squash
when it is complete. The exception is dependency updates where the
only change is a dependency version. We typically do these as a batch with separate commits
per version and merge without squashing. For this case, separate commits can be useful to
allow for a git bisect to pinpoint a problem starting with a dependency change.
* **Reference related or fixed issues**, this helps us get more context for the change.
* **Partial work is welcome**, submit with a title including `[WIP]` (work in progress) to
indicate it is not yet ready.
* **Keep us updated**, we will try our best to review and merge incoming PRs. We may close
PRs after 30 days of inactivity. This covers cases like: failing tests, unresolved conflicts
against master branch or unaddressed review comments.

## Guides

### Issue Labels

For [issues][issue] we use the following labels to quickly categorize issues:

| Label Name | Description |
|----------------|---------------------------------------------------------------------------|
| `bug` | Confirmed bugs or reports that are very likely to be bugs. |
| `enhancement` | Feature requests. |
| `discussion` | Requests for comment to figure out the direction. |
| `help wanted` | Help from the community would be appreciated. Good first issues. |
| `question` | Questions more than bug reports or feature requests (e.g. how do I do X). |

### Git Commit Messages

Commit messages should try to follow these guidelines:

* First line is no more than 50 characters and describes the changeset.
* The body of the commit message should include a more detailed explanation of the change.
It is ok to use markdown formatting in the explanation.

More information can be found in the [Git docs]. Sample message:

```
Short (50 chars or less) summary of changes
More detailed explanatory text, if necessary. Wrap it to
about 72 characters or so. In some contexts, the first
line is treated as the subject of an email and the rest of
the text as the body. The blank line separating the
summary from the body is critical (unless you omit the body
entirely); tools like rebase can get confused if you run
the two together.
Further paragraphs come after blank lines.
- Bullet points are okay, too
- Typically a hyphen or asterisk is used for the bullet,
preceded by a single space, with blank lines in
between, but conventions vary here
```

[Git docs]: https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project

### Build and Test

The IEP build uses SBT. If you do not already have it installed, then you can use the
included launcher script. To do a basic build and run tests:

```
$ project/sbt test
```

There is also a makefile included that runs SBT with some convenient targets.
To reproduce the validation done for PR builds locally, including verification of
[license headers](#license-headers) and [formatting](#scalafmt), just run:

```
$ make
```

For making changes, you are welcome to use whatever editor you are comfortable with. Most
current developers on the project use Intellij IDEA.

### License Headers

IEP is licensed under the terms of the [APLv2]. License headers must be included on source
files and that is checked as part of the PR validation. To check license headers locally:

```
$ project/sbt checkLicenseHeaders
```

The headers can be automatically added or fixed by running:

```
$ project/sbt formatLicenseHeaders
```

### Versions and Compatibility

The IEP libraries follow a semantic versioning scheme. Backwards incompatible changes
should be marked with an incremented major version number. Forwards compatibility may work,
but is in not required or guaranteed. It is highly recommended that all `iep-*` versions
in the classpath are the same.

Prior to 1.0, it was mostly backwards compatible with major changes resulting in the minor
version being incremented.

### Updating Documentation

The documentation for this project is via `README.md` files for the various sub projects.
20 changes: 10 additions & 10 deletions project/Dependencies.scala
Original file line number Diff line number Diff line change
@@ -2,25 +2,25 @@ import sbt._

object Dependencies {
object Versions {
val archaius = "2.2.2"
val aws = "1.11.172"
val archaius = "2.2.11"
val aws = "1.11.227"
val aws2 = "2.0.0-preview-2"
val eureka = "1.7.0"
val eureka = "1.8.5"
val guice = "4.1.0"
val jackson = "2.9.1"
val rxnetty = "0.4.20"
val rxscala = "0.26.5"
val scala = "2.12.3"
val slf4j = "1.7.25"
val spectator = "0.58.0"
val spectator = "0.59.0"
}

import Versions._

val archaiusBridge = "com.netflix.archaius" % "archaius2-archaius1-bridge" % archaius
val archaiusCore = "com.netflix.archaius" % "archaius2-core" % archaius
val archaiusGuice = "com.netflix.archaius" % "archaius2-guice" % archaius
val archaiusLegacy = "com.netflix.archaius" % "archaius-core" % "0.7.4"
val archaiusLegacy = "com.netflix.archaius" % "archaius-core" % "0.7.6"
val archaiusPersist = "com.netflix.archaius" % "archaius2-persisted2" % archaius
val archaiusTypesafe = "com.netflix.archaius" % "archaius2-typesafe" % archaius
val awsAutoScaling = "com.amazonaws" % "aws-java-sdk-autoscaling" % aws
@@ -45,7 +45,7 @@ object Dependencies {
val aws2Route53 = "software.amazon.awssdk" % "route53" % aws2
val aws2SES = "software.amazon.awssdk" % "ses" % aws2
val aws2STS = "software.amazon.awssdk" % "sts" % aws2
val equalsVerifier = "nl.jqno.equalsverifier" % "equalsverifier" % "2.3.1"
val equalsVerifier = "nl.jqno.equalsverifier" % "equalsverifier" % "2.3.3"
val eurekaClient = "com.netflix.eureka" % "eureka-client" % eureka
val guiceAssist = "com.google.inject.extensions" % "guice-assistedinject" % guice
val guiceCore = "com.google.inject" % "guice" % guice
@@ -66,9 +66,9 @@ object Dependencies {
val junit = "junit" % "junit" % "4.12"
val junitInterface = "com.novocode" % "junit-interface" % "0.11"
val jzlib = "com.jcraft" % "jzlib" % "1.1.3"
val reactiveStreams = "org.reactivestreams" % "reactive-streams" % "1.0.0"
val rxjava = "io.reactivex" % "rxjava" % "1.3.0"
val rxjava2 = "io.reactivex.rxjava2" % "rxjava" % "2.1.2"
val reactiveStreams = "org.reactivestreams" % "reactive-streams" % "1.0.1"
val rxjava = "io.reactivex" % "rxjava" % "1.3.3"
val rxjava2 = "io.reactivex.rxjava2" % "rxjava" % "2.1.6"
val rxScala = "io.reactivex" %% "rxscala" % rxscala
val rxnettyCore = "io.reactivex" % "rxnetty" % rxnetty
val rxnettySpectator = "io.reactivex" % "rxnetty-spectator" % rxnetty
@@ -85,5 +85,5 @@ object Dependencies {
val spectatorGc = "com.netflix.spectator" % "spectator-ext-gc" % spectator
val spectatorJvm = "com.netflix.spectator" % "spectator-ext-jvm" % spectator
val spectatorSandbox = "com.netflix.spectator" % "spectator-ext-sandbox" % spectator
val typesafeConfig = "com.typesafe" % "config" % "1.3.1"
val typesafeConfig = "com.typesafe" % "config" % "1.3.2"
}