Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #4398 > unrolled thread

Django Portierungstrategy???

Started by"Marcel Hug (schaf)" <schaf.mh@gmail.com>
First post2016-04-12 08:08 -0700
Last post2016-04-26 13:32 +0200
Articles 15 — 6 participants

Back to article view | Back to de.comp.lang.python


Contents

  Django Portierungstrategy??? "Marcel Hug (schaf)" <schaf.mh@gmail.com> - 2016-04-12 08:08 -0700
    Re: [Python-de] Django Portierungstrategy??? "Sven R. Kunze" <srkunze@mail.de> - 2016-04-12 17:33 +0200
    Re: [Python-de] Django Portierungstrategy??? "Albrecht Mühlenschulte" <albrecht@muehlenschulte.de> - 2016-04-12 18:22 +0200
      Re: [Python-de] Django Portierungstrategy??? "Marcel Hug (schaf)" <schaf.mh@gmail.com> - 2016-04-12 22:54 -0700
    Re: [Python-de] Django Portierungstrategy??? Sven Broeckling <sven@broeckling.de> - 2016-04-12 21:23 +0200
    Re: [Python-de] Django Portierungstrategy??? "Sven R. Kunze" <srkunze@mail.de> - 2016-04-12 22:13 +0200
    Re: [Python-de] Django Portierungstrategy??? Sven Broeckling <sven@broeckling.de> - 2016-04-13 12:30 +0200
      Re: [Python-de] Django Portierungstrategy??? "Marcel Hug (schaf)" <schaf.mh@gmail.com> - 2016-04-22 07:50 -0700
        Re: [Python-de] Django Portierungstrategy??? "Sven R. Kunze" <srkunze@mail.de> - 2016-04-23 22:24 +0200
          Re: [Python-de] Django Portierungstrategy??? "Marcel Hug (schaf)" <schaf.mh@gmail.com> - 2016-04-24 22:26 -0700
            Re: [Python-de] Django Portierungstrategy??? "Sven R. Kunze" <srkunze@mail.de> - 2016-04-25 15:33 +0200
        Re: [Python-de] Django Portierungstrategy??? Thomas Güttler <guettliml@thomas-guettler.de> - 2016-04-25 11:45 +0200
          Re: [Python-de] Django Portierungstrategy??? "Marcel Hug (schaf)" <schaf.mh@gmail.com> - 2016-04-26 23:55 -0700
        [Python-de] requirements.txt (Was: Django Portierungstrategy???) Christopher Arndt <chris@chrisarndt.de> - 2016-04-25 15:39 +0200
        Re: [Python-de] requirements.txt (Was: Django Portierungstrategy???) Thomas Güttler <guettliml@thomas-guettler.de> - 2016-04-26 13:32 +0200

#4398 — Django Portierungstrategy???

From"Marcel Hug (schaf)" <schaf.mh@gmail.com>
Date2016-04-12 08:08 -0700
SubjectDjango Portierungstrategy???
Message-ID<9b28130b-a35f-4ae2-b13e-d2c5faf42320@googlegroups.com>
HI All,
Ich habe ein Django 1.5.1 projekt, welches mit Python 2.7 laeuft. Nun moechte ich das ganze auf die neusten Versionen bringen. Auf der Django Webseite wird empfohlen mit Python 3 zu arbeiten, aber meine Portierungserfahrung sagt mir, dass ich das besser in einem 2 Step Approach mache. 

1. Schritt: Portierung auf Django 1.9.5 (e.g. mit neuster DB Version)
2. Schritt: Portierung auf Python 3.

Da ich relativ neu bin in Python und Django wollte ich mich mal erkundigen, was ihr fuer Erfahrungen gemacht habt...?

Danke fuer alle Tips.
Gruess schaf

[toc] | [next] | [standalone]


#4399 — Re: [Python-de] Django Portierungstrategy???

From"Sven R. Kunze" <srkunze@mail.de>
Date2016-04-12 17:33 +0200
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<mailman.49.1460475213.15650.python-de@python.org>
In reply to#4398
On 12.04.2016 17:08, Marcel Hug (schaf) wrote:
> HI All,
> Ich habe ein Django 1.5.1 projekt, welches mit Python 2.7 laeuft. Nun moechte ich das ganze auf die neusten Versionen bringen. Auf der Django Webseite wird empfohlen mit Python 3 zu arbeiten, aber meine Portierungserfahrung sagt mir, dass ich das besser in einem 2 Step Approach mache.
>
> 1. Schritt: Portierung auf Django 1.9.5 (e.g. mit neuster DB Version)
> 2. Schritt: Portierung auf Python 3.
>
> Da ich relativ neu bin in Python und Django wollte ich mich mal erkundigen, was ihr fuer Erfahrungen gemacht habt...?

