Seite 2 von 4

Re: Neue Firmware für RF1000 und RF2000 (RF.01.10)

Verfasst: Mi 16. Dez 2015, 21:58
von mhier
shaddi hat geschrieben:
mhier hat geschrieben:Benutzt hier jemand Linux? Wenn ich die Firmware per git auschecke, werden sehr viele Dateien anscheinend mit CRLF line ending ausgecheckt. Entsprechend gibt mir git status viele Modifikationen.
Ja, das war leider immer schon so. Die arbeiten scheinbar mit Windows und einem miesen Editor. Die Files die C nicht angefasst hat, waren in Ordnung und der Rest mit CRLF...
Nein, sie verwenden dann wohl einfach falsche Einstellungen in git. Vielleicht kann das ein mitlesender C-Mitarbeiter mal weitergeben? :-) Das blockiert mehr oder weniger Weiterentwicklungen von der Community...

Re: Neue Firmware für RF1000 und RF2000 (RF.01.10)

Verfasst: Do 17. Dez 2015, 08:05
von RF1000
Hallo mhier,


wenn man das auf GitHub einstellen kann, welche Einstellung wäre das?
Hochgeladen und bei uns lokal verwaltet wird das per Subversion / TortoiseSVN.


Danke im Voraus,
RF1000

Re: Neue Firmware für RF1000 und RF2000 (RF.01.10)

Verfasst: Do 17. Dez 2015, 11:30
von mhier
Hallo,

ihr checkt das mit subversion aus? Ich wusste bis eben nicht mal, dass das geht :-) Wie der Name schon sagt, ist GitHub ein Hub für git, ideal sollte man den auch damit verwenden. git ist Subversion massiv überlegen, gerade wenn ihr lokal im Development-Team erstmal testen und teilen wollt, bevor ihr die Änderungen auf den GitHub pusht (git ist nämlich komplett dezentral).

Das ist eine Client-Einstellung, im Hub geht das nicht meines Wissens (GitHub verwende ich nicht, wir haben eigene git Server). git kann vor dem commit alle CRLFs durch CRs ersetzen und beim checkout umgekehrt. Die Einstellung lautet "core.autocrlf". Da ihr in den .gitattributes schon passenden Einstellungen drin habt, sollte das eigentlich automatisch passieren, aber subversion wird das einfach nicht unterstützen.

Gruß
Martin

Re: Neue Firmware für RF1000 und RF2000 (RF.01.10)

Verfasst: Do 17. Dez 2015, 19:00
von mhier
Hallo RF1000,

noch etwas zum Repository: Ihr habt ja zwei fast identische Verzeichnisse "RF1000" und "RF2000" angelegt. Das hebelt leider mehr oder weniger die Versionskontrolle aus. Wäre es nicht besser, da zwei Branches draus zu machen? Da würde dann die Versions-History erhalten bleiben und man könnte leicht Änderungen zwischen den beiden Versionen mergen. Ich weiß, svn macht da keinen Unterschied zwischen Branches und Verzeichnisen, aber git ist nun mal nicht svn ;-)

Sorry dass ich da so darauf herum reite. Ich würde wirklich gerne ein paar Kleinigkeiten anpassen und gerne meine Änderungen auch mit dem Rest der Welt teilen. Im Moment befürchte ich aber, dass ich sehr schnell massive Probleme bekomme, wenn Ihr das nächste Update veröffentlicht. Dann dürfte ich vermutlich alle meine Änderungen von Hand wieder einpflegen. Dafür ist mir dann doch meine Zeit zu schade...

Gibt es eine Chance, dass Ihr das irgendwie besser löst?

Gruß und danke
Martin

Re: Neue Firmware für RF1000 und RF2000 (RF.01.10)

Verfasst: Fr 18. Dez 2015, 10:51
von RF1000
Hallo Martin,


die aktuelle GitHub Struktur zielt darauf ab, dass auch Anwender damit zurecht kommen die keine Programmierkenntnisse haben. Wenn jemand einen RF1000 hat dann findet er alles für sein Gerät im RF1000 Ordner und wenn jemand einen RF2000 hat dann findet er alles für sein Gerät im RF2000 Ordner.

