Skip to content

Commit

Permalink
Merge pull request #87 from klehman-rally/master
Browse files Browse the repository at this point in the history
mods, defect fixes, new features, perf enhancements for 1.2.0
  • Loading branch information
klehman-rally authored Oct 9, 2016
2 parents ed49086 + 71b9312 commit b55b541
Show file tree
Hide file tree
Showing 77 changed files with 3,756 additions and 1,330 deletions.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright © 2010-2015, Rally Software Development Corp. Boulder, Colorado USA
Copyright © 2016, CA Technologies; 2010-2015, Rally Software Development Corp. Boulder, Colorado USA
All rights reserved.

License for pyral (a Python toolkit for the Rally REST API)
Expand Down
83 changes: 54 additions & 29 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ and productive Python language.
The ``pyral`` package provides a smooth and easy to use veneer on top
of the Rally REST Web Services API using JSON.

As of July 2015, the Rally Software Development company was acquired by CA Technologies.
The Rally product itself has been rebranded as 'Agile Central'. Over time, the documentation
will transition from using the term 'Rally' to using 'Agile Central'.


.. contents::

Getting started
Expand All @@ -34,7 +39,7 @@ Obtain the requests_ package and install it according to that package's directio
As of requests-2.0.0, there is support for HTTPS over HTTP proxy via the CONNECT request.
Use of requests-2.x or better is recommended for use with pyral.
The requests_ package can be found via the Python Package Index site (http://pypi/python.org/index).
The most recent release of pyral (1.1.1) has been tested using requests 2.3.0.
The most recent release of pyral (1.2.0) has been tested using requests 2.8.1.


Unpack the ``pyral`` distribution file (zip or tar.gz) and then install the pyral_ package.
Expand All @@ -56,11 +61,11 @@ relevant packages.
::

$ python
Python 2.7.5 [other Python interpreter info elided ...]
Python 2.7.11 [other Python interpreter info elided ...]
>> import requests
>> import pyral
>> pyral.__version__
(1, 1, 1)
(1, 2, 0)



Expand All @@ -87,7 +92,7 @@ Full Documentation
The complete documentation for the Python toolkit for Rally REST API
is in the doc/build/html subdirectory in the repository.
The rendered version of this is also available at
http://readthedocs.org/docs/pyral.
http://pyral.readthedocs.io/en/latest/


Sample code
Expand Down Expand Up @@ -254,42 +259,63 @@ The item names in config files **are** case sensitive.
Prerequisites
-------------

* Python 2.6 or 2.7 (2.7 is preferred)
* Python 2.6 or 2.7 (2.7 is preferred) OR
* Python 3.5 (this package not tested with earlier versions of Python 3.x)
* The requests_ package, 2.0.0 or better (2.0.0 finally includes support for https proxy),
requests 2.3.0 is recommended.
requests 2.8.1 is recommended.

.. _requests: http://github.com/kennethreitz/requests

Versions
--------

1.2.0
Support for Python 3.5.x
Begin deprecation sequence for pinging the Rally server before the connection attempt,
initially with this version, allow option on instantiation to bypass ping.
Added ability to rankAbove, rankBelow, rankToTop, rankToBottom for an Artifact.
Fixed defect where user has no default workspace or project.

addAttachment now correctly handles binary file, attachment size limit increased to 50MB to match Agile Central limit.
Exception generated when running getAllUsers when credentials are for non Subscription/Workspace Administrator has been fixed.
Added ability to work with a single Workspace, which has beneficial performance effect for Subscriptions with a large number of Workspaces.
Modified internal attribute handling to limit calls to get attribute's allowed values to qualifying attribute types.
Added examples/updtag.py script.


1.1.1
- Modified entity.py to allow it to pass back PortfolioItem sub type instances.
- Modified rallyresp.py defect referencing non-existing req_type instance var by changing reference to request_type.
- Modified restapi.py to use user, dropped auth_user.
- Modified restapi.py to be more defensive when user has no associated UserProfile.
- Modified context.py to account for use of Cygwin in Pinger code.
- Modified restapi.py to handle encoding of attachment content to match Rally expectations.
- Modified restapi.py/entity.py to handle querying of SchedulableArtifact instances.
- Modified restapi.py to handle querying and hydrating of PortfolioItem instances more completely.
- Modified restapi.py/entity.py to provide rudimentary support for querying of RecycleBin entries.
- Modified restapi.py and added search_utils.py to provide a search method for pyral Rally instances.
- Modified rallyresp.py to better handle some boundary conditions when response body item counts differ from what is stated in the TotalResultCount.
- Modified context.py to account for scenario where user's default workspace has no projects.
- Modified restapi.py/getProject to return correct project.
Modified entity.py to allow it to pass back PortfolioItem sub type instances.
Modified rallyresp.py defect referencing non-existing req_type instance var by changing
reference to request_type.
Modified restapi.py to use user, dropped auth_user.
Modified restapi.py to be more defensive when user has no associated UserProfile.
Modified context.py to account for use of Cygwin in Pinger code.
Modified restapi.py to handle encoding of attachment content to match Rally expectations.
Modified restapi.py/entity.py to handle querying of SchedulableArtifact instances.
Modified restapi.py to handle querying and hydrating of PortfolioItem instances more completely.
Modified restapi.py/entity.py to provide rudimentary support for querying of RecycleBin entries.
Modified restapi.py and added search_utils.py to provide a search method for pyral Rally instances.
Modified rallyresp.py to better handle some boundary conditions when response body item counts
differ from what is stated in the TotalResultCount.
Modified context.py to account for scenario where user's default workspace has no projects.
Modified restapi.py/getProject to return correct project.

1.1.0
- Introduction of support to use Rally API Key and rallyWorkset (supercedes rallySettings).
- Two relatively minor defects fixed dealing with internalizing environment vars for initialization and in retrieving Rally entity attribute allowed values.
Introduction of support to use Rally API Key and rallyWorkset (supercedes rallySettings).
Two relatively minor defects fixed dealing with internalizing environment
vars for initialization and in retrieving Rally entity attribute allowed values.

1.0.1
- Patch to address defect with Rally WSAPI v2.0 projects collection endpoint providing conflicting information.
Patch to address defect with Rally WSAPI v2.0 projects collection endpoint
providing conflicting information.

1.0.0
- Default WSAPI version in config is v2.0. This version is not compatible with Rally WSAPI version 1.x.
- Adjusted the RallyUrlBuilder (via RallyQueryFormatter) to be more resilient with respect to many more "special" characters (non-alphanumeric).
- Retrieving the meta data uses the v2.0 schema endpoint.
- No longer support a version keyword argument when obtaining a Rally instance.
Default WSAPI version in config is v2.0. This version is not compatible
with Rally WSAPI version 1.x.
Adjusted the RallyUrlBuilder (via RallyQueryFormatter) to be more resilient
with respect to many more "special" characters (non-alphanumeric).
Retrieving the meta data uses the v2.0 schema endpoint.
No longer support a version keyword argument when obtaining a Rally instance.

0.9.4
Adjusted Rally __init__ to accommodate using requests 0.x, 1.x, 2.x versions.
Expand Down Expand Up @@ -355,15 +381,14 @@ Versions

TODO
----
* Rework the distribution to be pip installable
* Investigate permanent location for web-access to rendered documentation
* Dynamically construct the Rally schema hierarchy economically.
* Python 3.3+ support


License
-------

BSD3-style license. Copyright (c) 2010-2015 Rally Software Development.
BSD3-style license. Copyright (c) 2015-2016 CA Technologies, 2010-2015 Rally Software Development.

See the LICENSE file provided with the source distribution for full details.

Expand Down
4 changes: 2 additions & 2 deletions README.short
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Requirements
The pyral package requires the use of Kenneth Reitz's requests package using version 2.0.0 or better.
As of requests version 2.0.0, there is support for HTTPS over HTTP proxy via the CONNECT request.
The requests package can be found via the Python Package Index site (http://pypi/python.org/index).
The most recent release of pyral (1.1.1) has been tested with requests 2.3.0.
The most recent release of pyral (1.2.0) has been tested with requests 2.8.1.


Installation
Expand Down Expand Up @@ -48,5 +48,5 @@ Documentation
Obtain the zip file containing the HTML and CSS files comprising the document set for pyral.
Unzip in a suitable location and point your web browser to the doc/build/html/index.html file

The rendered documentation is also available at http://readthedocs.org/docs/pyral .
The rendered documentation is also available at http://pyral.readthedocs.io/en/latest/

15 changes: 15 additions & 0 deletions VERSIONS
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,18 @@
Added ability to query RecycleBin entries.
Added basic search method to Rally instance.

1.1.2 - February 2016
internal release only
minor style mods for Pinger
fixed handling of proxy value under some edge conditions
exploratory support for Python 3.5

1.2.0 - Oct 2016
support for Python 3.5
allow instantiation option to bypass use of Pinger
changed header to reflect change of company name to CA Technologies
added ranking convenience methods
modified handling of attribute allowedValues for better create/update performance
allow instantiation option to work with only one workspace for better performance for Subscriptions with large number of Workspaces
fix addAttachment handling to allow binary files and increase size limit to 50MB.

16 changes: 11 additions & 5 deletions build_dist.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import zipfile

PACKAGE_NAME = "pyral"
VERSION = "1.1.1"
VERSION = "1.2.0"

AUX_FILES = ['MANIFEST.in',
'LICENSE',
Expand All @@ -36,7 +36,8 @@
'get_attachments.py',
'get_schedulable_artifacts.py',
'add_tcrs.py',
'defrevs.py'
'defrevs.py',
'updtag.py'
]
DOC_FILES = ['doc/Makefile',
'doc/source/conf.py',
Expand Down Expand Up @@ -67,6 +68,8 @@
'test/test_search.py',
'test/test_wksprj_setting.py',
'test/test_attachments.py',
'test/test_workspaces.py'
'test/test_ranking.py'
]

################################################################################
Expand All @@ -80,10 +83,13 @@ def main(args):

zf = zipfile.ZipFile(zipped, 'r')
for info in zf.infolist():
#print info.filename, info.date_time, info.file_size, info.compress_size
reduction_fraction = float(info.compress_size) / float(info.file_size)
#print(info.filename, info.date_time, info.file_size, info.compress_size)
if info.file_size:
reduction_fraction = float(info.compress_size) / float(info.file_size)
else:
reduction_fraction = 0.0
reduction_pct = int(reduction_fraction * 100)
print "%-52.52s %6d (%2d%%)" % (info.filename, info.compress_size, reduction_pct)
print("%-52.52s %6d (%2d%%)" % (info.filename, info.compress_size, reduction_pct))

################################################################################

Expand Down
Binary file added dists/pyral-1.2.0.tar.gz
Binary file not shown.
Binary file added dists/pyral-1.2.0.zip
Binary file not shown.
Binary file modified doc/build/doctrees/environment.pickle
Binary file not shown.
Binary file modified doc/build/doctrees/index.doctree
Binary file not shown.
Binary file modified doc/build/doctrees/interface.doctree
Binary file not shown.
Binary file modified doc/build/doctrees/overview.doctree
Binary file not shown.
2 changes: 1 addition & 1 deletion doc/build/html/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: ab43c34d713cfed30f66981a3090babd
config: bc481c91bc67b7eba85aa1ce56db2b8a
tags: 645f666f9bcd5a90fca523b33c5a78b7
Loading

0 comments on commit b55b541

Please sign in to comment.