381 lines
17 KiB
Plaintext
381 lines
17 KiB
Plaintext
PRIORETIZED:
|
|
=================================================
|
|
|
|
(21.12.2011.)
|
|
|
|
(+) * (Jurko) Prepare for the initial forked project release.
|
|
(+) * Add todo list.
|
|
(+) * Document how to access this forked project's development sources &
|
|
(+) released files.
|
|
(+) * Jurko's Mercurial repository hosted at BitBucket and accessible
|
|
(+) from 'https://bitbucket.org/jurko/suds'.
|
|
(+) * Already documented in README.
|
|
(+) * Add more details to HACKING.
|
|
(+) * Suds library Python 3 patches hosted in a Mercurial patch queue
|
|
(+) repository at BitBucket and accessible from
|
|
(+) 'https://bitbucket.org/bernh/suds-python-3-patches'.
|
|
(+) * Already documented in HACKING.
|
|
(+) * (Jurko) Minor stylistic changes & typo corrections.
|
|
(+) * Code.
|
|
(+) * 'tranparent' --> 'transparent'.
|
|
(+) * 'if tns' --> 'if tns'.
|
|
(+) * 'docuemnt' --> 'document'.
|
|
(+) * '('restriction', 'any', 'list',)' --> '('restriction', 'any',
|
|
(+) 'list')'.
|
|
(+) * And other unnecessary trailing tuple commas.
|
|
(+) * 'Qualfied' --> 'Qualified'.
|
|
(+) * 'Resolveds' --> 'Resolves'.
|
|
(+) * 'describe a port and it's list of methods' --> 'describe a port
|
|
(+) and its list of methods'.
|
|
(+) * 'dependancies' --> 'dependencies'.
|
|
(+) * 'imcoming' --> 'incoming'.
|
|
(+) * 'relavent' --> 'relevant'.
|
|
(+) * 'indicat' --> 'inidcat'.
|
|
|
|
(22.12.2011.)
|
|
|
|
(+) * (Jurko) Prepare for the initial forked project release.
|
|
(+) * Rename top level project documentation files to use the .txt extension
|
|
(+) to make them friendlier to Windows users.
|
|
(+) * Research release procedure.
|
|
(+) * Open PyPI account.
|
|
(+) * How to prepare a source distribution package.
|
|
(+) * Change author information.
|
|
(+) * Include tests.
|
|
(+) * Include all the top-level documentation files.
|
|
(+) * 'README'.
|
|
(+) * 'LICENSE'.
|
|
(+) * 'HACKING'.
|
|
(+) * 'TODO'.
|
|
(+) * Note the original project author in the package description.
|
|
(+) * Include correct license information.
|
|
(+) * See what the difference between author and maintainer
|
|
(+) information is and where it can be seen.
|
|
(+) * Try using 'setuptools_hg' to simplify specifying the project
|
|
(+) sources.
|
|
(+) * Failed when used under Python 3.
|
|
(+) * How to upload the prepared distribution packages.
|
|
(+) * Should upload a source distribution only.
|
|
|
|
(23.12.2011.)
|
|
|
|
(+) * (Jurko) Prepare for the initial forked project release.
|
|
(+) * Research release procedure.
|
|
(+) * How to upload the prepared distribution packages.
|
|
(+) * PyPI.
|
|
|
|
(24.12.2011.)
|
|
|
|
(+) * (Jurko) Prepare for the initial forked project release.
|
|
(+) * Research release procedure.
|
|
(+) * How to upload the prepared distribution packages.
|
|
(+) * BitBucket.
|
|
(+) * Document the project's official download URL.
|
|
(+) * Document how to access this forked project's development sources &
|
|
(+) released files.
|
|
(+) * Released project packages accessible from PyPI & BitBucket.
|
|
(+) * Installing the project using distribute or pip.
|
|
(+) * Document release procedure.
|
|
(+) * Version identification.
|
|
(+) * Remove the '(development)' suffix for official release builds.
|
|
(+) * Format '<base-suds-version> jurko #', e.g. '0.4.1 jurko 1'.
|
|
(+) * Tag in Hg.
|
|
(+) * Name the tag like 'release-<version-info>', e.g.
|
|
(+) 'release-0.4.1 jurko 1'.
|
|
(+) * Prepare official releases based only on tagged commits.
|
|
(+) * Prepare source distribution package, register the new release
|
|
(+) at PyPI and upload the prepared source package.
|
|
(+) * Run 'setup.py sdist register upload'.
|
|
(+) * Upload the prepared source package to the project site.
|
|
(+) * Archive the prepared source release locally if needed.
|
|
(+) * Next development version identification.
|
|
(+) * Bump up the forked project version counter.
|
|
(+) * Add back the '(development)' suffix.
|
|
(+) * Commit all local changes.
|
|
(+) * (Jurko) Constructing a SOAP request containing data stored in a sequence
|
|
(+) inside a choice.
|
|
(+) * Test scenario (syntax not precise).
|
|
(+) <choice>
|
|
(+) <element "a" - string />
|
|
(+) <element "s">
|
|
(+) <sequence>
|
|
(+) <element "s1" - string />
|
|
(+) <element "s2" - string />
|
|
(+) </sequence>
|
|
(+) </element>
|
|
(+) </choice>
|
|
(+) * When 's' is None and 'a' is not - 'a' should be used.
|
|
(+) * When 'a' is None and 's' is not - 's' should be used.
|
|
(+) * When 's' is used, all of its subelements should be used independent of
|
|
(+) whether they are None or not.
|
|
(+) * Add related test.
|
|
(+) * (Jurko) Prepare the '0.4.1 jurko 1' release.
|
|
(+) * Follow the documented release procedure.
|
|
(+) * Update version information.
|
|
(+) * Tag in Hg.
|
|
(+) * Upload the source package.
|
|
(+) * Project site.
|
|
(+) * PyPI.
|
|
(+) * (Jurko) Fix getting a suds.client object's string representation when the
|
|
(+) client is initialized with the following WSDL. Calling 'str(client)'
|
|
(+) reports 'IndexError: list index out of range'.
|
|
(+) * WSDL.
|
|
(+) <?xml version='1.0' encoding='UTF-8'?>
|
|
(+) <wsdl:definitions targetNamespace="my-namespace"
|
|
(+) xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
|
(+) xmlns:ns="my-namespace"
|
|
(+) xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
|
|
(+) <wsdl:types>
|
|
(+) <xsd:schema targetNamespace="my-namespace"
|
|
(+) elementFormDefault="qualified"
|
|
(+) attributeFormDefault="unqualified"
|
|
(+) xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
(+) <xsd:element name="Elemento">
|
|
(+) <xsd:complexType>
|
|
(+) <xsd:sequence>
|
|
(+) <xsd:element name="x1" type="xsd:string" />
|
|
(+) <xsd:element name="x2">
|
|
(+) <xsd:complexType>
|
|
(+) <xsd:choice>
|
|
(+) <xsd:element name="u1" type="xsd:string" />
|
|
(+) <xsd:element name="u2" type="xsd:string" />
|
|
(+) <xsd:element name="u3" type="xsd:string" />
|
|
(+) </xsd:choice>
|
|
(+) </xsd:complexType>
|
|
(+) </xsd:element>
|
|
(+) <xsd:element name="x3" type="xsd:string" />
|
|
(+) </xsd:sequence>
|
|
(+) </xsd:complexType>
|
|
(+) </xsd:element>
|
|
(+) </xsd:schema>
|
|
(+) </wsdl:types>
|
|
(+) <wsdl:message name="fRequestMessage">
|
|
(+) <wsdl:part name="parameters" element="ns:Elemento" />
|
|
(+) </wsdl:message>
|
|
(+) <wsdl:portType name="dummyPortType">
|
|
(+) <wsdl:operation name="f">
|
|
(+) <wsdl:input message="ns:fRequestMessage" />
|
|
(+) </wsdl:operation>
|
|
(+) </wsdl:portType>
|
|
(+) <wsdl:binding name="dummy" type="ns:dummyPortType">
|
|
(+) <soap:binding style="document"
|
|
(+) transport="http://schemas.xmlsoap.org/soap/http" />
|
|
(+) <wsdl:operation name="f">
|
|
(+) <soap:operation soapAction="f" style="document" />
|
|
(+) <wsdl:input><soap:body use="literal" /></wsdl:input>
|
|
(+) <wsdl:output><soap:body use="literal" /></wsdl:output>
|
|
(+) </wsdl:operation>
|
|
(+) </wsdl:binding>
|
|
(+) <wsdl:service name="dummy">
|
|
(+) <wsdl:port name="dummy" binding="ns:dummy">
|
|
(+) <soap:address location="https://localhost/dummy" />
|
|
(+) </wsdl:port>
|
|
(+) </wsdl:service>
|
|
(+) </wsdl:definitions>
|
|
(+) * Research.
|
|
(+) * Caused by undocumented suds.client.Client behaviour - it was
|
|
(+) expecting a specifically formatted suds.__build__ string which was
|
|
(+) not the case with the forked project release.
|
|
(+) * Add a test.
|
|
(+) * Fix.
|
|
(+) * Plan preparing a patched release.
|
|
(+) * (Jurko) Prepare the '0.4.1 jurko 2' release.
|
|
(+) * Update release notes.
|
|
(+) * Follow the documented release procedure.
|
|
(+) * Update version information.
|
|
(+) * Tag in Hg.
|
|
(+) * Upload the source package.
|
|
(+) * Project site.
|
|
(+) * PyPI.
|
|
|
|
(25.12.2011.)
|
|
|
|
(+) * (Jurko) Printing out a list of function parameters should not print an
|
|
(+) additional trailing comma after the last parameter.
|
|
(+) * Research.
|
|
(+) * suds.servicedefinition.ServiceDescription.description() code needs
|
|
(+) to be changed.
|
|
(+) * Prepare test.
|
|
(+) * Update code.
|
|
(+) * (Jurko) 'suds.xsd.xsbasic.Enumeration' objects should list their value in
|
|
(+) their string representation.
|
|
(+) * Research.
|
|
(+) * Prepare test.
|
|
(+) * Update code.
|
|
(+) * (Jurko) 'suds.sudsobject.Metadata' __unicode__()/__str__()/__repr__()
|
|
(+) functions should not raise an AttributeError.
|
|
(+) * Research.
|
|
(+) * There should be no need to access a 'suds.sudsobject.Metadata'
|
|
(+) object's __metadata__ member as done for 'suds.sudsobjects.Facade'
|
|
(+) class instances.
|
|
(+) * Prepare test.
|
|
(+) * Update code.
|
|
|
|
(26.12.2011.)
|
|
|
|
(+) * (Jurko) Clean up suds.xsd.sxbasic.TypedContent.resolve().
|
|
(+) * Research.
|
|
(+) * Base class resolve() behaviour.
|
|
(+) * Other resolve() functions in suds.
|
|
(+) * 'resolve()' related caching.
|
|
(+) * Clean up the SchemaObject resolve() implementations.
|
|
(+) * Caching not needed in TypedContent base classes.
|
|
(+) * Document.
|
|
(+) * Returns the same XSD node when the node does not have an
|
|
(+) explicitly specified external type.
|
|
(+) * When called for an XSD node with an explicitly specified external
|
|
(+) type returns that type's XSD node.
|
|
(+) * (Jurko) Clean up suds.xsd.sxbasic.TypedContent.resolve().
|
|
(+) * Research WSDL structure related to the resolving type references.
|
|
(+) * 'type'.
|
|
(+) * 'ref'.
|
|
(+) * Prepare additional resolve() tests.
|
|
(+) * 'ref'.
|
|
(+) * Valid.
|
|
(+) * Recursive.
|
|
(+) * Invalid.
|
|
(+) * References to nodes referencing other nodes.
|
|
(+) * There seems to be no way to do this in WSDL so seems no
|
|
(+) reason to keep the complicated and potentially buggy
|
|
(+) recursive resolve() implementation.
|
|
(+) * Refactor the resolve() implementation to remove recursion.
|
|
(+) * Todo items obsoleted by this refactoring.
|
|
(+) * Prevent possible endless resolve() loops due to resolve()
|
|
(+) directly or indirectly returning the same TypedContent
|
|
(+) instance.
|
|
(+) * Refactor to cache the final resolved type instead of a possibly only
|
|
(+) partially resolved one when resolving without allowing resolving to
|
|
(+) builtin types.
|
|
(+) * Research.
|
|
(+) * Prepare test.
|
|
(+) * Update code.
|
|
(+) * (Jurko) Check and remove detected potential unused imports if they are no
|
|
(+) longer needed.
|
|
(+) * splitPrefix.
|
|
(+) * DefinitionsReader.
|
|
(+) * (Jurko) Prepare the '0.4.1 jurko 3' release.
|
|
(+) * Update release notes.
|
|
(+) * Follow the documented release procedure.
|
|
(+) * Update version information.
|
|
(+) * Tag in Hg.
|
|
(+) * Upload the source package.
|
|
(+) * Project site.
|
|
(+) * PyPI.
|
|
(+) * (Jurko) Look into suds.xsd.sxbase.SchemaObject.unbounded(). It seems to
|
|
(+) return True even when the object is bounded with a max value greater than
|
|
(+) 1.
|
|
(+) * Research.
|
|
(+) * Add tests.
|
|
(+) * 'min'.
|
|
(+) * 'max'.
|
|
(+) * 'optional'.
|
|
(+) * 'required'.
|
|
(+) * 'unbounded'.
|
|
(+) * Update code - rename unbounded to multi_occurrence.
|
|
|
|
(27.12.2011.)
|
|
|
|
(+) * (Jurko) Get calling a web service operation taking no parameters to work
|
|
(+) correctly.
|
|
(+) * Research.
|
|
(+) * Seems to work fine. The original problem triggering this task
|
|
(+) seems to have been caused by an invalid WSDL.
|
|
(+) * Add a task to add more detailed test cases for this.
|
|
|
|
(17.04.2012.)
|
|
|
|
(+) * (Jurko) Merge upstream changes from the original suds development
|
|
(+) repository.
|
|
(+) * (Jurko) Update embedded author values so they do not include non-ASCII
|
|
(+) characters causing problems with the 'distribute' based setup procedure
|
|
(+) which erroneously assumes they have been prepared using the user's local
|
|
(+) code-page.
|
|
(+) * (Jurko) Process received pull requests on BitBucket.
|
|
(+) * (Jurko) Prepare the '0.4.1 jurko 4' release.
|
|
(+) * Update release notes.
|
|
(+) * Follow the documented release procedure.
|
|
(+) * Update version information.
|
|
(+) * Tag in Hg.
|
|
(+) * Upload the source package.
|
|
(+) * Project site.
|
|
(+) * PyPI.
|
|
|
|
NON PRIORETIZED:
|
|
=================================================
|
|
|
|
* Look into the 'suds.null' class.
|
|
* Research.
|
|
* See sources (grep for 'null'), old release notes (README.txt) and
|
|
commit messages.
|
|
* What it is for,
|
|
* Whether it can be replaced with None.
|
|
* If it serves some purpose see if it should be used for identifying
|
|
missing 'choice' structure members as well.
|
|
|
|
* Make it simpler to run Py3 tests.
|
|
* There should be no need for installing suds to a global location
|
|
similar to how this is not needed when running Py2 tests.
|
|
* When done, update related HACKING notes.
|
|
|
|
* Generate suds Python library documentation (epydoc).
|
|
* Research.
|
|
* HTML.
|
|
* PDF.
|
|
* Decide how to generate & distribute this documentation.
|
|
* Update project HACKING notes to note the external software required
|
|
for generating the documentation.
|
|
* Update release procedure to include releasing the documentation.
|
|
|
|
* Research.
|
|
* Test how optional elements under a choice work.
|
|
* There are some comments & an additional patch related to this at
|
|
'https://fedorahosted.org/suds/ticket/342'.
|
|
* Default element values.
|
|
* What they actually mean.
|
|
* From from 'http://www.w3.org/TR/xmlschema-0'.
|
|
* If the element does not appear it is not provided; if it
|
|
does appear and it is empty, its value is the specified
|
|
default value; otherwise its value is that given.
|
|
* How elements with default values inside a choice structure should
|
|
be handled.
|
|
* See what the suds.sudsobjects.Facade class is for.
|
|
* How to implement test cases requiring a test web service.
|
|
* See how to connect to a web service via a Proxy server requiring NTLM
|
|
authentication.
|
|
* There are some projects seen on the net implementing a NTLM
|
|
authentication handler for urllib.
|
|
* Testing this will require implementing a proxy server requiring
|
|
NTLM authentication and a web service or at least a web service
|
|
requiring NTML authentication.
|
|
* Using pylint.
|
|
|
|
* Implement an urllib connection handler allowing connecting using HTTPS
|
|
with client authentication.
|
|
* Prepare a test (will require a test web service).
|
|
* Implement.
|
|
|
|
* Prepare additional test cases.
|
|
* Prepared SOAP operation invocation requests.
|
|
* With choice parameters.
|
|
* Calling a web service operation with no parameters.
|
|
* RPC binding style.
|
|
* Document binding style.
|
|
|
|
* Proces ideas collected from external projects using suds.
|
|
* Alternative choice implementation that would not automatically expand
|
|
all choice function parameters but instead take some more generic
|
|
'choice' object parameter.
|
|
* This object would then know which of its data members is
|
|
'currently specified'.
|
|
* See whether the Marshaller class should know about choice elements and
|
|
not add XML nodes for elements with the value 'None' if they are
|
|
contained directly inside a choice.
|
|
* For some more background information on this see Marshaller
|
|
related release notes & commit messages inherited from the
|
|
original 'suds' development project.
|
|
* See if the class 'suds.xsd.sxbasic.Complex' function sequence() should
|
|
return True if its only child is a sequence node.
|
|
* Typo corrections for the original project web site.
|
|
* 'docuemnt' --> 'document'.
|
|
* 'becuase' --> 'because'.
|