Project

General

Profile

Feature #1357

Drop Boilerplate License Preambel in source files

Added by Oliver Maurhart 10 months ago. Updated 10 months ago.

Status:
Assigned
Priority:
Low
Target version:
Start date:
05.02.2018
Due date:
% Done:

0%

Estimated time:

Description

Due to the Bere Convention Bere Convention a constant boilerplate code template for the license like

/*
 * key.cpp
 *
 * QKD key implementation
 *
 * Author: Oliver Maurhart, <oliver.maurhart@ait.ac.at>
 *
 * Copyright (C) 2012-2017 AIT Austrian Institute of Technology
 * AIT Austrian Institute of Technology GmbH
 * Donau-City-Strasse 1 | 1220 Vienna | Austria
 * http://www.ait.ac.at
 *
 * This file is part of the AIT QKD Software Suite.
 *
 * The AIT QKD Software Suite is free software: you can redistribute
 * it and/or modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation, either version 3 of
 * the License, or (at your option) any later version.
 *
 * The AIT QKD Software Suite is distributed in the hope that it will
 * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with the AIT QKD Software Suite.
 * If not, see <http://www.gnu.org/licenses/>.
 */

is not needed. Also, it is considered bad programming practice nowadays as e.g. explained in https://hackerboss.com/get-rid-of-templates/.

These code templates have been once necessary, but since also the U.S. joined the Bere convention in the 80ies we can safely drop them.

History

#1 Updated by Christoph Pacher 10 months ago

Hi O,

Wenn es die Lizenz verlangt, sollte man schon so einen Header drinnen haben...
Ich hab mir Hackerboss Seite (von 2009/10) angesehen. Gibt auch ein paar Gegenstimmen... und der Typ ist selber kein Jurist, wie er zugibt...

Filename: sinnvoll, bei Ausdrucken
Copyright: was, wenn die US wieder aus dem Bern (nicht Bere) Abkommen aussteigen (unter Trump ist alles moeglich)?
Kontakt-email: zur Kontaktaufnahme (no-na) ;)
Firma: Werbung ;)
Ich wuerde sogar vorschlagen, die Versionsnummer (bzw den git hash) AUTOMATISCH einzutragen, vielleicht so ähnlich wie hier:
https://stackoverflow.com/questions/16524225/how-can-i-populate-the-git-commit-id-into-a-file-when-i-commit?answertab=active#tab-top

Woher sollen die Leute wissen, von wem der Code geschrieben wurde und unter welcher Lizenz er steht, falls das File irgendwo in-the-wild auftaucht, wenn nicht im Header die Info steht?

#2 Updated by Oliver Maurhart 10 months ago

Christoph Pacher wrote:

Hi O,

Wenn es die Lizenz verlangt, sollte man schon so einen Header drinnen haben...
Ich hab mir Hackerboss Seite (von 2009/10) angesehen. Gibt auch ein paar Gegenstimmen... und der Typ ist selber kein Jurist, wie er zugibt...

Filename: sinnvoll, bei Ausdrucken
Copyright: was, wenn die US wieder aus dem Bern (nicht Bere) Abkommen aussteigen (unter Trump ist alles moeglich)?
Kontakt-email: zur Kontaktaufnahme (no-na) ;)
Firma: Werbung ;)
Ich wuerde sogar vorschlagen, die Versionsnummer (bzw den git hash) AUTOMATISCH einzutragen, vielleicht so ähnlich wie hier:
https://stackoverflow.com/questions/16524225/how-can-i-populate-the-git-commit-id-into-a-file-when-i-commit?answertab=active#tab-top

Woher sollen die Leute wissen, von wem der Code geschrieben wurde und unter welcher Lizenz er steht, falls das File irgendwo in-the-wild auftaucht, wenn nicht im Header die Info steht?

Sorry, aber Hackerboss ist nur eine von vielen, vielen Stimmen dazu. Weitere:

Und allen voran Robert Martin ist eine respektable Koryphäe. Gegenstimmen auf Hackerboss? Naja,...
Sorry, aber der Tenor im allen was ich jetzt gelesen und studiert habe, was modernes Software Engineering anbelangt, geht davon weg.

