View Issue Details

IDProjectCategoryView StatusLast Update
0000136Adventure PHP FrameworkCode-Verbesserung // Code improvementpublic2015-10-12 12:20
ReporterjprangenbergAssigned ToChristianAchatz 
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status closedResolutionfixed 
Product Version2.0 
Target Version3.0Fixed in Version2.1 
Summary0000136: Kritik am APF: Mögliche Verbesserungen
Description- Git (Github) anstatt SVN (Sourceforge)
- PSR-4 Loader
- Composer Unterstützung
- Template darf Controller nicht kennen
TagsNo tags attached.
Codereferenz: ([Datei]:[Zeile])
Namespacenone

Relationships

child of 0000194 resolvedChristianAchatz Introduce Composer support for the APF 

Activities

jwlighting

2014-02-02 18:41

administrator   ~0000194

Skype-Protokoll zum Thema als Dateianhang hochgeladen

jwlighting

2014-02-07 21:42

administrator   ~0000206

Hallo Jens,

ich fänds toll wenn du die Verbesserungsvorschläge nach und nach angehst und die einzelnen daraus abgeleiteten Aufgaben daraus in eigene Tasks rüber schiebst, und den entsprechenden Bearbeitern zuweist.

Ich habe dich hier mal eingetragen, in der Hoffnung dass du die Verbesserungsvorschläge "manage" magst.

LG :)
Jan

ChristianAchatz

2014-02-16 08:30

administrator   ~0000220

Hallo zusammen,

die Punkte

> - Git (Github) anstatt SVN (Sourceforge)
> - Composer Unterstützung

sehe ich als absolut sinnvoll an.

Die Forderung eines

> - PSR-4 Loader

ist absolut valide. Die aktuelle Implementierung des APF ClassLoader-Interface ist da IMHO schon verdamt nahe dran (siehe https://github.com/php-fig/fig-standards/blob/master/proposed/psr-4-autoloader/psr-4-autoloader.md). Wenn ich den Chat so ansehe, geht es hier auch eher um das Wording. Der Protagonist der Diskussion hat sich die Implementierung offentichlich noch nicht angesehen.

Mit

> - Template darf Controller nicht kennen

hebelst du das komplette Grundkonzept des APF hinsichtlich der HMVC-Implementiernuga aus und generierst bei einem Code-basierten HMVC-Ansatz (wie z.B. bei Kohana) dedizierte Abhängigkeiten im Code, die Unit Tests extrem erschweren. Diesen Punkt würde ich daher gerne erst mal ausschließen.

ChristianAchatz

2014-02-16 08:53

administrator   ~0000221

Last edited: 2014-02-16 10:06

View 5 revisions

Noch ein Gedanke zu

> - Git (Github) anstatt SVN (Sourceforge)

Ich lese aus dem Chat, dass es hier mehr um die Diskussion der Hosting-Plattform geht. Sehe ich das richtig?

Denn: GitHub unterstützt neben Git auch SVN. Damit scheint mir ein Umzug sicher einfach zumachen wenn es "nur" um die Hosting-Pattform und nicht um das VCS geht. Dann möchte ich allerdings nochmals den Mehrwert eines Umzugs diskutieren. Ist dieser wirklich ausschlaggebend?

Meine Meinung: wenn Umzug, dann auch das VCS wechseln.

Allerdings: Sf.Net ist aktuell wohl besser was die Verfügbarkeit der Services angeht. Meinungen dazu?

Hinsichtlich des Pricing/Angebots bin ich aktuell noch etwas im Unklaren (siehe z.B. https://github.com/blog/11-github-free-for-open-source). Das APF-Projekt ist zwar in Summe nicht allzugroß, 40MB reichen allerdings bei weitem nicht (siehe APF Doku Webseite).

@me: https://help.github.com/articles/what-is-my-disk-quota, http://programmers.stackexchange.com/questions/164618/why-are-many-programmers-moving-their-code-to-github, http://www.17od.com/2010/11/11/migrating-a-sourceforge-subversion-repository-to-github/

jwlighting

2014-02-18 20:32

administrator   ~0000223

> Meine Meinung: wenn Umzug, dann auch das VCS wechseln.
Das sehe ich auch so.

Wir sollten bei der nächsten Skype-Konferenz mal über das Thema sprechen.

LG :)
Jan

ChristianAchatz

2014-03-01 20:53

administrator   ~0000237

Last edited: 2014-03-28 21:15

View 4 revisions

Protokoll APF-DEV-CHAT:
-----------------------

1) Github-Account anlegen; mit diesem kann auch packagist.org genutzt werden.
   ==> DONE: https://github.com/AdventurePHP