Wir haben ähnliches vor und da wir eine ganze Reihe von Django-Projekten 
+ VMs pflegen, kann ich den hier vorgestellten Ansatz nur bekräftigen. 
Wir haben unsere zig Projekte Stück für Stück von einer sehr alten 
Django-Version bis jetzt 1.8.11 geupgradet. Ich hoffe, wir können 
demnächst den nächsten Schritt zur 1.9 wagen.


Bis unsere System-Distribution nicht Python 3 als Standard ausliefert, 
bleiben wir auf Python 2. Die Unterschiede sind jetzt nicht so 
gravierend, von daher sehe ich einem Upgrade (spätestens 2020) eher 
gelassen entgegen.


vG
Sven

[toc] | [prev] | [next] | [standalone]


#4400 — Re: [Python-de] Django Portierungstrategy???

From"Albrecht Mühlenschulte" <albrecht@muehlenschulte.de>
Date2016-04-12 18:22 +0200
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<mailman.50.1460478478.15650.python-de@python.org>
In reply to#4398
On 12 Apr 2016, at 17:08, Marcel Hug (schaf) wrote:
> Ich habe ein Django 1.5.1 projekt, welches mit Python 2.7 laeuft. Nun 
> moechte ich das ganze auf die neusten Versionen bringen. Auf der 
> Django Webseite wird empfohlen mit Python 3 zu arbeiten, aber meine 
> Portierungserfahrung sagt mir, dass ich das besser in einem 2 Step 
> Approach mache.
>
> 1. Schritt: Portierung auf Django 1.9.5 (e.g. mit neuster DB Version)
> 2. Schritt: Portierung auf Python 3.

Gute Strategie - weiter wird immer empfohlen die Minor-Versionen (also 
x.Y.z) durch zu steppen, weil die deprecation-Warnings recht hilfreich 
sein können.

Viele Grüße
	Albrecht

[toc] | [prev] | [next] | [standalone]


#4403 — Re: [Python-de] Django Portierungstrategy???

From"Marcel Hug (schaf)" <schaf.mh@gmail.com>
Date2016-04-12 22:54 -0700
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<d64b8d28-5cb7-4874-9e2f-9e060e5f0405@googlegroups.com>
In reply to#4400
Am Dienstag, 12. April 2016 18:28:01 UTC+2 schrieb Albrecht Mühlenschulte:
> On 12 Apr 2016, at 17:08, Marcel Hug (schaf) wrote:
> > Ich habe ein Django 1.5.1 projekt, welches mit Python 2.7 laeuft. Nun 
> > moechte ich das ganze auf die neusten Versionen bringen. Auf der 
> > Django Webseite wird empfohlen mit Python 3 zu arbeiten, aber meine 
> > Portierungserfahrung sagt mir, dass ich das besser in einem 2 Step 
> > Approach mache.
> >
> > 1. Schritt: Portierung auf Django 1.9.5 (e.g. mit neuster DB Version)
> > 2. Schritt: Portierung auf Python 3.
> 
> Gute Strategie - weiter wird immer empfohlen die Minor-Versionen (also 
> x.Y.z) durch zu steppen, weil die deprecation-Warnings recht hilfreich 
> sein können.
> 
> Viele Grüße
> 	Albrecht

hi Albrecht, Hi Alle, 
zuerst mal vielen Dank fuer Eure Beitraege.
Ich werde demnach nicht wie geplant von 1.5.1 direkt auf 1.9.5 gehen, sondern zuerst auf 1.6.11, dann 1.7.11., dann 1.8.12 und am Schluss auf 1.9.5 gehen.

Vielen Dank fuer Eure Beitraege.
Gruess schaf

[toc] | [prev] | [next] | [standalone]


#4401 — Re: [Python-de] Django Portierungstrategy???

FromSven Broeckling <sven@broeckling.de>
Date2016-04-12 21:23 +0200
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<mailman.52.1460489561.15650.python-de@python.org>
In reply to#4398
Hi,

