You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+21-26Lines changed: 21 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,11 +8,17 @@
8
8
9
9
SPDX-License-Identifier: MIT
10
10
11
-
version="0.26.2"
11
+
version="0.27.0"
12
12
13
13
What's New?
14
14
===========
15
15
16
+
02-Dec-2024
17
+
* Added examples dncompare, validate, trsreader (this is VERY UNFINISHED!) - see the code in the examples folder
18
+
* Fixed oslcquery working from a specific config using -F
19
+
* Fixed oslcquery when trying to select a scoped attribute like `oslc:rm:uses{dcterms:identifier}` wasn't working - note that DN doesn't appear to support retreiving primary text of all artifacts in a module using `oslc:rm:uses{jazz_rm:primaryText}` - text isn't returned
20
+
* Some (unfinished!) internal preparation for demonstrator of the new in 7.1 type query capability https://jazz.net/wiki/bin/view/Main/DNGTypeAPI
21
+
16
22
11-Dec-2023
17
23
* Added _validate.py to provide the Validate API, available on all apps (may need to restrict this to just ccm/gc/qm/rm?)
18
24
* Added examples/validate.py as an example of using the validate API - for most options refer to oslcquery readme
@@ -153,45 +159,34 @@ This code provides examples of using various ELM APIs:
153
159
154
160
* DN
155
161
156
-
** Process - `elmclient`
157
-
158
-
** OSLC including OSLC Query - `oslcquery.py` for user use, internally `oslcqueryapi.py` implements OSLC Query parsing and querying
159
-
160
-
** Module Structure - `dn_simple_modulestructure.py` - currently external to `elmclient`
161
-
162
-
** ReqIF - `reqif_io.py` - currently reqif API is external to `elmclient`
163
-
164
-
** Reportable REST (incomplete for qm and ccm) - `represt.py` for user use, internally for each application in `_rm.py`, `_ccm.py`, `_qm.py`
165
-
162
+
* Process - `elmclient`
163
+
* OSLC including OSLC Query - `oslcquery.py` for user use, internally `oslcqueryapi.py` implements OSLC Query parsing and querying
164
+
* Module Structure - `dn_simple_modulestructure.py` - currently external to `elmclient`
165
+
* ReqIF - `reqif_io.py` - currently reqif API is external to `elmclient`
166
+
* Reportable REST (incomplete for qm and ccm) - `represt.py` for user use, internally for each application in `_rm.py`, `_ccm.py`, `_qm.py`
166
167
167
168
* ETM
168
169
169
-
** Process - `elmclient`
170
-
171
-
** OSLC including OSLC Query - `oslcquery.py` for user use, internally `oslcqueryapi.py` implements OSLC Query parsing and querying
172
-
173
-
** Reportable REST (incomplete for qm and ccm) - `represt.py` for user use, internally for each application in `_rm.py`, `_ccm.py`, `_qm.py`
174
-
170
+
* Process - `elmclient`
171
+
* OSLC including OSLC Query - `oslcquery.py` for user use, internally `oslcqueryapi.py` implements OSLC Query parsing and querying
172
+
* Reportable REST (incomplete for qm and ccm) - `represt.py` for user use, internally for each application in `_rm.py`, `_ccm.py`, `_qm.py`
175
173
176
174
* EWM
177
175
178
-
** Process - `elmclient`
179
-
180
-
** OSLC including OSLC Query - `oslcquery.py` for user use, internally `oslcqueryapi.py` implements OSLC Query parsing and querying
181
-
182
-
** Reportable REST (incomplete for qm and ccm) - `represt.py` for user use, internally for each application in `_rm.py`, `_ccm.py`, `_qm.py`
176
+
* Process - `elmclient`
177
+
* OSLC including OSLC Query - `oslcquery.py` for user use, internally `oslcqueryapi.py` implements OSLC Query parsing and querying
178
+
* Reportable REST (incomplete for qm and ccm) - `represt.py` for user use, internally for each application in `_rm.py`, `_ccm.py`, `_qm.py`
183
179
184
180
185
181
* GCM
186
182
187
-
** Process - `elmclient`
188
-
189
-
** OSLC including OSLC Query - `oslcquery.py` for user use, internally `oslcqueryapi.py` implements OSLC Query parsing and querying
183
+
* Process - `elmclient`
184
+
* OSLC including OSLC Query - `oslcquery.py` for user use, internally `oslcqueryapi.py` implements OSLC Query parsing and querying
190
185
191
186
192
187
Reporting issues, and contributing
193
188
==================================
194
189
195
190
If you find a problem with elmclient you can report it on the github issues https://github.com/IBM/ELM-Python-Client/issues - note this is just for issues with elmclient code. All other issues will likely be closed immediately.
196
191
197
-
You can do a pull request to propose updates - there's no guarantee of if/when/how these will be merged but we certainly hope to benefit from contributions!
192
+
You can do a pull request to propose updates - there's no guarantee of if/when/how these will be merged but we certainly hope to benefit from contributions!
Copy file name to clipboardExpand all lines: elmclient/_queryparser.py
+12-3Lines changed: 12 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -244,7 +244,7 @@ def do_oslcand(self, s):
244
244
245
245
defterm(self, s):
246
246
# if RHS (or for in any of the items in RHS list) is a valueidentifier without a prefix, this uses the lhs to resolve the valueidentifier, i.e. as context for attribute value names
247
-
# or if RHS is an untyped literal then LHS is used to appy ^^type:name to it to make it a typedliteral
247
+
# or if RHS is an untyped literal then LHS is used to apply ^^type:name to it to make it a typedliteral
248
248
# check if first elem is a property identifier, and if so see if value(s) are identifiers if so resolve them in context of the first identifier (e.g. for enum values)
249
249
logger.info( f"Term {type(s)}{s}" )
250
250
identifier, op, value=s
@@ -539,10 +539,11 @@ def scoped_term(self, s):
539
539
540
540
# from https://tools.oasis-open.org/version-control/svn/oslc-core/trunk/specs/oslc-core.html#selectiveProperties
541
541
# with slight tweaks to implement identifier
542
+
# NOTE that for oslc.select NAME can be terminated by { or } to allow for nested properties
# result = enum_uri # this makes ccm queries for e.g. rc:cm:type=Defect not work - ccm doens't like getting a URI - # unfortunately I can't remember why I added this line :-(
parser.add_argument("-P", "--password", default=PASSWORD, help=f"User password default '{PASSWORD}' - can be set using env variable OUERY_PASSWORD - set to PROMPT to be prompted at runtime")
parser.add_argument("-U", "--username", default=USER, help="User id - can be set using environment variable QUERY_USER")
74
-
parser.add_argument('-W', '--cachecontrol', action='count', default=0, help="Used once -W erases cache then continues with caching enabled. Used twice -WW wipes cache and disables caching. Otherwise caching is continued from previous run(s).")
77
+
# parser.add_argument('-W', '--cachecontrol', action='count', default=0, help="Used once -W erases cache then continues with caching enabled. Used twice -WW wipes cache and disables caching. Otherwise caching is continued from previous run(s).")
75
78
parser.add_argument('-Z', '--proxyport', default=8888, type=int, help='Port for proxy default is 8888 - used if found to be active - set to 0 to disable')
Copy file name to clipboardExpand all lines: elmclient/examples/trsreader.py
+6-2Lines changed: 6 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,17 @@
6
6
#
7
7
# Read and process TRS base and changelog pages
8
8
#
9
-
# NOTE: UNFINISHED WORK IN PROGRESS!
9
+
#################################################
10
+
#################################################
11
+
# NOTE: VERY VERY UNFINISHED WORK IN PROGRESS!
12
+
#################################################
13
+
#################################################
10
14
#
11
15
# NOTE this requires that your user has the license trs_consumer assigned, which allows access to the TRS.
12
16
# __DON'T__ reassign a license from lqe_user to yourself because then LQE will stop working!
13
17
#
14
18
# If you have the trs license you can access all the content in the TRS,
15
-
# BUT note that the TRS basically contains URLs pointing at e.g. DOORS Next resources, so there are no text of artifacts, etc., but you can say that a resource is in a certain configuration
19
+
# BUT note that the TRS basically contains URLs pointing at e.g. DOORS Next resources, so there is no text of artifacts, etc., but you can say that a resource is in a certain configuration
16
20
# AND note that retrieving the data from DOORS Next is constrained by the access right of your user
0 commit comments