apple / ccs-calendarserver

The Calendar and Contacts Server.
https://www.calendarserver.org
Apache License 2.0
485 stars 136 forks source link

Package twext for separate distribution #391

Closed macosforgebot closed 10 years ago

macosforgebot commented 10 years ago

exarkun@… originally submitted this as ticket:827


twext has some pretty cool stuff in it. right now I am primarily interested in adbapi2 (and perhaps dal). other parts of it look pretty cool too, though.

I think it would be great for this code to have more visibility, acquire more users, and benefit from the added development resources that comes with those things.

Towards this end, I'd like to make it possible to package and distribute twext independently of the rest of the Calendar and Contacts Server package. I do not propose maintaining twext in a separate repository, just adding the necessary distutils glue to make it possible to build a twext-only package out of the Calendar and Contacts Server source tree.

macosforgebot commented 10 years ago

exarkun@… originally submitted this as attachment:setup-twext.patch:⁠ticket:827


A patch which adds a new setup-twext.py file for building a twext-only package

macosforgebot commented 10 years ago

exarkun@… originally submitted this as comment:1:⁠ticket:827


The attached is a first step. If this (or something like it) is acceptable then a next step might be to build an sdist and upload it to PyPI.

macosforgebot commented 10 years ago

@wsanchez originally submitted this as comment:2:⁠ticket:827


A separate repo might be a good idea. It would force us to ensure that here aren't cross-ceps into the other CS code.

macosforgebot commented 10 years ago

exarkun@… originally submitted this as comment:3:⁠ticket:827


Should I try to put together a patch for that? Does it make sense to use http://svn.calendarserver.org/repository/calendarserver/twext as the new location (I think this is part of the same underlying svn repo so I suppose it is possible to construct a patch file that does this).

macosforgebot commented 10 years ago

@wsanchez originally submitted this as comment:4:⁠ticket:827


I’ll move it… need to see if any pending branches need me to wait, so they don’t have too many merge issues, but I think we can do it soon.

macosforgebot commented 10 years ago

@wsanchez originally submitted this as comment:5:⁠ticket:827


Some unfortunate dependancies, need to pick away at these in the meantime:

[pucca:~/Developer/CalendarServer/CalendarServer/twext] wsanchez$ xfinds twistedcaldav
./python/memcacheclient.py:from twistedcaldav.config import config
./python/test/test_timezone.py:from twistedcaldav.test.util import TestCase
./python/test/test_timezone.py:from twistedcaldav.config import config
./python/test/test_timezone.py:import twistedcaldav.timezones
./python/test/test_timezone.py:        self.patch(twistedcaldav.timezones,
./python/timezone.py:from twistedcaldav.config import config
./python/timezone.py:import twistedcaldav.timezones
./python/timezone.py:        if twistedcaldav.timezones.hasTZ(config.DefaultTimezone):
./python/timezone.py:    if twistedcaldav.timezones.hasTZ(systemTimezone):
./python/vcomponent.py:# FIXME: Move twistedcaldav.ical here, but that module needs some
./python/vcomponent.py:from twistedcaldav.ical import Component as VComponent
./python/vcomponent.py:from twistedcaldav.ical import Property as VProperty
./python/vcomponent.py:from twistedcaldav.ical import InvalidICalendarDataError
./web2/channel/http.py:from twistedcaldav.config import config
./web2/channel/http.py:from twistedcaldav import accounting
./web2/dav/resource.py:from twistedcaldav import customxml
./web2/server.py:        #from twistedcaldav.config import config
./web2/static.py:                    # Directory listing is in twistedcaldav.extensions
macosforgebot commented 10 years ago

@wsanchez originally submitted this as comment:6:⁠ticket:827


Moved memcacheclient out of the way in r12059

macosforgebot commented 10 years ago

@wsanchez originally submitted this as comment:7:⁠ticket:827


Got rid of timezone.py in r12060.

macosforgebot commented 10 years ago

@wsanchez originally submitted this as comment:8:⁠ticket:827


And vcomponent.py is gone in r12061.

macosforgebot commented 10 years ago

@wsanchez originally submitted this as comment:9:⁠ticket:827


New repo created… monkeying to make CalendarServer happy again.

macosforgebot commented 10 years ago

@wsanchez originally submitted this as comment:10:⁠ticket:827


OK, all checked in.

Still to do: we have to pull twext.web2 out. It depends on txdav, which is not awesome for twext. It probably should go back into Calendar Server, since it’s deprecated.

macosforgebot commented 10 years ago

@wsanchez originally submitted this as comment:11:⁠ticket:827


Now that I’ve dug a deep hole, marking as a P1 ticket.

macosforgebot commented 10 years ago

@wsanchez originally submitted this as comment:12:⁠ticket:827


This is pretty much ready to go.

twext builds on its own, I moved twext.web2 to txweb2 and back to the CalendarServer project and did a bunch of other cleanup.

Let me know if you think I've missed something.