Zu deinen Punkten:

Wenn es die Lizenz verlangt, sollte man schon so einen Header drinnen haben...

Sorry, aber genau das ist falsch. Weil: gerade wir stehen vor dem Problem, dass wir unsere SW auch anders lizenzieren wollen als "die eine und nur die eine gültige Lizenz". Das bedeutet im Grunde, das wenn wir die Lizenz ändern, wir eigentlich jedes File angreifen müssen und da die Lizenz raus- bzw. ändern müssen. Für etwas, wo der juristische Tenor besagt, dass es sowieso unnötig ist. Per März 1983 (IIRC) ist die USA der Bere Convention beigetreten. Das bedeutet ausrücklich, dass Copyright ohne jeden Formalismus sofort gilt. Da gibt es ziemlich wenig zu rütteln. Auch bei "Ich bin nicht Jurist".

Filename: sinnvoll, bei Ausdrucken

Hahaha! Ich kann mich nicht mehr erinnern, wann ich in den letzten 20 Jahren ein Source File ausgedruckt habe. Ich glaube nicht, dass das heutezutage noch irendwer macht. I.d.R. siehst du dir den Source Code mit Systemen an (bsp. IDE, vim, ...) und du verläßt dich darauf, was dieses System dir sagt, was es anzeigt, ganz egal was in im Header des Files steht.

Kurz: wenn vim sagt, das ist "foo.cpp" dann ist es auch "foo.cpp", auch wenn im Header steht "bar.h". Der Header lügt.

Copyright: was, wenn die US wieder aus dem Bern (nicht Bere) Abkommen aussteigen (unter Trump ist alles moeglich)?

Dann setzte ich meinen Aluhut auf. =)

Klar, ist das möglich. Aber mal ehrlich: wie wahrscheinlich ist sowas? Ich denke nicht, dass wir damit rechnen sollen. Wenn ein derartiger Fall eintritt, dann überlegen wir uns was dazu. Aber "nur für den Fall" sowas einzubauen, ist IMHO eher unsinnig. Dann könnten wir auf mögliche Geistesblitze der Chinesen, Putin, Papst Franziskus oder was weiss ich wen noch Rücksicht nehmen. Mhm, nein.

Kontakt-email: zur Kontaktaufnahme (no-na) ;)
Firma: Werbung ;)

Ja schon, aber das ist eben nicht die Lizenzboilerplate.

Ich wuerde sogar vorschlagen, die Versionsnummer (bzw den git hash) AUTOMATISCH einzutragen, vielleicht so ähnlich wie hier:
https://stackoverflow.com/questions/16524225/how-can-i-populate-the-git-commit-id-into-a-file-when-i-commit?answertab=active#tab-top

Mhm, ja das ist interessant.

Ich meine, ich würde sowas vorschlagen:

/* 
 * This file is part of the AIT QKD suite.
 * 
 * See the COPYRIGHT file for coypright details.
 * See the LICENSE file for the software license.
 *
 * git commit: $Id$
 *
 * (C)opyright AIT Austrian Instiute of Technology, https://www.ait.ac.act
 */

Aus. Das ist kurz und bündig, räumt das File nicht voll, ist leicht und schnell zu adpatieren und bietet den allergrößten mögloichen Freiraum, gerade im Sinne von Lizenzen.

#3 Updated by Christoph Pacher 10 months ago

Ich bin bei dir, dass wir es intern im git nicht brauchen!

Nach extern könnte ich mir z.B. vorstellen, dass es bei proprietaeren Lizenzen psychologisch besser ist, diese in den Files zu haben.

Vielleicht kann man da git Variablen ala $Licence$ bzw $Copyright$ einfuehren,
wo einfach der Inhalt von einem Textfile beim Auschecken eingetragen wird?

Oder ein Script, das ein einfaches Substitute macht...

Aber ich geb zu, das ist nur ein Bauchgefühl meinerseits, damit Leute ein bisschen mehr zu motivieren, sich an die Lizenzbedingungen zu halten...

Ich les mir gerne mal durch was deine SW Gurus dazu sagen :)

Also available in: Atom PDF