> >
> > Da ich relativ neu bin in Python und Django wollte ich mich mal
> > erkundigen, was ihr fuer Erfahrungen gemacht habt...?
> Wir haben ähnliches vor und da wir eine ganze Reihe von
> Django-Projekten
> + VMs pflegen, kann ich den hier vorgestellten Ansatz nur
> bekräftigen. Wir haben unsere zig Projekte Stück für Stück von einer
> sehr alten Django-Version bis jetzt 1.8.11 geupgradet. Ich hoffe, wir
> können demnächst den nächsten Schritt zur 1.9 wagen.
Ich mache das genauso. Das älteste Projekt wurde bei 0.96 begonnen
(Stichwort newforms :) ) und ist inzwischen auf aktuellem 1.8. 1.9
steht da auch noch aus.

Die jeweiligen Release Notes fassen ja sehr gut zusammen was zu tun
ist, wenn ich dann ein Projekt von 1.6 auf 1.8 bringe mache ich das
Schritt für Schritt.
Python3 ist da leider noch gar kein Thema. u.A. weil requirements noch
nicht Python3 tauglich sind.

Sven

[toc] | [prev] | [next] | [standalone]


#4402 — Re: [Python-de] Django Portierungstrategy???

From"Sven R. Kunze" <srkunze@mail.de>
Date2016-04-12 22:13 +0200
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<mailman.54.1460492004.15650.python-de@python.org>
In reply to#4398
On 12.04.2016 21:23, Sven Broeckling wrote:
> Hi,
>
>> >
>> > Da ich relativ neu bin in Python und Django wollte ich mich mal
>> > erkundigen, was ihr fuer Erfahrungen gemacht habt...?
>> Wir haben ähnliches vor und da wir eine ganze Reihe von
>> Django-Projekten
>> + VMs pflegen, kann ich den hier vorgestellten Ansatz nur
>> bekräftigen. Wir haben unsere zig Projekte Stück für Stück von einer
>> sehr alten Django-Version bis jetzt 1.8.11 geupgradet. Ich hoffe, wir
>> können demnächst den nächsten Schritt zur 1.9 wagen.
> Ich mache das genauso. Das älteste Projekt wurde bei 0.96 begonnen
> (Stichwort newforms :) ) und ist inzwischen auf aktuellem 1.8. 1.9
> steht da auch noch aus.

Laut gegenwärtigen ReleaseNotes soll das ganz einfach sein. Das 
Versprechen ist: "wenn dein Quellcode mit der 1.8 warnungsfrei läuft, 
dann kannst du ohne Probleme auf die 1.11 upgraden". Na ich bin 
gespannt, ob das so wird. :)

> Die jeweiligen Release Notes fassen ja sehr gut zusammen was zu tun
> ist, wenn ich dann ein Projekt von 1.6 auf 1.8 bringe mache ich das
> Schritt für Schritt.
> Python3 ist da leider noch gar kein Thema. u.A. weil requirements noch
> nicht Python3 tauglich sind.

Welche Requirements wären das bei dir?


vG
Sven

[toc] | [prev] | [next] | [standalone]


#4404 — Re: [Python-de] Django Portierungstrategy???

FromSven Broeckling <sven@broeckling.de>
Date2016-04-13 12:30 +0200
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<mailman.68.1460543462.15650.python-de@python.org>
In reply to#4398
Hi,

> Laut gegenwärtigen ReleaseNotes soll das ganz einfach sein. Das 
> Versprechen ist: "wenn dein Quellcode mit der 1.8 warnungsfrei läuft, 
> dann kannst du ohne Probleme auf die 1.11 upgraden". Na ich bin 
> gespannt, ob das so wird. :)
Das bin ich auch noch :) Bislang hält mich von Django 1.9 noch u.A.
transmeta ab, was ich auch geforked nicht so einfach auf 1.9 gebracht
habe. Das greift wohl in die Models ein bevor die Django 1.9 Apps
initialisiert sind.

> > Die jeweiligen Release Notes fassen ja sehr gut zusammen was zu tun
> > ist, wenn ich dann ein Projekt von 1.6 auf 1.8 bringe mache ich das
> > Schritt für Schritt.
> > Python3 ist da leider noch gar kein Thema. u.A. weil requirements
> > noch nicht Python3 tauglich sind.
> Welche Requirements wären das bei dir?
Ist schon ein paar Tage her dass ich das letzte mal einen Branch auf 3
probiert habe, ich meine es wären transmeta, raven (sentry) und
pybarcode gewesen. Wobei ich grade gesehen habe dass pybarcode und
transmeta jetzt Python 3 unterstützen.