2) Git Repo-Aufbau:
   ==> DONE
   * Repo 1: APF docu page
     ==> https://github.com/AdventurePHP/docs
   * Repo 2: Build scripts/tools/etc.
     ==> https://github.com/AdventurePHP/tools
   * Repo 3: APF code
     ==> https://github.com/AdventurePHP/code

--> http://stackoverflow.com/questions/273695/git-branch-naming-best-practices
--> http://uncod.in/blog/github-tortoisegit-and-organizational-workflow-tutorial/

3) Composer-Doku: https://packagist.org/about

4) Zeitplan:
   * 2.1: Git-Migration
   * 2.2: Composer-Einführung

ChristianAchatz

2014-03-30 21:39

administrator   ~0000287

Last edited: 2014-03-30 21:55

View 2 revisions

Setup von GIT-Repos:
* http://nvie.com/posts/a-successful-git-branching-model/

Branching:
* http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
* http://nvie.com/posts/a-successful-git-branching-model/

SVN-Backup:
* http://sourceforge.net/p/forge/documentation/rsync%20Backups/#new-sourceforge-project-scms

ChristianAchatz

2014-04-02 22:32

administrator   ~0000289

Last edited: 2014-04-07 23:05

View 2 revisions

Migration help:
* http://stackoverflow.com/questions/17852249/svn2git-cannot-setup-tracking-information
* https://github.com/nirvdrum/svn2git/issues/136
* http://stackoverflow.com/questions/11491579/how-do-i-clean-up-completely-after-svn-git-migration

==> Initial testing import done under https://github.com/AdventurePHP/code

==> Reset: https://help.github.com/articles/deleting-a-repository

ChristianAchatz

2014-04-09 10:41

administrator   ~0000291

Initial migration done. See https://github.com/AdventurePHP/code and https://github.com/AdventurePHP/docs.

ChristianAchatz

2014-04-14 15:57

administrator   ~0000298

Changes to the build script environment done in 0000131.

ChristianAchatz

2014-04-15 20:40

administrator   ~0000301

Repo on Sf.Net deleted so GIT/GitHub migration is finally done.

dingsda

2014-04-17 15:07

developer   ~0000303

wäre es nicht besser für sandbox und die anderen beispiele eigene repositories zu machen in die dann das framework-repository hineingecloned werden kann?

ChristianAchatz

2014-04-18 21:52

administrator   ~0000304

Hallo dingsda,

das funktioniert mit GIT so nicht, da die Beispiel-Implementierungen (sandbox, calc, ...) auch Konfigurationen benötigen. Ich schaue mir das mit der Dokumentation der lokalen DEV-Umgebung nochmal an.

dingsda

2014-04-19 12:59

developer   ~0000305

Last edited: 2014-04-19 13:06

View 3 revisions

wie wäre es mit nem repository nur für die richtigen framework-teile. also core, modules, tools und extensions.
tests, config, migration und die ganzen beispiele wären eigene repositorys.

in .gitignore von APF müsste dann stehen:
*/
!core/
!modules/
!tools/
!extensions/

das z.b. sandbox-repository hätte dann in der .gitignore folgendes zu stehen:
APF/
!APF/config/
APF/config/core/ (der ordner existiert ja immer erst nach konfiguration der sandbox)
!APF/sandbox/

so ist es kein problem das sandbox-repository zu klonen, darin dann das APF-repository und man kann ganz leicht an der sandbox und dem APF änderungen machen.

so wie es aktuell ist tu ich mich etwas schwer mir vorzustellen wie man bequem dran arbeiten soll.
man kann in github nicht nur teile eines repositorys clonen wie bei svn sondern nur das ganze. im unterordner sandbox/APF braucht man aber nur die ordner modules, core, extensions und tools. den rest muss man mitschleppen oder löschen. löscht man sie kann man aber nicht mehr einfach updaten.
bemerkt man bei arbeiten mit der sandbox fehler im apf kann man die nicht einfach im unterordner sandbox/APF beheben weil das updaten daraus nicht so leich möglich ist.

vielleicht sehe ich die probleme allerdings auch nur, weil ich mit github noch nicht so vertraut bin. mir scheint aber, dass andere ihre repository auch eher kleiner aufbauen.

