I think we really need to try harder on the API compatibility front.
Several of the commits since 0.22 have introduced incompatible changes to
various APIs.

The following types of changes are not backward compatible:

- new parameters on an existing public method
        ProjectBrowser.loadProject
        Model.getXmiWriter
        UmlFilePersister.writeProject

- new exceptions thrown by an existing public method
        ProjectFilePersister.doLoad
        ProjectFilePersister.doSave
        ProgressListener.progress
        UmlFilePersister.writeProject

- deleting or renaming public methods
        UmlFilePersister.progress
        Project.getURL

In the cases of big changes like the progress indicator for loading, it may
not be possible to maintain compatibility with a reasonable amount of
effort, but in those cases we should at least keep track of the
incompatibilities so that we can summarize them for plugin programmers at
the next release.

For smaller changes, there are usually well established methods to preserve
compatibility.  For example when adding a new parameter, retain the old
method signature and have it call the new method with some default value for
the new parameter.

Tom

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to