thekid/rfc — Issue #84: RFC 0084: Packages cleanup
Author: thekid
Created: 2011-10-09 14:57:28+00:00
State: open

Scope of Change
====
The domain-specific packages in the XP framework will be moved from the
skeleton/ directory to ports/classes/. The domain-specific org.json-
package and all other webservice-related packages will be joined into
one new package, webservices; unittests will become top-level, deprecated
packages will be removed and other (should-be domain-specific) packages
will be renamed and moved to ports/classes/.

Rationale
====
Clean up the core distribution; make it consistent.

Functionality
====
Quite a bit of reorganizing will be done, not limited to moving the domain-
specific packages but rethinking what will be core and what will be moved.

1) The following packages will have incompatible changes:

```
Current name New name Action
====
gui.gtk org.gnome M

org.json webservices.json S

xml.xmlrpc webservices.xmlrpc S
xml.soap webservices.soap S
xml.wddx webservices.wddx S
xml.uddi webservices.uddi S
xml.xp (n/a) R

io.cca (n/a) R

util.profiling.unittest unittest S
util.archive org.gnu.tar M
util.adt (n/a) R
util.registry (n/a) R
util.mp3 de.fraunhofer.mp3 M

peer.ajp org.apache.ajp M
peer.cvsclient org.cvshome M (joined w/ existing)

text.apidoc (n/a) R
text.translator net.schweikhardt M

net.planet-xp (n/a) R

```

Legend:
S: stays in skeleton but gets a new name there
M: moved to ports/classes under a new name
R: removed completely

In all cases, XAR files retaining the old classes will be created.

2) The following packages will be moved as-is to ports/classes

ch
~~

```
* ch.ecma
STLI telephony

```
com
----

```
* com.capeconnect
GlobalWeather webservices

* com.flickr
FlickR api

* com.google
Google search webservices

* com.microsoft
Windows Scripting / COM automation / Registry

* com.simpy
Simpy API

* com.sun
Java Webstart

* com.xmlrpc
MetaWeblogApi

```
net
----

```
* net.xmethods
Babelfish webservices

* net.xp_framework
XP framework website / Unit tests / Interop Webservices

```
org
----

```
* org.bugzilla
Bugzilla email gateway / O/R mapping classes / constants

* org.cvshome
CVS binary wrappers

* org.dia
Gnome Dia classes

* org.dict
Dict protocol implementation

* org.fpdf
PDF creation

* org.gnu
Gettext / readline classes

* org.htdig
ht://dig search client

* org.ietf
PunyCode / UUID

* org.imc
VCal implementation

* org.isbn
ISBN support

* org.nagios
NSCA client / O/R mapping classes

* org.tigris
Subversion binary wrappers

* org.webdav
WebDAV client and server

```
us
~~

```
* us.icio
del.icio.us client

```

After the changes are applied, the packages will be distributed as follows:

skeleton
----

```
Package Contents
------------- ----------------------------------------------------------
gui (no subpackages)
img convert, chart, graph, shapes, io, fonts, util, filter
io dba, cca, sys, collections
lang reflect, types, archive
peer http, ldap, mail, ftp, server, webdav, sieve, news, irc
rdbms pgsql, sybase, sqlite, mysql, util, criterion
remote protocol, reflect, beans
sapi soap, compat, gui, xmlrpc, scriptlet
scriptlet xml, rpc
security crypto, auth, sasl, checksum, cert
text format, doclet, parser, util, encode
unittest gui, coverage
util semaphore, profiling, cmd, telephony, log, io, collections
webservices soap, xmlrpc, wddx, json, uddi
xml dom, uddi, xp, parser, soap, xmlrpc, wddx, rdf, meta

```

ports/classes
----

```
Package Contents
------------- ----------------------------------------------------------
ch ecma
com simpy, capeconnect, sun, microsoft, xmlrpc, google, flickr
de document-root, uska, thekid, fraunhofer, schweikhardt
name kiesel
net xp_framework, xmethods
org fpdf, htdig, nagios, tigris, dict, cvshome, ietf, webdav, imc,
gnu, bugzilla, isbn, json, dia, gnome
us icio

```

Security considerations
====
n/a

Speed impact
====
n/a

Dependencies
====
Users of the packages moved to ports/classes will need to add the
/path/to/xp/trunk/ports/classes/ directory to their include path.

Users of packages moved within skeleton can either change their source-
code (a migration script will be provided) or use of the BC xars which
retain the old class names, adding them to their include path.

Related documents
====
- http://xp-framework.net/rfc/contrib/rfc0084/manifests/
Manifests for XAR files

- http://xp-framework.net/downloads/rfc0084/
BC XARs

Comments
====
- friebe, Sun Oct 22 16:59:23 2006
The JSON API should probably stay part of the core distribution.
I'd suggest to create a new top-level "webservices" package and stuff
it there; but this should be a new RFC.

- friebe, Thu Nov 16 10:36:44 2006
The creation of a top-level webservices package will be included in
this RFC after all.

- friebe, Thu Nov 16 11:07:35 2006
As soon as an upgrade advisor and a migration script are available,
I'll set this to discussion.

- friebe, Fri Nov 17 11:05:37 CET 2006
contrib/rfc0084/migrate contains reporting and migration scripts.
See http://xp-framework.info/xml/xp.en_US/news/view?131 on how to
use them.