Wenn sich jemand mehr mit den Sourcen beschäftigt dann sind diese identisch (sie unterscheiden sich nur durch den MOTHERBOARD Eintrag in der Configuration.h der angibt, ob diese Sourcen für den RF1000 oder für den RF2000 kompiliert werden sollen).

Wenn du deinen eigenen Fork machen willst ist es daher egal, ob du auf dem RF1000 oder auf dem RF2000 Verzeichnis basierst.

Für die Versionskontrolle sollte es doch egal sein, ob "RF1000" und "RF2000" Verzeichnisse oder Branches sind. Da beide Verzeichnisse immer gleichzeitig und auf den gleichen Stand aktualisiert werden erfahren Sie die selben Änderungen und bekommen die gleichen Änderungs-Logeinträge.
Bei uns intern gibt es auch nur einen Stand der Firmware, der auf GitHub in zwei Verzeichnisse veröffentlicht wird.

Wir warten noch auf eine Entscheidung darauf, inwieweit bzw. in welcher Form die Community bei der Weiterentwicklung der Firmware eingebunden werden kann. Denkbar wäre ja z.B. die aktuelle Master-Struktur so beizubehalten und nur mehr einen Stand im Development-Branch zu haben, an dem auch die Community mitarbeiten kann. Ich rechne aber nicht vor Januar mit einer entsprechenden Entscheidung.


mfG
RF1000

Re: Neue Firmware für RF1000 und RF2000 (RF.01.10)

Verfasst: Fr 18. Dez 2015, 11:56
von mhier
RF1000 hat geschrieben:die aktuelle GitHub Struktur zielt darauf ab, dass auch Anwender damit zurecht kommen die keine Programmierkenntnisse haben.
Ich denke, wenn man zwei Branches für RF1000 und für RF2000 hat, wäre es nicht weniger Anwenderfreundlich. Es gibt ein Drop-Down-Menü, um zwischen den Branches zu wechseln, außerdem könnte man einfach beide Links posten.
Wenn jemand einen RF1000 hat dann findet er alles für sein Gerät im RF1000 Ordner und wenn jemand einen RF2000 hat dann findet er alles für sein Gerät im RF2000 Ordner.
Das gilt auch für Branches. Sogar besser noch, man hat jeweils einfach nur einen der beiden Ordner und muss nicht unnötig den anderen jeweils mit auschecken.
Wenn sich jemand mehr mit den Sourcen beschäftigt dann sind diese identisch (sie unterscheiden sich nur durch den MOTHERBOARD Eintrag in der Configuration.h der angibt, ob diese Sourcen für den RF1000 oder für den RF2000 kompiliert werden sollen).
Das stimmt noch, sobald ich anfange für den RF1000 etwas zu modifizieren, ist diese modifikation im RF2000 Verzeichnis nicht vorhanden. Jemand muss dann von Hand alle Änderungen in das andere Verzeichnis einpflegen.
Für die Versionskontrolle sollte es doch egal sein, ob "RF1000" und "RF2000" Verzeichnisse oder Branches sind.
Das wäre bei svn so, bei git jedoch nicht. Bei git kann ich nicht ohne Weiteres zwischen Verzeichnisen mergen.
Da beide Verzeichnisse immer gleichzeitig und auf den gleichen Stand aktualisiert werden erfahren Sie die selben Änderungen und bekommen die gleichen Änderungs-Logeinträge.
Das passiert aber eben nicht automatisch. Wenn ich in meinem Fork etwas in das RF1000 Verzeichnis committe, bleibt das RF2000 Verzeichnis unverändert. Damit laufen die beiden Versionen irgendwann auseinander.
Bei uns intern gibt es auch nur einen Stand der Firmware, der auf GitHub in zwei Verzeichnisse veröffentlicht wird.
Wenn ihr eine von meinen Änderungen dann irgendwann übernehmen wollt, wird's schwierig. Mit einer korrekten Verzeichnis- und Branch-Struktur wäre das kein Problem, ich würde euch einfach einen Pull-Request senden. Was passiert, wenn ich euch Pull-Requests für das RF1000 und jemand anderes Pull-Requests für RF2000 schickt, die aber gegenseitig Konflikte hervorrufen? Das müsst ihr dann alles von Hand wieder auseinanderklamüsern. Wenn es Branches wären, würde git euch das weitgehend abnehmen.
Wir warten noch auf eine Entscheidung darauf, inwieweit bzw. in welcher Form die Community bei der Weiterentwicklung der Firmware eingebunden werden kann. Denkbar wäre ja z.B. die aktuelle Master-Struktur so beizubehalten und nur mehr einen Stand im Development-Branch zu haben, an dem auch die Community mitarbeiten kann. Ich rechne aber nicht vor Januar mit einer entsprechenden Entscheidung.
Aktuell verhindert ihr auch umgekehrt, dass ich einfach einen Fork auf github anlege und in diesem weiterentwickle. Wenn ihr euch an die git-Konventionen haltet, müsst ihr sonst nichts weiter machen. Jeder kann Forks anlegen und trotzdem problemlos eure Änderungen wieder integrieren. Dafür ist GitHub ja schließlich gedacht :-) Genau das habt ihr ja auch mit eurer Firmware gemacht, die ist doch auch nur ein Fork von der originalen Repetier-Firmware. Die Verzeichnisstruktur im Repository habt ihr jetzt aber völlig verdreht, dann wird es auch schwierig, die Verbindung zum upstream noch vernünftig zu halten... Vielleicht soll ja mal eine Änderung von euch wieder zurück in die offizielle Version?

