Verbesserungen im Source Code in GitHub einbringen

Hallo Marco,

vielen Dank für die Hinweise. Den Artikel von Lars Vogel hatte ich auch gefunden und im Browser noch offen. Vielleicht nicht weit genug gelesen, wie ich gerade festgestellt habe. Das schaue ich mir mal genauer an.

Insgesamt hatte ich da noch einen Schritt übersehen, und zwar, dass man einen Fork machen muss und mit dem eigenen Repository arbeitet. Nachdem ich den Fork erstellt und mit dem GitHub Desktop geclont habe, konnte ich die angepassten Dateien hochladen, den Pull Request erstellen und so den Fix einbringen. Das Thema ist also erledigt.

Als Nächstes werde ich versuchen das über Eclipse direkt zu machen und melde mich wieder, sobald ich mehr verstanden habe.

Danke und Grüße
Sven

Change is drin. Vielen Dank! :clap: Ich denke bis Ende des Monats gibt es eine neue Version.

Weil ich etwas gebraucht habe, um den Einstieg zu finden, hier zusammengefasst noch mal die Schritte, um ein Eclipse aufzusetzen und das Projekt zu laden. Vielleicht hilft es anderen dabei, es auch zu versuchen:

  1. GitHub User nutzen oder erstellen
  2. Fork des buchen/portfolio
    grafik
  3. Eclipse installieren (siehe auch auf der Startseite des Projektes unten GitHub - buchen/portfolio: A simple tool to calculate the overall performance of an investment portfolio.)
  4. Fork in Eclipse importieren (Clone a Git Repository)
  5. Portfolio-target-definition.target doppelklicken → Set as Active Target Platform (kann etwas dauern, bis es fertig ist)
    grafik
  6. Run… → Run configurations → links Portfolio Performance wählen, dann Tab Plug-ins → Add Required Plug-ins → Apply
    grafik
    grafik
  7. lokalen Branch erstellen und entwickeln
    grafik
  8. Entwicklungen committen – bis dahin lokal
  9. Branch nach remote pushen
    grafik
    grafik
  10. Pull Request erstellen (auf der GitHub Webseite)
14 Likes

Gerne möchte ich noch einen Antwort an Marco (@Ragas) geben zum Thema, wie man aus Eclipse heraus das Remote Repository von PP mit dem eigenen synchronisieren kann.

Hier die entsprechenden Schritte, wobei der erste Schritt nur einmalig durchgeführt werden muss. Außerdem kann es dazu kommen, dass die Anzeige in Eclipse nicht sauber aktualisiert/refreshed wird, obwohl beispielsweise das Update des Upstream Master funktioniert hat. Dann einfach die nachfolgenden Schritte durchführen und die Aktualisierung der Anzeige kommt im Anschluss oder Refresh (F5) nach jedem Schritt drücken.

Also hier das Vorgehen:

1. Schritt: Upstream bei Remotes hinzufügen

Dieser Schritt muss nur vorbereitend beim ersten Mal durchgeführt werden. Bei allen weitern Updates kann man mit Schritt 2 beginnen.

In der Git Perspektive mit der rechten Maustaste auf Remotes → Create Remote…
grafik

Dann neues Remote erstellen mit name: upstream, Configure fetch

grafik

Im nächsten Screen auf „Change…“

grafik

Anschließend die Repository URI GitHub - buchen/portfolio: A simple tool to calculate the overall performance of an investment portfolio. eingeben und „Save and Fetch“ drücken.

grafik

Nach dem ersten Aufsetzen, hier beginnen:

2. Schritt: Aktualisieren des Buchen Master

Unter „Remotes“ → „upstream“ → „Fetch“ auswählen

grafik

Als Ergebnis erscheint ein Fenster mit den abgeholten Änderungen. Zum Beispiel:

grafik

Anschließend File → Refresh oder F5 drücken.

3. Schritt: Rebase des Master des eigenen Forks auf die aktuelle Version des Buchen Master

Als erstes den Master Branch des Fork auschecken, wenn nicht schon geschehen. Dann das Rebase durchführen:

grafik

Und im nächsten Dialog den Upstream Master auswählen:

grafik

Und final das Pushen des „Rebased“ Branch in den Fork bei GitHub:

grafik

grafik

grafik

Ergebnis:

grafik

Anschließend File → Refresh oder F5 drücken.

Fertig!

Es wäre toll, wenn es jemand ausprobieren und Feedback geben könnte, sollte etwas nicht ganz passen.

5 Likes

Ich habe jetzt gerade Deine Anleitung befolgt und ich glaube, dass es geklappt hat. Ich musste einfach noch mein Remote origin zuerst löschen, da ich ein Clone ursprünglich gemacht hatte. Dann noch die Fork erzeugen auf GitHub und die dann als origin setzen in Eclipse. Danach konnte ich alle Deine Schritte befolgen.
Vielen Dank für Deine Anleitung!

Könnte das nicht einer von euch übernehmen, indem ich die Files hier hochlade?

Da ich leider kein ja machen wir gelesen habe, habe ich mich mit Github beschäftigt. Ich konnte das Projekt jetzt auch mit eclipse und dem EGit Plugin mit Github verknüpfen.