ChristianAchatz

2014-04-20 09:45

administrator   ~0000307

Hallo dingsda,

darüber habe ich auch schon nachgedacht. Bin grade dabei das docs-Repo dahingehend umzubauen - quasi als POC. Mal sehen, wie sich das machen lässt.

ChristianAchatz

2014-04-23 16:18

administrator   ~0000309

Um eine einfachere Entwicklung zu ermöglichen wird das code-Repo noch weiter aufgespalten:

- code: alle Inhalte unter "core", "tools", "modules", "extensions"
- examples: alle Inhalte unter "examples"
- config: alle Inhalte unter "config"

Damit kann zukünftig lokal auch mit Sub-Modulen gearbeitet werden. Doku für das lokale Setup der APF-Seite und der Beispiele werde ich entsprechend anpassen.

ChristianAchatz

2014-04-23 23:20

administrator   ~0000310

Repo-Split HowTos:
- http://stackoverflow.com/questions/811251/how-can-i-move-a-single-directory-from-a-git-repository-to-a-new-repository-whil
- http://stackoverflow.com/questions/359424/detach-subdirectory-into-separate-git-repository/17864475#17864475

dingsda

2014-04-24 00:21

developer   ~0000311

Last edited: 2014-04-24 00:35

View 4 revisions

ich hab das apf auch schon gesplittet:
https://github.com/dingsda87/APF

das müsste der befehl gewesen sein, den ich dafür genommen hab:
git filter-branch --prune-empty --tag-name-filter cat --tree-filter "git rm -r -f --ignore-unmatch tests/ config/ examples/ migration" -- --all
dauert etwas länger.

mit dem subdirectory-filter hab ich es auch z.b. hier gemacht:
https://github.com/dingsda87/example-calc
befehl:
git filter-branch --prune-empty --tag-name-filter cat --subdirectory-filter examples/calc -- --all
branches/tags in denen die subdirektory nicht exisiert bleiben unverändert. müssen dann noch gelöscht werden.
sieht erstmal ganz gut aus das ergebnis.

ein problem hatte ich erstmal ich bei beiden befehlen. sie wurden immer nur auf branches angewendet, die auch vorher ausgecheckt wurden. hatte etwas gedauert bis ichs bemerkt habe.

dingsda

2014-04-24 00:41

developer   ~0000312

ach ja...
wenn wir schon dabei sind die git-history zu verändern kann man vielleicht noch bei dem beispiel dynamic modules den ordner der älteren versionen umbennen. der hieß ja irgendwann mal mano_modules, wenn ich das richtig gesehen hab.

git filter-branch --prune-empty --tag-name-filter cat --tree-filter "git mv -k examples/mano_modules/ examples/dynamic-modules/" -- --all

ChristianAchatz

2014-04-24 11:31

administrator   ~0000313

Danke für deinen Input! Ich hatte gestern Abend die --tree-filter Geschichte lokal schon vorbereitet und getestet - läuft (genau wie von dir beschrieben)!

Bei GIT-Fragen komme ich beim nächsten Mail einfach gleich zu dir und spare mir 2h Doku lesen! ;)

Ich werde das die Tage entsprechend durchführen und auf GitHub aktualisieren. Anschließend passe ich die Build-Skripten an, da sich diese dann aus mehreren Repos bedienen.

ChristianAchatz

2014-04-24 22:56

administrator   ~0000314

@dingsda: schau dir mal die Änderungen an. Müsste IMHO passen.

dingsda

2014-04-24 23:28

developer   ~0000315

denke ich auch.
super

ChristianAchatz

2014-04-25 10:21

administrator   ~0000316

Gut, danke für deine Einschätzung! :) Ich starte dann mit der Doku des ganzen und der Anpassung der Build-Skripten.

ChristianAchatz

2014-05-02 15:02

administrator   ~0000320

Repositoried finally documented under

http://wiki.adventure-php-framework.org/GIT_Repository/en (English)
http://wiki.adventure-php-framework.org/GIT_Repository (German)

ChristianAchatz

2014-05-04 22:03

administrator   ~0000323

Open issue:
- Refactor examples to work with submodules for the code repo.

ChristianAchatz

2014-05-17 09:20

administrator   ~0000346

https://github.com/fletcher/MultiMarkdown/blob/master/Documentation/Markdown%20Syntax.md

ChristianAchatz