Re: Neue Firmware für RF1000 und RF2000 (RF.01.10)

Verfasst: Fr 18. Dez 2015, 12:06
von riu
RF1000 hat geschrieben:...die aktuelle GitHub Struktur zielt darauf ab, dass auch Anwender damit zurecht kommen die keine Programmierkenntnisse haben....
Moin RF1000.

Ich musste grade schlucken. Ich weiss dass du nicht unbedingt der richtige Ansprechpartner bist, aber das obige Zitat teile ich in keinster Weise mit dir.

Ich Code seit fast 30 Jahren und bin teilweise echt genervt von dieser Art der Firmwarepflege. Ohne Selbstorganisation, die einem nicht Programmierer schlicht fehlt, geht da recht einfach - garnichts. Gibt es bei euch denn keinen der sich mit der "User experience" des Produktes RFx000 befasst? Wenn ich ein Produkt kaufe erwarte ich das alles was ich damit anstellen kann (out of the box) ohne Firmwareupdate auch erstmal anstellen kann. Kommt eine Erweiterung (Fräsoption) dann sollte es eine Firmware geben die ich mit einigen klicks aufspielen kann und die Erweiterung funktioniert dann auch (oder ist nutzbar).

Ich meine das als konstruktive Kritik. Ich weiss auch wie es besser geht aber ich bin mir nicht sicher ob das nicht alles in den falschen Hals gelangt.

:idea: Ein Konfigurationsprogramm der Firmware mit einigen wenigen Parametern die einem die Headerdateien richtig parametrisiert wäre schon ein Schritt in die richtige Richtung. Der Kunde geht auf eine Webseite stellt ein "Ich habe einen RF1000 oder 2000, mit oder ohne Fräse mit Dual oder ohne etc. pp. blablabla drückt auf einen Knopf FW download und die haut er dann mit Adurino auf den RF1000. Wobei das schon für echte Anfänger eine Herausforderung sein kann. Bitte jetzt nicht sagen dass das nicht geht. Die Repetierseite hat ja so einen Konfigurator, der nur leider überladen mit Fragen und Parametern ist, die einen RFx000 Nutzer herzlich wenig interessieren bzw überhapt etwas sagen.

:idea: Besser noch ihr spendiert dem RF ein Webinterface. Sprich auch einen Netzwerkport. Dann könnt Ihr gleich diesen elenden USB Port killen und direkt per IP Drucken, wie es viele professionelle CNC Geräte tun. Das ist aber nur Wunschdenken.