Viele Grüße
  Sven

[toc] | [prev] | [next] | [standalone]


#4422 — Re: [Python-de] Django Portierungstrategy???

From"Marcel Hug (schaf)" <schaf.mh@gmail.com>
Date2016-04-22 07:50 -0700
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<0db2f630-a4f7-4b58-9f22-8d41fc7bb521@googlegroups.com>
In reply to#4404
HI Sven, hi alle
ich habe doch noch eine Frage. Wie geht man am besten vor? Das Requirements.txt hat ca. 20 Eintraege. Wie gehe ich am besten vor, damit ich herausefinde welche packages fuer ein update Django auf 1.6 Sinn machen?

Vielen Dank
Schoenes Wochenende.

schaf

Am Mittwoch, 13. April 2016 12:31:03 UTC+2 schrieb Sven Broeckling:
> Hi,
> 
> > Laut gegenwärtigen ReleaseNotes soll das ganz einfach sein. Das 
> > Versprechen ist: "wenn dein Quellcode mit der 1.8 warnungsfrei läuft, 
> > dann kannst du ohne Probleme auf die 1.11 upgraden". Na ich bin 
> > gespannt, ob das so wird. :)
> Das bin ich auch noch :) Bislang hält mich von Django 1.9 noch u.A.
> transmeta ab, was ich auch geforked nicht so einfach auf 1.9 gebracht
> habe. Das greift wohl in die Models ein bevor die Django 1.9 Apps
> initialisiert sind.
> 
> > > Die jeweiligen Release Notes fassen ja sehr gut zusammen was zu tun
> > > ist, wenn ich dann ein Projekt von 1.6 auf 1.8 bringe mache ich das
> > > Schritt für Schritt.
> > > Python3 ist da leider noch gar kein Thema. u.A. weil requirements
> > > noch nicht Python3 tauglich sind.
> > Welche Requirements wären das bei dir?
> Ist schon ein paar Tage her dass ich das letzte mal einen Branch auf 3
> probiert habe, ich meine es wären transmeta, raven (sentry) und
> pybarcode gewesen. Wobei ich grade gesehen habe dass pybarcode und
> transmeta jetzt Python 3 unterstützen.
> 
> 
> Viele Grüße
>   Sven

[toc] | [prev] | [next] | [standalone]


#4424 — Re: [Python-de] Django Portierungstrategy???

From"Sven R. Kunze" <srkunze@mail.de>
Date2016-04-23 22:24 +0200
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<mailman.11.1461443070.32212.python-de@python.org>
In reply to#4422
On 22.04.2016 16:50, Marcel Hug (schaf) wrote:
> HI Sven, hi alle

Welchen Sven meinst du? ;)

> ich habe doch noch eine Frage. Wie geht man am besten vor? Das Requirements.txt hat ca. 20 Eintraege. Wie gehe ich am besten vor, damit ich herausefinde welche packages fuer ein update Django auf 1.6 Sinn machen?

Hast du Tests für dein Projekt?

Wir gehen üblicherweise so vor:

1) Django-Version anpassen
2) Tests ausführen + Webapplikation manuell testen
3) Logs anschauen, Testergebnisse anschauen
4) Probleme fixen & zurück zu 3)

Schritt 4 involviert üblicherweise ReleaseNotes/Dokumentation von Django 
lesen, und dann Dritt-Anbieter-Projekte (z.B. django-selectable etc.) 
auf Kompatibilität hin überprüfen. Ggf. entscheiden, ob man bei der 
Version bleibt, oder das Dritt-Anbieter-Projekt auch upgradet, wenn man 
gerade diese Baustelle offen hat.

vG
Sven

[toc] | [prev] | [next] | [standalone]


#4426 — Re: [Python-de] Django Portierungstrategy???

From"Marcel Hug (schaf)" <schaf.mh@gmail.com>
Date2016-04-24 22:26 -0700
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<e9a52c4d-1b5d-412f-a59b-4746110d03ff@googlegroups.com>
In reply to#4424
HI Sven, :-)
danke für deine Antwort. Ja ich habe tests, diese habe ich zuerst in der alten Version zum laufen gebracht und nun habe ich auf 1.6 upgegraded und die Tests ausgeführt und einen Fehler / eine Warnung nach der anderen behoben.

