eclipse-iceoryx / iceoryx

Eclipse iceoryx™ - true zero-copy inter-process-communication
https://iceoryx.io
Apache License 2.0
1.6k stars 373 forks source link

Refactoring copyright headers #483

Closed dkroenke closed 3 years ago

dkroenke commented 3 years ago

Brief feature description

Currently are contributing multiple parties into iceoryx who are creating/modifying sourcecode files. To ensure the copyrights of each contributing party there is a fileheader with a copyright statement like this:

// Copyright (c) 2019, 2021 by Robert Bosch GmbH, Apex.AI Inc. All rights reserved.

This is based on the description in CONTRIBUTING.md#

Based on discussion in developer meetup.

From Contributing.md

Header

Each source file needs to have this header:

    // Copyright (c) [DATE] by [INITIAL COPYRIGHT OWNER] [OTHER COPYRIGHT OWNERS]. All rights reserved.
    //
    // Licensed under the Apache License, Version 2.0 (the "License");
    // you may not use this file except in compliance with the License.
    // You may obtain a copy of the License at
    //
    //     http://www.apache.org/licenses/LICENSE-2.0
    //
    // Unless required by applicable law or agreed to in writing, software
    // distributed under the License is distributed on an "AS IS" BASIS,
    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    // See the License for the specific language governing permissions and
    // limitations under the License.

Note: DATE is either a year or a range of years with the first and last years of the range separated by a comma. So for example: "2004" or "2000, 2004". The first year is when the contents of the file were first created and the last year is when the contents were last modified.

Tasks:

dkroenke commented 3 years ago

@elBoberido @ariexi @budrus

elBoberido commented 3 years ago

I just found this for the copyright notice from a lawyer and open source developer at GitHub https://ben.balter.com/2015/06/03/copyright-notices-for-websites-and-open-source-projects/

He suggests to use either a comma separated list or if there are many contributors to just the term and contributors

Copyright [year project started] - [current year], [project founder] and the [project name] contributors

Since the code belongs to eclipse, this would become

Copyright 2019 - 2021, Eclipse Foundation and the iceoryx contributors.

I quite like this, since I don't have to always look at the header and check if I need to extend the copyright. It makes it also easier regarding contributors who might just add a one liner bugfix.

budrus commented 3 years ago

Thanks for the proposal @elBoberido. I think that needs to be checked by the contributing companies. Could you clarify @ariexi Some would also say it is a nice advertisement to have the company name in the header....

ariexi commented 3 years ago

@budrus fully agree, advertisement part is also nice ... ;-) But the lean way as well ... Discussion about our proposal started today. I will keep you informed.

dkroenke commented 3 years ago

Maybe we can get rid at least from the year in the header, this is something very annoying shortly after new years eve...

elBoberido commented 3 years ago

@ariexi @budrus if advertisement is the main concern, wouldn't it have a bigger effect if the main contributing companies are mentioned on the README.md. That's what most of the people see. I would guess hardly anyone looks at the header. That's why we also plan to put those companies at the footer of the new homepage.

elBoberido commented 3 years ago

@ariexi this is how the apache foundation is handling the copyright notice https://www.apache.org/legal/src-headers.html

I would suggest to have just a // SPDX-License-Identifier: Apache-2.0 at the top of the source files and the license text and copyright owner in LICENSE.md and NOTICE.md

ariexi commented 3 years ago

@budrus, @elBoberido, @dkroenke

After clarification with our legal department we came to following conclusion for Bosch: As Bosch, we claim following Copyright Header Line:

// Copyright (c) 2019 - 2021 by Robert Bosch GmbH. All rights reserved.

Some explanation: The Eclipse Foundation (EF) was not involved in the development of the code, nor did Bosch transfer any intellectual property rights to the EF. Therefore we do not see a reason to refer to the EF as being the copyright holder with regard to code written or owned by Bosch. We appreciate to have the specification of the years in Bosch’s copyright notice to express when files were created or changed. That could be list or a range, or both, e.g. 2019 – 2021, 2023 (First year, being the year of creation, subsequently the years in which changes were done) The numbers of the years shows the history and the up-to-datedness and liveliness of the file. The numbers in the Bosch Copyright Header line will only be updated, if Bosch changes the file.

Regarding the representation of copyrights held by Apex Inc. we suggest to consult their/your legal counsel/department.

dkroenke commented 3 years ago

@ariexi @elBoberido To have separate lines for each contributor make sense to avoid confusion, so a possible copyright fileheader could look like this:

// Copyright (c) 2019 - 2021 by Contributor1. All rights reserved.
// Copyright (c) 2020 - 2022 by Contributor2. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// ...

For the case that a contributor changes a file in a new year (e.g. Contributor1 modifies the file in 2022), he update the range to the new year (e.g. 2019 - 2022).

Based on that, the template in Contributing.md could look like this:

// Copyright (c) [YEAR OF INITIAL CONTRIBUTION] - [YEAR LAST CONTRIBUTION] by [COPYRIGHT OWNER]. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// ...

If year of initial and last contribution are the same, then mentioning one year is sufficient.

Let me know if this is feasible, so that i can adapt the template.

ariexi commented 3 years ago

@dkroenke, @budrus :

For the case that a contributor changes a file in a new year (e.g. Contributor1 modifies the file in 2022), he update the range to the new year (e.g. 2019 - 2022).

Exactly, Another option is to separate with "," (comma separated list) for the case, that contributorX did not modify in one year. It could look like:

// Copyright (c) 2019 - 2020, 2022 by Contributor1. All rights reserved. // Copyright (c) 2020 - 2022 by Contributor2. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // ...

If year of initial and last contribution are the same, then mentioning one year is sufficient.

Correct

Let me know if this is feasible, so that i can adapt the template.

From my point of view, yes, it is feasible.

dkroenke commented 3 years ago

This issue stays open until all fileheaders are reworked to the new format

budrus commented 3 years ago

@dkroenke We adapt files when changing them only, or? So can we close this issue?

dkroenke commented 3 years ago

@budrus yes correct, there are only a few files left -> closed