|
| 1 | + |
| 2 | +/Users/lehki03/projects/RallyRestToolkitForPython has the current dev state as branch labeled 'hacktonia' . |
| 3 | + the above has .git/config whose remote "origin" goes to RallySoftware/RallyTools/RallyRestToolkitForPython |
| 4 | + which is the repo where things get officially released as long as I have a klehman-rally Github account. |
| 5 | + |
| 6 | +/Users/lehki03/dev/github/pyral is where dev should be done, but that didn't happen in 1.5.0 dev cycle. |
| 7 | + the above has .git/config whose remote "origin" goes to klehman-rally/pyral repo (I call this mine...) |
| 8 | + usually what happens is that I do my own PR in this repo, then I PR in the RallySoftware Github org |
| 9 | + to get into master the elements that are ready for release. |
| 10 | + |
| 11 | +have to set these things in your environment |
| 12 | + to be able to run tests |
| 13 | + |
| 14 | + working directory /Users/lehki03/projects/RallyRestToolkitForPython |
| 15 | + |
| 16 | + use pyenv, get 3.6.11 installed and use that as your baseline (follow on with 3.7 and/or 3.8 later) |
| 17 | + |
| 18 | + # set up for use of pyenv |
| 19 | + eval "$(pyenv init -)" |
| 20 | + |
| 21 | + pyenv shell 3.6.11 |
| 22 | + |
| 23 | + |
| 24 | + set these env vars: |
| 25 | + PYTHON=python3.6 |
| 26 | + export PYTHONPATH=".:/Users/lehki03/python:/Users/lehki03/projects/RallyRestToolkitForPython" |
| 27 | + PYTEST=/Users/lehki03/.pyenv/versions/3.6.11/lib/python3.6/site-packages/pytest.py |
| 28 | + |
| 29 | + |
| 30 | +################################################################################################ |
| 31 | + |
| 32 | +while addressing Issue #157 opened on Aug 28, 2019 by Kimudai94 |
| 33 | + ---- rally.get() returns wrong results for a query with char "&" |
| 34 | + |
| 35 | +in the 1.4.2 code |
| 36 | + when you setProject to a name containing a '&' char the url is |
| 37 | + |
| 38 | + 'https://rally1.rallydev.com/slm/webservice/v2.0/PortfolioItem/Feature?fetch=Name,FormattedID&workspace=workspace/41529001&project=project/334329159&projectScopeUp=false&projectScopeDown=false&pagesize=500&start=1' |
| 39 | + |
| 40 | + when you include the Project.Name in the criteria and the name has a '&' char in it... |
| 41 | + |
| 42 | + 'https://rally1.rallydev.com/slm/webservice/v2.0/PortfolioItem/Feature?fetch=Name,FormattedID&query=(Project.Name%20%3D%20%22R%2526D%22)&workspace=workspace/41529001&project=project/334329159&projectScopeUp=false&projectScopeDown=false&pagesize=500&start=1' |
| 43 | + |
| 44 | + the url quoting encodes the '%26' as '%2526' (as the original '&' char was forced to '%26' by the query builder code). |
| 45 | + The string of '%2526' is incorrect and the Rally WSAPI machinery isn't likely to evaluate per the user intent |
| 46 | + |
| 47 | +I commented the line in query_builder.py (line #195) that replaced the '&' char with '%26' in the criteria string. |
| 48 | + |
| 49 | + |
| 50 | +################################################################################################ |
| 51 | + |
| 52 | +Release Notes for 1.5.0 |
| 53 | + |
| 54 | + De-branded from 'CA Agile Central' to Rally again! |
| 55 | + Several defects related to custom PortfolioItem sub-types have been fixed. |
| 56 | + Now when creating or updating a custom PortfolioItem sub-type the |
| 57 | + return value will be a valid pyral instance for the sub-type. |
| 58 | + Fixed defect related to broken capability to retrieve attachments. |
| 59 | + Fixed defect related to inability to add a feature to a collection. |
| 60 | + Ability to ping Rally server before attempting connection has been dropped. |
| 61 | + Many sys admin and network admins have disabled the ping protocol for security concerns |
| 62 | + Minor documentation fixes about item attribute navigation and adding to collections. |
| 63 | + |
| 64 | + |
| 65 | + |
| 66 | +Hackathon preso |
| 67 | + |
| 68 | + Slide #1: Borrow from April hackathon and update |
| 69 | + |
| 70 | + Slide #2: Get an image of a lava flow (see if you can add text on top 'pyral is on fire!' |
| 71 | + |
| 72 | + o talking point (pyral has 105 customers using it and is the highest volume integration) |
| 73 | + has been the most used integration by volume since 2015 |
| 74 | + hasn't had more than 2 days of attention since 2017 |
| 75 | + Slide #3 |
| 76 | + Take a screenshot of current-issues (above the cut-line) |
| 77 | + o talking point |
| 78 | + Several issues were defects around dealing with custom PortfolioItem sub-types |
| 79 | + Two issues were related to query criteria and result handling |
| 80 | + Some adjustments to documentation to clarify proper use. |
| 81 | + Research into other issues deemed low priority or "never fix" (On-Prem). |
| 82 | + |
| 83 | + Slide #4 Peaceful meadow shot |
| 84 | + pyral 1.5.0 is ready for release! |
| 85 | + |
| 86 | + |
| 87 | + --- slide 1 |
| 88 | + |
| 89 | + Hi, I'm Kip Lehman and this is my winter 2021 Hackathon read-out. |
| 90 | + |
| 91 | + For my first hackathon over 10 years ago I developed a Python |
| 92 | + interface to Rally via the WSAPI. |
| 93 | + |
| 94 | + |
| 95 | + --- slide 2 polar regions |
| 96 | + |
| 97 | + I called it 'pyral' in the whimsical hope that an easy to use Pythonic means |
| 98 | + of accessing the Rally WSAPI would go viral (or at least be useful to |
| 99 | + some external customers). |
| 100 | + |
| 101 | + The first hackathon was essentially proof of concept but 2 more |
| 102 | + hackathons got it to a place where it was released for availability |
| 103 | + for use by anyone with a Rally subscription. |
| 104 | + |
| 105 | + --- slide 3 pyral is hot! |
| 106 | + |
| 107 | + Since then, the usage has grown steadily. Somewhat surprisingly, in terms |
| 108 | + terms of WSAPI request volume, this package is the most used integration |
| 109 | + element that we track from the WSAPI request headers (via Splunk). |
| 110 | + As of last October, there were 105 unique subscriptions using this package. |
| 111 | + |
| 112 | + The last major work on pyral was done nearly 4 years ago and since then the |
| 113 | + package has had less than 2 days with any attention besides reading emails with |
| 114 | + feature requests and issues that were posted in in the Gitub repo for this package. |
| 115 | + |
| 116 | + --- slide 3 working issues list |
| 117 | + |
| 118 | + For this hackathon, I wanted to assess the issues that have been |
| 119 | + added in Github by the user community and address the ones that had |
| 120 | + the most potential impact. |
| 121 | + |
| 122 | + I triaged the list of issues across the dimensions of issue type (Bug, Feature, |
| 123 | + question, etc.) and impact/severity and whether or not I could reproduce the |
| 124 | + reported behavior. |
| 125 | + |
| 126 | + I ended up with a list of around 20 issues, prioritized them and set to work |
| 127 | + repro'ing and fixing/implementing the top half of those. |
| 128 | + |
| 129 | + The items on the bottom half were requests that had low impact. There were some |
| 130 | + related to use in an On-Prem environment, some were questions for behavior that the |
| 131 | + WSAPI either doesn't support any more or never did and there were a couple |
| 132 | + asking for behavior that was dysfunctional. |
| 133 | + |
| 134 | + The major item was figuring out a way to define and use classes related to custom |
| 135 | + PortfolioItem sub-types. This consumed an inordinate amount of time but I ended |
| 136 | + up with an approach that was workable, fairly compact, supportable and very |
| 137 | + localized in the code. |
| 138 | + |
| 139 | + I updated the development environment to use a more recent version of Python |
| 140 | + (3.7, which is still a couple of minor releases behind the current release). |
| 141 | + |
| 142 | + There were only minor issues in getting the test suite to pass with the |
| 143 | + modifications that were done. |
| 144 | + |
| 145 | + ---- slide 4 |
| 146 | + |
| 147 | + I was very happy to update the code and docs to de-brand from 'CA Agile Central' |
| 148 | + back to Rally! I'm ready to publish the 1.5.0 release later this week. |
| 149 | + |
| 150 | + Thanks for listening. |
| 151 | + |
0 commit comments