Ich werde danach eine Testinstallation machen und alles mal manuel durchspielen.
Also bin ich ungefähr so vorgegangen, wie Du das beschrieben hast.

Vielen Dank
Grüsse aus der Schweiz
schaf

Am Samstag, 23. April 2016 22:24:31 UTC+2 schrieb Sven R. Kunze:
> On 22.04.2016 16:50, Marcel Hug (schaf) wrote:
> > HI Sven, hi alle
> 
> Welchen Sven meinst du? ;)
> 
> > ich habe doch noch eine Frage. Wie geht man am besten vor? Das Requirements.txt hat ca. 20 Eintraege. Wie gehe ich am besten vor, damit ich herausefinde welche packages fuer ein update Django auf 1.6 Sinn machen?
> 
> Hast du Tests für dein Projekt?
> 
> Wir gehen üblicherweise so vor:
> 
> 1) Django-Version anpassen
> 2) Tests ausführen + Webapplikation manuell testen
> 3) Logs anschauen, Testergebnisse anschauen
> 4) Probleme fixen & zurück zu 3)
> 
> Schritt 4 involviert üblicherweise ReleaseNotes/Dokumentation von Django 
> lesen, und dann Dritt-Anbieter-Projekte (z.B. django-selectable etc.) 
> auf Kompatibilität hin überprüfen. Ggf. entscheiden, ob man bei der 
> Version bleibt, oder das Dritt-Anbieter-Projekt auch upgradet, wenn man 
> gerade diese Baustelle offen hat.
> 
> vG
> Sven

[toc] | [prev] | [next] | [standalone]


#4428 — Re: [Python-de] Django Portierungstrategy???

From"Sven R. Kunze" <srkunze@mail.de>
Date2016-04-25 15:33 +0200
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<mailman.73.1461591217.32212.python-de@python.org>
In reply to#4426
Hi Marcel,

da bin ich ja gespannt, wer es eher auf die 1.9 schafft. Wir sind zur 
Zeit auf der 1.8. ;-)

vG
Sven

On 25.04.2016 07:26, Marcel Hug (schaf) wrote:
> HI Sven, :-)
> danke für deine Antwort. Ja ich habe tests, diese habe ich zuerst in der alten Version zum laufen gebracht und nun habe ich auf 1.6 upgegraded und die Tests ausgeführt und einen Fehler / eine Warnung nach der anderen behoben.
>
> Ich werde danach eine Testinstallation machen und alles mal manuel durchspielen.
> Also bin ich ungefähr so vorgegangen, wie Du das beschrieben hast.
>
> Vielen Dank
> Grüsse aus der Schweiz
> schaf
>
> Am Samstag, 23. April 2016 22:24:31 UTC+2 schrieb Sven R. Kunze:
>> On 22.04.2016 16:50, Marcel Hug (schaf) wrote:
>>> HI Sven, hi alle
>> Welchen Sven meinst du? ;)
>>
>>> ich habe doch noch eine Frage. Wie geht man am besten vor? Das Requirements.txt hat ca. 20 Eintraege. Wie gehe ich am besten vor, damit ich herausefinde welche packages fuer ein update Django auf 1.6 Sinn machen?
>> Hast du Tests für dein Projekt?
>>
>> Wir gehen üblicherweise so vor:
>>
>> 1) Django-Version anpassen
>> 2) Tests ausführen + Webapplikation manuell testen
>> 3) Logs anschauen, Testergebnisse anschauen
>> 4) Probleme fixen & zurück zu 3)
>>
>> Schritt 4 involviert üblicherweise ReleaseNotes/Dokumentation von Django
>> lesen, und dann Dritt-Anbieter-Projekte (z.B. django-selectable etc.)
>> auf Kompatibilität hin überprüfen. Ggf. entscheiden, ob man bei der
>> Version bleibt, oder das Dritt-Anbieter-Projekt auch upgradet, wenn man
>> gerade diese Baustelle offen hat.
>>
>> vG
>> Sven
> _______________________________________________
> python-de maillist  -  python-de@python.org
> https://mail.python.org/mailman/listinfo/python-de

[toc] | [prev] | [next] | [standalone]


#4427 — Re: [Python-de] Django Portierungstrategy???

