10 Stimmen

Automatisches Verwalten von Lizenz/Autor/Version Kopfzeilen in Quellcodedateien

Es wird im Allgemeinen als gute Praxis angesehen, einige Zeilen mit Autor, Version und Lizenzinformationen oben in Quellcodedateien hinzuzufügen. Zum Beispiel schlägt Gnu GPL v3 vor, hinzuzufügen:

Copyright (C)   

Dieses Programm ist Freie Software: Sie können es weitergeben und/oder modifizieren
unter den Bedingungen [SNIP]

Ich finde es mühsam, das manuell zu jeder Datei hinzuzufügen und sie hin und wieder aktualisieren zu müssen, wenn sich einige dieser Informationen ändern (neue Autoren, Copyright-Jahre, Versionsupdates).

Gibt es eine Möglichkeit, dies automatisch zu verwalten, sodass ich diesen Inhalt nur an einer Stelle bearbeiten muss und er automatisch kopiert wird?

Wenn nötig, können Sie davon ausgehen, dass ich ein modernes Versionskontrollsystem verwende.

7voto

hakre Punkte 184133

Es wird im Allgemeinen als gute Praxis angesehen, einige Zeilen mit Autor-, Versions- und Lizenzinformationen oben in den Quelldateien hinzuzufügen.

Das hängt davon ab. Zunächst gibt es zwei (und mehr) Möglichkeiten, dies zu tun:

  • Lizenzinformationen pro Datei verwalten
  • Lizenzinformationen an zentraler Stelle verwalten

Wenn Sie ein Projekt von Grund auf starten, ist die pro-Datei-Methode oft einfach umzusetzen und behält den Überblick. Mit der Zeit wird es jedoch schwieriger, den Überblick zu behalten. Deshalb wechseln immer mehr Projekte zur Variante mit zentraler Ablage.

Die Datei-für-Datei-Methode hat den Vorteil, dass der Umfang eines Werkes klar ersichtlich ist. Oft schreiben Sie den Anwendungsnamen im Dateikommentar. Wenn eine einzelne Datei aus irgendeinem Grund herausgenommen wird, sind die Informationen immer noch vorhanden und die Dokumentationskette wird nicht unterbrochen.

Bei der Methode mit zentraler Ablage besteht der Vorteil darin, dass diese normalerweise von Ihrer Versionskontrollsoftware, zum Beispiel GIT, unterstützt wird. Commits können vom durchführenden Person unterzeichnet und der Autor angegeben werden. Es wird automatisch dokumentiert, wer welchen Code geschrieben hat und diese Information wird an einem zentralen Ort gespeichert: dem VCS.

Bewahren Sie eine COPYING-Datei in Ihrem Paket auf, in der Sie die Hauptinformationen zentral bereitstellen. Sie können die Liste der Autoren einfach über das VCS generieren. Und für jede Datei können Sie einen Header erstellen, der lediglich angibt, um welche Software es sich handelt und wo nachzuschauen ist, nur ein grobes Schema:

/**
 * Flux Deluxe v3.2.0 - Vektorzeichnung neu definiert
 *
 * Copyright 2010, 2012 von seinen Autoren.
 * Einige Rechte vorbehalten. Siehe COPYING, AUTHORS.
 */

Wenn Sie in einem neuen Jahr eine neue Version veröffentlichen, ist es selbstverständlich, alle Dateien zu aktualisieren.

5voto

Sredni Punkte 410

Verwenden Sie den License Header Manager

0voto

Nullius Punkte 2374

Wenn Sie mit Visual Studio arbeiten, könnten Sie Makros verwenden und eine Verknüpfung damit erstellen. Dann können Sie beim Erstellen einer neuen Datei die Verknüpfung verwenden, um einen Header hinzuzufügen. Wenn Sie sicherstellen möchten, dass in jeder Datei ein Header enthalten ist, können Sie StyleCop verwenden.

Die folgenden Links könnten hilfreich sein:
http://abhijitjana.net/2010/12/05/add-document-header-for-files-automatically-in-visual-studio/
http://stylecop.codeplex.com/

In Eclipse gibt es auch Unterstützung für Makros, sodass Sie dasselbe wie für VS vorschlagen sollten können. Ich habe jedoch keine Erfahrung damit.

Für Java gibt es eine Alternative zu StyleCop:
http://stylecop.codeplex.com/

Ich kenne keine SVN-Tools, die die Dateien selbst anpassen. Die Verwendung von Makros in Ihrem Editor ist das, was Sie wollen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X