1 |
Greetings, following is the weekly update about g-pypi (currently named |
2 |
gpypi2). |
3 |
|
4 |
Quick links to project info: |
5 |
* http://bitbucket.org/iElectric/g-pypi2- Repository, issue tracker |
6 |
* http://hudson.fubar.si/job/g-pypi2/ - Hudson CI instance |
7 |
* http://docs.fubar.si/gpypi2/ - Sphinx documentation generated by |
8 |
hudson on each commit |
9 |
* http://neurogeek.ath.cx/g-pypi - wiki/user stories for scrum |
10 |
development |
11 |
|
12 |
|
13 |
Previous week (24-30 May) |
14 |
========================= |
15 |
|
16 |
In Montenegro (19-14 May) I was unable to do any coding, but the project |
17 |
was prepared in any case. |
18 |
|
19 |
Task: port ebuild.py and cli.py |
20 |
------------------------------- |
21 |
|
22 |
bitbucket.org/iElectric/g-pypi2/src/tip/gpypi2/ebuild.py |
23 |
|
24 |
Ebuild was ported in some manner, but no additional work has been done. |
25 |
|
26 |
cli.py was not yet touched, as I am still designing the idea how it |
27 |
should be best programmed (currently thinking of doing action commands |
28 |
as Python classes) |
29 |
|
30 |
Task: migrate enamer functions to a class that can be later pluggable |
31 |
(for sake of modularity) |
32 |
---------------------------------------------------------------------- |
33 |
|
34 |
Done. Later, each class will be pluggable in .gpypi2 rc configuration |
35 |
file. Something like this is what I had in mind: |
36 |
|
37 |
[gpypi2] |
38 |
enamer = gpypi2.enamer:Enamer |
39 |
ebuild = gpypi2.ebuild:Ebuild |
40 |
... |
41 |
|
42 |
This makes it easier for someone to subclass Enamer/Ebuild/Younameit and |
43 |
point it to the right import path. |
44 |
|
45 |
A lot of work has been done on Enamer. Documentation is almost perfect, |
46 |
I wrote more than 500LOC of tests (totaling in 1000+ lines of unittests |
47 |
for enamer). |
48 |
|
49 |
About 150 packages out of 10k on pypi fail due to version conversion. In |
50 |
appendix there are version which fail, somehow categorised. If you think |
51 |
one of those should be covered, please respond! |
52 |
|
53 |
Task: write class that tries to get SRC_URI (currently implementation |
54 |
will |
55 |
query pypi and sourceforge by issuing HEAD HTTP request) |
56 |
----------------------------------------------------------------------- |
57 |
|
58 |
Not yet touched. This will be done in upcoming week. |
59 |
|
60 |
Task: test enamer functions against whole pypi mirror (specially version |
61 |
parsing) |
62 |
------------------------------------------------------------------------ |
63 |
|
64 |
Done - |
65 |
bitbucket.org/iElectric/g-pypi2/src/53e09a1968ee/gpypi2/tests/test_pypi.py |
66 |
|
67 |
to run tests against pypi: |
68 |
|
69 |
$ TEST_LIVE_PYPI=1 nosetests |
70 |
|
71 |
Unfortunately I had fever whole saturday and partly in sunday, after |
72 |
almost 2 years of being healty:) |
73 |
|
74 |
|
75 |
Upcoming week (01-06 June) |
76 |
========================== |
77 |
|
78 |
Task: write class that tries to get SRC_URI (currently implementation |
79 |
will |
80 |
query pypi and sourceforge by issuing HEAD HTTP request) |
81 |
--------------------------------------------------------------------- |
82 |
|
83 |
I have now more clear picture how this class should be written. Each |
84 |
mirror will inherit from Base class, which will supply utility methods. |
85 |
Class should be able to determine variables out of URI like MY_P and |
86 |
issue HEAD HTTP request to confirm that link exists. |
87 |
|
88 |
Add docs and tests of course. |
89 |
|
90 |
Task: generate basic structure of templates (we are using jinja2) |
91 |
----------------------------------------------------------------- |
92 |
|
93 |
In proposal I advised to use Mako (since I'm very familiar with it |
94 |
because of Pylons), but jinja2 is currently activly developed and very |
95 |
similar to Mako. |
96 |
|
97 |
Task: refactor and get familiar with ebuild.py, also write tests and |
98 |
docs |
99 |
--------------------------------------------------------------------- |
100 |
|
101 |
The title says everything, I will organize ebuild.py and report next |
102 |
week my findings and how it will be refactored. |
103 |
|
104 |
|
105 |
------------------------------------------------------------------------ |
106 |
APPENDIX - here are the mentioned packages that fail version/packagename |
107 |
conversion |
108 |
------------------------------------------------------------------------ |
109 |
|
110 |
# too much separators |
111 |
zope.event-3.5.0-1 |
112 |
ispmanccp-0.0.1alpha3.1 -> 0.0.1_alpha3_p1 |
113 |
yapps2-2.1.1-17.1 |
114 |
bombardier_cli-1.00-748 |
115 |
zw.jsmath-3.6a-0.9 |
116 |
collective-recipe-linktally-0.1.0-3 |
117 |
dradm-1-0.3.3_alpha |
118 |
iqpp-plone-commenting-0.5.beta.2 |
119 |
django-mptt-2-0.3.0 |
120 |
iccommunity-core-1.0-_pre371 |
121 |
django-cms-2.1.0._beta3 |
122 |
collective-dexteritypaste-1.0alpha1.1 |
123 |
collective-portlet-postit-1.0-_beta1 |
124 |
|
125 |
# too much release indicators |
126 |
bycyclecore-0.4a0_pre1054 |
127 |
byCycleTripPlanner-0.4a0.dev-r1056 |
128 |
plonetheme-notredame-1.2-beta2_beta |
129 |
plonetheme-peerstheme-1.0b4dev |
130 |
id3encodingconverter-0.1alpha.svn20080501 |
131 |
iscorpio-plonepm-2.0beta2_pre382 |
132 |
cjktools-data-0.2.0-2009-12-28 |
133 |
kaa-base-0.99.0dev-r4259-20091102 |
134 |
collective-captchaforms-0.1-20090814 |
135 |
collective-z3cform-kss-0.1b1dev |
136 |
divdialogs-0.1a1_pre610 |
137 |
django-checksum-0.1.rec68f42a975e |
138 |
django-chronograph-svn-r21-git.2 |
139 |
products-andreas09theme-0.1-step10 |
140 |
products-clockserver-0.2-Zope2.9 |
141 |
pylucid-boot-0.0.1.git-6e4b6cc |
142 |
fellowiki-0.01a1_pre36 |
143 |
pyosc-0.3.5b-5294 |
144 |
se-portlet-gallery-1.2.1bugfix_pre8 |
145 |
lymon-0.2r58_pre58 |
146 |
fuxi-1.0-rc-II_pre |
147 |
tg-ext-silverplate-0.1rc3_pre47 |
148 |
skunk-web-4.0.0a2_pre227 |
149 |
quecksilber-0.1a1_pre20081205 |
150 |
pymoneris-0.1r2_pre2 |
151 |
pyggel-0.08-alpha4_beta |
152 |
inplace-0.1a0_pre1518 |
153 |
pylucid-0.9.0.RC3.git-fbba4_rc7 |
154 |
pylucid-0.9.0.RC2.svn2609 |
155 |
|
156 |
# unknown |
157 |
ftd2xx-bzr14 |
158 |
pyopencv-2.1.0.wr1.0.2 |
159 |
plotkit-0.9.1w3 |
160 |
objectroles-0.6X |
161 |
django-dbpreferences-0.3.2.svn34 |
162 |
ete2-2.0rev89 |
163 |
kmpp-1.0.0b1_wrapper2 |
164 |
z-base-36-1.0.1 |
165 |
nawa-1.0.0._beta090714164121 |
166 |
openallure-0.1d17 |
167 |
htmlserver-2010.02.07.appengine |
168 |
|
169 |
# EASTEREGG |
170 |
sflib-1.0dev-BZR-r45-panta-elasticworld.org-20091021145839-1oceeh3stpvyl04t |
171 |
softwarefabrica-django-appserver-1.0dev-BZR-r10-panta-elasticworld.org-20091023132843-vitk6k7e5qlvhe |
172 |
pynq-0.4.0.Pineapple |
173 |
netlogger-trunk |
174 |
llsd-unreleased.unofficial |
175 |
asciiporn3k-2009.11.16.py3k.cpp |
176 |
ast2src-2010.01.21.ast2src |
177 |
freetype-Milestone1 |
178 |
gdm2setup-0.5.3-karmic |