FromThomas Güttler <guettliml@thomas-guettler.de>
Date2016-04-25 11:45 +0200
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<mailman.68.1461577520.32212.python-de@python.org>
In reply to#4422

Am 22.04.2016 um 16:50 schrieb Marcel Hug (schaf):
> HI Sven, hi alle
> ich habe doch noch eine Frage. Wie geht man am besten vor? Das Requirements.txt hat ca. 20 Eintraege. Wie gehe ich am besten vor, damit ich herausefinde welche packages fuer ein update Django auf 1.6 Sinn machen?


Wie kommen die Einträge in die req.txt?

Vermutlich per `pip freeze` .... Dann ist diese Datei wie binärer "Müll" zu betrachten. Als Softwareentwickler
willst du mit der Quelldatei arbeiten.

Abhängigkeiten werden in Python so weit ich weiß über install_requires in setup.py definiert.

Gruß,
   Thomas

-- 
Thomas Guettler http://www.thomas-guettler.de/

[toc] | [prev] | [next] | [standalone]


#4436 — Re: [Python-de] Django Portierungstrategy???

From"Marcel Hug (schaf)" <schaf.mh@gmail.com>
Date2016-04-26 23:55 -0700
SubjectRe: [Python-de] Django Portierungstrategy???
Message-ID<0497dfba-5680-437d-b8ec-c0acd2817cb6@googlegroups.com>
In reply to#4427
HI Thomas,
jas das ist wohl so. Ich habe das Projekt selber erst uebernommen und als newbie kommen hald so einige Fragen auf. 
Aber wenn ich pip freeze > req.txt mache, dass habe ich das selbe wie wenn ich das requirements file in der Solution verwende. Von dem her gehe ich davon aus, dass pip freeze verwendet wurde.

Ich werde wohl auch dort noch ausmisten muessen.

Thanks

Am Montag, 25. April 2016 11:45:23 UTC+2 schrieb Thomas Güttler:
> Am 22.04.2016 um 16:50 schrieb Marcel Hug (schaf):
> > HI Sven, hi alle
> > ich habe doch noch eine Frage. Wie geht man am besten vor? Das Requirements.txt hat ca. 20 Eintraege. Wie gehe ich am besten vor, damit ich herausefinde welche packages fuer ein update Django auf 1.6 Sinn machen?
> 
> 
> Wie kommen die Einträge in die req.txt?
> 
> Vermutlich per `pip freeze` .... Dann ist diese Datei wie binärer "Müll" zu betrachten. Als Softwareentwickler
> willst du mit der Quelldatei arbeiten.
> 
> Abhängigkeiten werden in Python so weit ich weiß über install_requires in setup.py definiert.
> 
> Gruß,
>    Thomas
> 
> -- 
> Thomas Guettler http://www.thomas-guettler.de/

[toc] | [prev] | [next] | [standalone]


#4430 — [Python-de] requirements.txt (Was: Django Portierungstrategy???)

FromChristopher Arndt <chris@chrisarndt.de>
Date2016-04-25 15:39 +0200
Subject[Python-de] requirements.txt (Was: Django Portierungstrategy???)
Message-ID<mailman.75.1461591922.32212.python-de@python.org>
In reply to#4422

[Multipart message — attachments visible in raw view] — view raw

Am 25.04.2016 um 11:45 schrieb Thomas Güttler:
> Abhängigkeiten werden in Python so weit ich weiß über install_requires
> in setup.py definiert.

Jein. install_requires setup.py definiert "abstrakte" Abhängigkeiten.
Feste Versionsnummern sind dort nach Möglichkeit zu vermeiden, wenn
nötig sollte man darin höchstens Minimal- oder Maximalversionsnummern
und direkte Abhängigkeiten festlegen.

Die setup,py ist m.E. vorrangig für Python-*Pakete* gedacht. Deswegen
sollte man davon ausgehen, dass sie in unterschiedlichen Umgebungen und
Nutzungsszenarien ausgeführt wird (z.B. beim Paketbau für
Distributionen; beim Entwickler, wenn er sein virtualenv für ein Projekt
füllt; beim Testen mit tox usw.)

Die requirements.txt ist auf der Projekt bzw. Applikationsebene
angesiedelt. In ihr kann man Versionen pinnen und definiert sozusagen
die genaue Ausführungsumgebung für die Anwendung. Es sind dort i.d.R.
alle notwendigen Pakete, also auch die Abhängigkeiten von Abhängigkeiten
(rekursiv) aufgeführt.