2014-05-17 23:28

administrator   ~0000353

- VBC example refactored.
- Calc example refactored.
- Navigation example refactored.
- Sandbox still open.

ChristianAchatz

2014-05-18 00:48

administrator   ~0000354

-> Sandbox done, thus topic done. :)

Composer introduction will be handled with a separate issue.

Issue History

Date Modified Username Field Change
2014-02-02 01:52 jprangenberg New Issue
2014-02-02 18:40 jwlighting Category Neues Feature // New Feature => Code-Verbesserung // Code improvement
2014-02-02 18:40 jwlighting Product Version 3.0 => 2.0
2014-02-02 18:41 jwlighting Note Added: 0000194
2014-02-07 21:40 jwlighting Assigned To => jprangenberg
2014-02-07 21:40 jwlighting Status new => assigned
2014-02-07 21:42 jwlighting Note Added: 0000206
2014-02-16 08:30 ChristianAchatz Note Added: 0000220
2014-02-16 08:53 ChristianAchatz Note Added: 0000221
2014-02-16 08:56 ChristianAchatz Note Edited: 0000221 View Revisions
2014-02-16 08:59 ChristianAchatz Note Edited: 0000221 View Revisions
2014-02-16 09:21 ChristianAchatz Note Edited: 0000221 View Revisions
2014-02-16 10:06 ChristianAchatz Note Edited: 0000221 View Revisions
2014-02-18 20:32 jwlighting Note Added: 0000223
2014-03-01 20:53 ChristianAchatz Note Added: 0000237
2014-03-01 23:44 ChristianAchatz Note Edited: 0000237 View Revisions
2014-03-02 10:59 ChristianAchatz Note Edited: 0000237 View Revisions
2014-03-28 21:15 ChristianAchatz Note Edited: 0000237 View Revisions
2014-03-30 21:39 ChristianAchatz Note Added: 0000287
2014-03-30 21:55 ChristianAchatz Note Edited: 0000287 View Revisions
2014-04-02 22:32 ChristianAchatz Note Added: 0000289
2014-04-07 23:05 ChristianAchatz Note Edited: 0000289 View Revisions
2014-04-09 10:41 ChristianAchatz Note Added: 0000291
2014-04-14 15:57 ChristianAchatz Note Added: 0000298
2014-04-14 15:57 ChristianAchatz Assigned To jprangenberg => ChristianAchatz
2014-04-15 20:40 ChristianAchatz Note Added: 0000301
2014-04-17 15:07 dingsda Note Added: 0000303
2014-04-18 21:52 ChristianAchatz Note Added: 0000304
2014-04-19 12:59 dingsda Note Added: 0000305
2014-04-19 13:00 dingsda Note Edited: 0000305 View Revisions
2014-04-19 13:06 dingsda Note Edited: 0000305 View Revisions
2014-04-20 09:45 ChristianAchatz Note Added: 0000307
2014-04-23 16:18 ChristianAchatz Note Added: 0000309
2014-04-23 23:20 ChristianAchatz Note Added: 0000310
2014-04-24 00:21 dingsda Note Added: 0000311
2014-04-24 00:22 dingsda Note Edited: 0000311 View Revisions
2014-04-24 00:30 dingsda Note Edited: 0000311 View Revisions
2014-04-24 00:35 dingsda Note Edited: 0000311 View Revisions
2014-04-24 00:41 dingsda Note Added: 0000312
2014-04-24 11:31 ChristianAchatz Note Added: 0000313
2014-04-24 22:56 ChristianAchatz Note Added: 0000314
2014-04-24 23:28 dingsda Note Added: 0000315
2014-04-25 10:21 ChristianAchatz Note Added: 0000316
2014-05-02 15:02 ChristianAchatz Note Added: 0000320
2014-05-04 22:03 ChristianAchatz Note Added: 0000323
2014-05-17 09:20 ChristianAchatz Note Added: 0000346
2014-05-17 23:28 ChristianAchatz Note Added: 0000353
2014-05-18 00:48 ChristianAchatz Note Added: 0000354
2014-05-18 00:49 ChristianAchatz Status assigned => resolved
2014-05-18 00:49 ChristianAchatz Fixed in Version => 2.1
2014-05-18 00:49 ChristianAchatz Resolution open => fixed
2014-05-18 00:51 ChristianAchatz Relationship added child of 0000194
2015-10-12 12:20 ChristianAchatz Status resolved => closed