Leider kann ich das Programm selber nicht ausführen, indem ich folgendes durchführe:
Run the application and the tests with the launch configurations stored in ~/portfolio-app/eclipse folder (right-click „Run As“)
Hier bekomme ich eine Fehlermeldung:

!SESSION 2020-11-03 17:14:05.264 -----------------------------------------------
eclipse.buildId=unknown
java.version=14.0.2
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE
Framework arguments:  -product name.abuchen.portfolio.bootstrap.product
Command-line arguments:  -product name.abuchen.portfolio.bootstrap.product -data C:\Users\abc\git/../runtime-name.abuchen.portfolio.product -dev file:C:/Users/abc/git/.metadata/.plugins/org.eclipse.pde.core/Portfolio Performance/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog

!ENTRY org.eclipse.osgi 4 0 2020-11-03 17:14:08.013
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Display
	at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:148)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1420)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Display cannot be found by org.eclipse.e4.ui.workbench.swt_0.14.1000.v20200514-1625
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:516)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:171)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	... 14 more

Den Test vom PDF-Import kann ich jedoch ohne Fehler ausführen. Kann mir hier bitte jemand weiterhelfen.

Versuche mal, unter Run --> Run Configurations… --> Portfolio Performance Java 11 auszuwählen und dann den Tab „Plug-ins“ auszuwählen. Dort rechts den Button „Add Required Plug-ins“ drücken und anschließend „Apply“ und/oder „Run“.

Vielleicht hilft auch dieser Beitrag: Verbesserungen im Source Code in GitHub einbringen

1 Like

Vielen dank, jetzt wo ich es lese wird mir klar, dass ich es das Letzte mal auch so gemacht hatte. Keine Ahnung mehr woher ich wusste, dass ich darauf klicken muss.

Ich gucke mir das später mal an und versuche die Änderungen mit deiner Anleitung hochzuladen.

Ich hänge schon wieder fest :frowning_face:

Ich habe das Rebase ausgeführt, das scheint auch noch geklappt zu haben, da ich keine Fehlermeldung bekommen habe.
Das pushen klappt aber nicht mehr.

Was muss ich da als Remote destination eintragen?
Bei mir war folgendes als default eingetragen, und dies habe ich auch nicht geändert.
grafik

Wenn ich dann weiter mache bekomme ich folgende Fehlermeldung:
grafik

Was habe ich noch falsch gemacht.
Vielen Dank im Voraus.

Du musst dein eigenes Repo verwenden und dann von diesem auf das von PP.

Wie erstelle ich das? Wo in der Anleitung muss ich einen Extra Schritt einbauen?

@inv-trad hat dies im Beitrag 7 sehr gut erklärt. Du clonst dir via GitHub das Repository von PP und verwendest dannin Eclipse deine URLs.

So ich habe jetzt die Änderungen bei mir in Github erstellt. Wie kommen die jetzt in den Code von Andreas. Oder passiert das automatisch?
Hier der Link auf meine Github-Seite:

Das passiert nicht automatisch. In meinem Beitrag vom 20. Februar steht unter 7., dass die Entwicklung in einem lokalen Branch gemacht werden sollte. Wenn man dann die Entwicklungen committed und diesen Branch gepushed hat, kann man auf der GitHub Seite den Pull Request stellen.

Oje ist das alles kompliziert.
Ich habe jetzt auf github ebenfalls ein pull request erstellt. Könnt ihr bitte prüfen, ob das jetzt passt, oder ob ich nochwas vergessen habe.

Ich wollte eigentlich ein paar Code-Änderungen bzw. Erweiterungen für PP beitragen. Allerdings bekomme ich das Projekt in Eclipse nicht zum laufen.

Entweder es kommt eine leere IDE oder aber Eclipse meldet mir permanent folgende Fehler:
Project ‘name.abuchen.portfolio’ binding refers to an unknown connection: ‘SonarCloud/buchen-github’. Please fix project binding or unbind project.

Ich habe die Anleitungen von Github und aus dem Forum zum Einbinden des Sources in Eclipse nachvollzogen.

Gibt es noch eine andere Anleitung?

Hallo @HeikoS
SonarCloud brauchst du nicht.
Markiere alles und klick auf “unbind” oder deinstalliere Sonar…

Gruß Alex

1 Like

Hallo @Nirus ,
ich habe das Projekt ca. 6x aufgesetzt. Es will einfach nicht. Solche Probleme hatte ich noch nie. :frowning: Bin gerade ein wenig gefrustet. Das LDSL Plugin erstellt mir auch keinen automatischen Eintrag.
Irgend etwas läuft da gerade total schief.
Habe sowohl auf einem Windows Rechner, wie auch auf Macos versucht.
Grüße
Heiko

Es funktioniert mittlerweile…

1 Like

Hallo @HeikoS
wir können das ganze auch kurz per TeamViewer durchgehen. :nerd_face:
LDSL
Bitte nicht vergessen die Addons (PDE und CheckStyle) zu aktivieren.

Für noch mehr Hilfe, ließ dir diesen Threat durch… :wink:

Gruß
Alex