Es gibt Tools, mit denen man die abstrakten Abhängigkeiten aus der
requirements.txt (halb-)automatisch extrahieren kann. Eine naive
Implementierung zum Einbinden in die setup.py, die für einfache Fälle
ausreicht, habe ich zum Beispiel hier notiert:

https://gist.github.com/SpotlightKid/486c711a3c14c70edb1a

Besser wäre m.E. aber, ein entsprechendes Skript in den Release-Prozess
zu integrieren, das dann auch indirekte Abhängigkeiten bereinigt usw.

Weitere Gedanken zum Thema:

https://caremad.io/2013/07/setup-vs-requirement/


Gruß, Chris

[toc] | [prev] | [next] | [standalone]


#4434 — Re: [Python-de] requirements.txt (Was: Django Portierungstrategy???)

FromThomas Güttler <guettliml@thomas-guettler.de>
Date2016-04-26 13:32 +0200
SubjectRe: [Python-de] requirements.txt (Was: Django Portierungstrategy???)
Message-ID<mailman.104.1461670329.32212.python-de@python.org>
In reply to#4422

Am 25.04.2016 um 15:39 schrieb Christopher Arndt:
> Am 25.04.2016 um 11:45 schrieb Thomas Güttler:
>> Abhängigkeiten werden in Python so weit ich weiß über install_requires
>> in setup.py definiert.
>
> Jein. install_requires setup.py definiert "abstrakte" Abhängigkeiten.
> Feste Versionsnummern sind dort nach Möglichkeit zu vermeiden, wenn
> nötig sollte man darin höchstens Minimal- oder Maximalversionsnummern
> und direkte Abhängigkeiten festlegen.
>
> Die setup,py ist m.E. vorrangig für Python-*Pakete* gedacht. Deswegen
> sollte man davon ausgehen, dass sie in unterschiedlichen Umgebungen und
> Nutzungsszenarien ausgeführt wird (z.B. beim Paketbau für
> Distributionen; beim Entwickler, wenn er sein virtualenv für ein Projekt
> füllt; beim Testen mit tox usw.)
>
> Die requirements.txt ist auf der Projekt bzw. Applikationsebene
> angesiedelt. In ihr kann man Versionen pinnen und definiert sozusagen
> die genaue Ausführungsumgebung für die Anwendung. Es sind dort i.d.R.
> alle notwendigen Pakete, also auch die Abhängigkeiten von Abhängigkeiten
> (rekursiv) aufgeführt.
>
> Es gibt Tools, mit denen man die abstrakten Abhängigkeiten aus der
> requirements.txt (halb-)automatisch extrahieren kann. Eine naive
> Implementierung zum Einbinden in die setup.py, die für einfache Fälle
> ausreicht, habe ich zum Beispiel hier notiert:
> https://gist.github.com/SpotlightKid/486c711a3c14c70edb1a

Ich habe das früher auch gemacht. Ich bin bei einer Diskussion auf python-distuils auf
das gestoßen:

   requirements.txt and setup.py serve different purposes, requirements.txt is for an environment, setup.py is for a
   package. It doesn't make sense for a setup.py to read from a requirement.txt just like it wouldn't make sense for a
   deb package to read from a Chef cookbook.


... und es stimmt. In setup.py die req.txt einzulesen ist für mich der falsche Weg.

Für was also req.txt nehmen? Aus meiner Sicht es super um das als Ergebnis eines
CI-Laufs festzuhalten: Mit diesem Paket-Stand sind alle Tests ok. Sicherlich
gibt es vieles was damit noch nicht festgezurt ist (Python-Version, Linux, andere
Pakete die per RPM/dpkg da sein müssen und per Subprozess aufgerufen werden ...)

>
> Besser wäre m.E. aber, ein entsprechendes Skript in den Release-Prozess
> zu integrieren, das dann auch indirekte Abhängigkeiten bereinigt usw.

Stimmmt.

Was mir bisher fehlt ist der passende Begriff für das, was die req.txt beinhaltet.

Im Django-Kontext wird manchmal der Begriff "Project" verwendet. Aber so weit ich
weiß gibt es keinen Konsens in der Python-Welt.

Gruß,
   Thomas


-- 
Thomas Guettler http://www.thomas-guettler.de/

[toc] | [prev] | [standalone]


Back to top | Article view | de.comp.lang.python


csiph-web