drewnoakes / metadata-extractor

Extracts Exif, IPTC, XMP, ICC and other metadata from image, video and audio files
Apache License 2.0
2.56k stars 480 forks source link

Proposal: Simplify copyright headers and author tags #477

Open drewnoakes opened 4 years ago

drewnoakes commented 4 years ago

Feedback please!

In the .NET library we removed the long-form copyright header and replaced it with a shorter one. I'd like to propose doing the same thing in the Java repo.

Copyright Banners

Before

/*
 * Copyright 2002-2019 Drew Noakes and contributors
 *
 *    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.
 *
 * More information about this project is available at:
 *
 *    https://drewnoakes.com/code/exif/
 *    https://github.com/drewnoakes/metadata-extractor
 */

After

// Copyright (c) Drew Noakes and contributors. All Rights Reserved. Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.

Up sides:

We don't need the project URLs in every file. There's a README with this information and more. If anyone is in doubt as to where a single file came from, the package name should be enough to find it easily online these days.


Authorships

The thing that makes me happiest about the metadata extractor projects is the huge amount of community involvement. I totally want to give credit to everyone who contributes, no matter the size of contribution.

I don't think the current @author Javadoc tags do a good job of attributing contributions. Many files are added without authors, and many files are updated without attributing these contributions to their authors in the Javadoc.

The @author annotation seems a bit dated nowadays. Git and GitHub do a great job of capturing who contributed what code, both line-by-line and via linked issues/PRs. I feel like the @author tags add no value and are potentially misleading, so I am considering removing them. Does anyone have any reservations about that? The same is true of <author> tags in the .NET implementation.

I would like to hear your feedback on all of the above. Thanks!

softdevca commented 4 years ago

I suggest a revised format for the first line to make it clear where the file is from, as files get copied and pasted the universe:

// Copyright (c) Drew Noakes and contributors. Licensed under the Apache License, Version 2.0. See github.com/drewnoakes/metadata-extractor/LICENSE

"All rights reserved" is not required.

I agree the functionality of the @author tags is better served with version control.

nosnhojbob commented 3 years ago

So far, I've only made one contribution and I threw in the @author just out of habit. No issues from me if the annotation is stripped out in favor of Git history.

drewnoakes commented 9 months ago

I suggest a revised format for the first line to make it clear where the file is from, as files get copied and pasted the universe:

// Copyright (c) Drew Noakes and contributors. Licensed under the Apache License, Version 2.0. See github.com/drewnoakes/metadata-extractor/LICENSE

How about using SPDX:

// Copyright (c) Drew Noakes and contributors. Licensed under Apache-2.0 (https://github.com/drewnoakes/metadata-extractor/LICENSE)

"All rights reserved" is not required.

Great!

I agree the functionality of the @author tags is better served with version control.

Thanks, and I haven't heard any other complaints. I am leaning towards making this change.