Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update license to EPL version 2.0 #943

Merged
merged 8 commits into from Sep 23, 2019
Merged

Update license to EPL version 2.0 #943

merged 8 commits into from Sep 23, 2019

Conversation

Godin
Copy link
Member

@Godin Godin commented Sep 20, 2019

After nice cleanup of information about licenses by #926 , #918 and #934, I propose to update Eclipse Public License from version 1.0 to version 2.0.

This requires

  • following modification of headers in source files
  * Copyright (c) 2009, 2019 Mountainminds GmbH & Co. KG and Contributors
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
+ * This program and the accompanying materials are made available under
+ * the terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0
  *
+ * SPDX-License-Identifier: EPL-2.0
  • following modification in about.html files
   All Content in this distribution is made available by Mountainminds GmbH & Co.
   KG, Munich. Unless otherwise indicated below, the Content is provided to you
-  under the terms and conditions of the Eclipse Public License Version 1.0
+  under the terms and conditions of the Eclipse Public License Version 2.0
   ("EPL"). A copy of the EPL is available at
-  <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+  <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
   For purposes of the EPL, "Program" will mean the Content.
  • replacement of file org.jacoco.doc/docroot/doc/epl-v10.html that contains text of license
  • and update of metainformation and checks in org.jacoco.build/pom.xml

At the same time I propose to also remove optional Contributors field from headers.

Changes are in separate commits to simplify review, but prior to merge should be squashed into single one.

@Godin Godin added this to the 0.8.5 milestone Sep 20, 2019
@Godin Godin requested a review from marchof September 20, 2019 19:46
@Godin Godin self-assigned this Sep 20, 2019
@Godin Godin added this to Implementation in Current work items via automation Sep 20, 2019
@Godin Godin force-pushed the update_license_version branch 4 times, most recently from 9cfa437 to 0510977 Compare September 21, 2019 18:01
@@ -32,6 +32,7 @@ public void close() {
*/
private static Object test() throws Exception {
nop(); // assertFullyCovered()

try ( // assertTry()
Copy link
Member Author

@Godin Godin Sep 21, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change of header revealed following strange behavior of ECJ 3.12.1 that we currently use in tests:

compilation of

/* comment with 20 lines */
import java.io.Closeable;

class Example {
    private static class Resource implements Closeable {
        @Override
        public void close() {
        }
    }

    private static void nop() {
    }

    private static void example() throws Exception {
        nop();
        try( // line 35
            Resource r1 = new Resource();
            Closeable r2 = new Resource();
            AutoCloseable r3 = new Resource();
        ) {
            nop();
        }
    }
}

results in bytecode with following LineNumberTable:

        line 34: 0
        line 36: 7
        line 37: 16
        line 3: 25
        line 40: 35
        line 41: 38
        line 42: 176

however if first comment contains one less/more lines than 20, i.e. try keyword is not on line 35, then LineNumberTable is different - for example when method starts at line 35:

        line 35: 0
        line 36: 3
        line 37: 7
        line 38: 16
        line 39: 25
        line 41: 35
        line 42: 38
        line 43: 176

notice absence of entry for offset 3 in the first case 🙃and presence of entry for line number 3 🙀

@marchof
Copy link
Member

marchof commented Sep 21, 2019

@Godin I hope our former contributors are o.k. with removing their names from source files. Do you know of a reasoning behind the removal at eclipse.org?

@Godin
Copy link
Member Author

Godin commented Sep 21, 2019

@marchof AFAIK this "field" was always optional - here is the the oldest entry of Eclipse Project Handbook I can find: http://web.archive.org/web/20151106184324/https://www.eclipse.org/projects/handbook/ Projects are not forced to keep/remove it.

However AFAIK it was well maintained only a long-long time ago, let's say in pre-Git history, and nowadays usually not maintained properly, i.e. not updated over time.

I have feeling that the same in our case - value is only correct at a time of file creation, important and big file updates don't result in update of this field, and so that its current value is simply outdated in many cases. I propose removal because of this, and because all authors of all changes are anyway already properly recorded by Git, and also we do already mention contributors in changelog - search by "contrib" in it. And this way in future we only will need to pay attention on mentioning contributions in changelog, instead of reviewing header of each individual file.

@Godin
Copy link
Member Author

Godin commented Sep 21, 2019

Can also make analogy with archaic javadoc tag @author - 2ccb2fc 😉

@marchof
Copy link
Member

marchof commented Sep 22, 2019

@Godin Ok, let's make things simple and remove contributors from individual source files. Git history and change log should be enough.

With some grepping

grep -R -A3 -h "Contributors:" **/* | grep " - " | sort | uniq

I come to the following contributors list in our sources:

Andres Almiray
Brock Janiczak
Chas Honton
Dominik Stadler
Evgeny Mandrikov
Fabian Mastenbroek
Jan Wloka
John Keeping
John Oliver
Kyle Lieber
Mads Mohr Christensen
Marc R. Hoffmann
Mirko Friedenhagen
Nikolay Krasko
Oliver Nautsch 
Sonatype, Inc.

Out of which the following people are not mentioned in change log (beside us):

Brock Janiczak
Chas Honton
Jan Wloka
John Keeping
John Oliver
Mirko Friedenhagen
Oliver Nautsch 
Sonatype, Inc.

I wonder whether we might create a separate contributors.html page.

What about cleaning up contributors information in a separate PR?

@Godin
Copy link
Member Author

Godin commented Sep 22, 2019

What about cleaning up contributors information in a separate PR?

@marchof fine 👍 I excluded remove_optional_field.patch.txt from this PR.

BTW don't know how/where you found as contributor Sonatype, Inc. company that hosts Maven repository 😆 - see lines that was removed by patch:

cat remove_optional_field.patch.txt | grep "^\- " | sort | uniq

@Godin Godin moved this from Implementation to Review in Current work items Sep 22, 2019
@marchof
Copy link
Member

marchof commented Sep 22, 2019

@Godin I should have excluded target folders... 🙈

./jacoco-maven-plugin.test/target/local-repo/org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom

@marchof marchof merged commit 5ae7caf into master Sep 23, 2019
Current work items automation moved this from Review to Done Sep 23, 2019
@marchof marchof deleted the update_license_version branch September 23, 2019 13:56
@jacoco jacoco locked as resolved and limited conversation to collaborators Oct 11, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Development

Successfully merging this pull request may close these issues.

None yet

2 participants