Was ich ebenfalls sehr bescheiden finde ist, das die Headerdateien die ein User anfassen muss NUR englische Kommentare haben. Warum setzt ich nicht mal einer hin und schreibt die deutschen Kommentare drüber? Ich finde das so eher halbgar. Nicht jeder in DE/AT/CH kann Englisch geschweige denn technisches Englisch.

Vielleicht sehe ich das auch zu eng. Dennoch wollte ich diesen Gedanken schon lange mal loswerden eigentlich seit über einem Jahr :whistle:

Liebe Grüße,
Udo

Re: Neue Firmware für RF1000 und RF2000 (RF.01.10)

Verfasst: Fr 18. Dez 2015, 13:25
von RF1000
Hallo Udo,


ein Firmware Updater ist in Vorbereitung aber noch nicht freigegeben. Damit kannst du dann als RF1000 oder RF2000 Anwender die Firmware von deinem Gerät mit einem Klick aktualisieren, ohne GitHub jemals kennengelernt zu haben (weil der Download dann ja auch von der Conrad-Seite erfolgen kann).
Eine Konfigurationsmöglichkeit für die Firmware ist da bisher nicht vorgesehen, weil die über diesen Weg zur Verfügung gestellte Standard-Firmware dann direkt im Menü zwischen den unterstützten Modi umschalten kann.

Wie bereits oben beschrieben wird noch diskutiert, wie man alle Anforderungen vom Standard-Anwender ohne Programmierkenntnisse bis zum Vollblut-Entwickler der sich in die Firmware mit einbringen möchte unter einen Hut bringen könnte. In dieses Thema spielen dann viel mehr Ansichten rein als das, was wir beide diskutieren könnten :-)


mfG
RF1000

Re: Neue Firmware für RF1000 und RF2000 (RF.01.10)

Verfasst: Fr 18. Dez 2015, 13:39
von mhier
Da stimme ich Udo/riu vollkommen zu. So weit wollte ich nur (noch?) nicht gehen mit meinen Änderungswünschen :-) Es hat sich mit der neuen Firmware in so fern verbessert, als dass wenigstens der CNC-Mode (und einige andere Dinge) per Menü aktiviert werden kann. Ich habe das Gefühl, dass nun die meisten Anwender die Configuration.h gar nicht mehr anfassen müssen. Man könnte übrigens auch gleich die fertigen hex-Files auf einer Webseite bereitstellen, zusammen mit einem kleinen Script (Windows und Linux), das via avrdude die Firmware hochläd. Dann müsste man sich nicht mal mehr Adruino installieren...

Um nochmal auf git zurückzukommen: Ich habe mir mal testweise erlaubt, auf GitHub einen Fork anzulegen und die Struktur so anzupassen, wie ich denke dass sie sein könnte:
für RF1000: https://github.com/mhier/Repetier-Firmware/tree/RF1000
für RF2000: https://github.com/mhier/Repetier-Firmware/tree/RF2000

Für Development gibt es nur einen Branch (https://github.com/mhier/Repetier-Firmw ... evelopment), ich denke wer die Development-Version benutzt, kann auch eine Zeile im Config-File ändern. Soll ich euch nen Pull-Request schicken? :-)

Re: Neue Firmware für RF1000 und RF2000 (RF.01.10)

Verfasst: Fr 18. Dez 2015, 13:46
von riu
Hallo RF1000.

Ich verstehe das nicht mit dem "Firmwareupdater". Wozu eine neue Baustelle aufmachen? Mit einem Webserver, den Befehlen diff,patch,sed und awk kann man die Firmware in sekunden richtig konfigurieren dann packen und dem anwender zum download bereitstellen. Updaten kann er dann per Arduino IDE.

Also dafür muss man keine eigene Anwendung schreiben. :wundern:

Zugrunde sollte wie mhier schon sehr gut erklärt hat, ein konsistentes Git Repository dienen. Da ihr euch eh nicht mehr um den Fork kümmert macht es doch wenigstens jetzt besser als die quelle die seit Monaten eh nichts mehr bringt. Macht ein Master branch für RF1000 und RF2000 und ein Development und klaut euch doch nicht die Features eines modernen Versioning Tools. <3

Liebe Grüße,
Udo