Skip to content

Comments

[36] prepare packaging for initial release#44

Merged
alanking merged 4 commits intoirods:mainfrom
trel:36.m
Feb 20, 2026
Merged

[36] prepare packaging for initial release#44
alanking merged 4 commits intoirods:mainfrom
trel:36.m

Conversation

@trel
Copy link
Member

@trel trel commented Feb 12, 2026

currently set to py3.6 minimum... can discuss

Copy link

@korydraughn korydraughn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this being prepared for an immediate release?

@trel
Copy link
Member Author

trel commented Feb 12, 2026

i want to make sure it passes its own test suite before releasing, but otherwise... yes?

@korydraughn
Copy link

Absolutely on the testing part.

I'm concerned about the impact of significant changes to the interface following the release. Although, it's not at 1.0, so devs have to keep in mind that things can change in big ways.

@trel
Copy link
Member Author

trel commented Feb 12, 2026

test suite passes when run against irods_demo (and manually creating the rodsuser it needs):

$ python test/test_endpoint_operations.py
...
----------------------------------------------------------------------
Ran 33 tests in 14.656s

OK

@korydraughn
Copy link

Hmm, you shouldn't have needed to create any users for the test run. The test suite should've been able to do that using info from config.py.

That's my guess considering how much it's modeled after the HTTP API's python tests.

@trel
Copy link
Member Author

trel commented Feb 12, 2026

right, i'm going to update the test suite to create and destroy the test user

@korydraughn
Copy link

The test suite should already have that covered. Seems something else is at play or the implementation is just wrong.

@korydraughn
Copy link

I think I see the problem.

This is from the HTTP API test suite.

https://github.com/irods/irods_client_http_api/blob/486c1b120bfc39ea405dce56ac2f09174e6536f5/test/test_irods_http_api.py#L126-L142

Here's the python wrapper's test suite.

def tear_down_class(cls):
if cls._class_init_error:
return
if not cls._remove_rodsuser:
return

It's missing the user removal code.

@trel
Copy link
Member Author

trel commented Feb 12, 2026

now does creation/removal.

library itself is very noisy. that's next.

@trel
Copy link
Member Author

trel commented Feb 13, 2026

current output is still noisy when the library cannot do what it was asked...
would like opinions on how to hold 'logging' correctly.

$ python test/test_endpoint_operations.py 
Failed to remove collection '/tempZone/home/new': iRODS Status Code -170000
Failed to remove collection '/tempZone/home/test/folder': iRODS Status Code -170000
Failed to remove collection '/tempZone/home/test': iRODS Status Code -170000
Failed to create collection: '/tempZone/home/new' already exists
Failed to create collection 'tempZone/home/new': iRODS Status Code -358000 - path does not exist: OBJ_PATH_DOES_NOT_EXIST
Failed to create collection '/tempZone/home/test/folder': iRODS Status Code -358000 - path does not exist: OBJ_PATH_DOES_NOT_EXIST
...Failed to retrieve information for '/tempZone/home/modPerms': iRODS Status Code -170000
Failed to retrieve information for '/tempZone/home/modPerms': iRODS Status Code -170000
.Failed to retrieve information for '/tempZone/home/tensaitekinaaidorusama': iRODS Status Code -170000
Failed to retrieve information for '/tempZone/home/aremonainainaikoremonainainai': iRODS Status Code -170000
Failed to retrieve information for '/tempZone/home/binglebangledingledangle': iRODS Status Code -170000
Failed to retrieve information for 'tempZone/home/rods': iRODS Status Code -170000
Failed to remove collection '/tempZone/home/test': iRODS Status Code -79000
.Failed to retrieve information for '/tempZone/home/pods': iRODS Status Code -170000
Failed to retrieve information for '/tempZone/home/rods': iRODS Status Code -170000
..Failed to retrieve information for '/tempZone/home/setPerms': iRODS Status Code -170000
Failed to retrieve information for '/tempZone/home/setPerms': iRODS Status Code -170000
.Failed to remove collection '/tempZone/home/new': iRODS Status Code -170000
Failed to retrieve information for '/tempZone/home/new': iRODS Status Code -170000
Failed to retrieve information for 'tempZone/home/new': iRODS Status Code -170000
....Failed to remove data object '/tempZone/home/rods/parallel-write.txt': iRODS Status Code -808000
.Failed to retrieve information for '/tempZone/home/rods/register-demo.txt': iRODS Status Code -171000
.Failed to retrieve information for '/tempZone/home/rods/new.txt': iRODS Status Code -171000
.Failed to remove 'test_ufs0' as a child of 'test_repl': iRODS Status Code -78000
Failed to remove 'test_ufs1' as a child of 'test_repl': iRODS Status Code -78000
Failed to remove resource 'test_ufs0': iRODS Status Code -808000
Failed to remove resource 'test_ufs1': iRODS Status Code -808000
Failed to remove resource 'test_repl': iRODS Status Code -808000
.......Failed to remove user 'jeb': iRODS Status Code -13000
Failed to create user 'jeb': iRODS Status Code -809000
.......Failed to change type for user 'groupadmin': iRODS Status Code -13000
....
----------------------------------------------------------------------
Ran 33 tests in 15.030s

OK

Copy link

@korydraughn korydraughn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

I think we should drop all of the existing log/print lines. The messages don't reveal anything to the user of the library that they don't already have access to (i.e. error codes, etc).

It would be much better to log the inputs on each call rather than interpreting the results of the operation.

@korydraughn
Copy link

current output is still noisy when the library cannot do what it was asked... would like opinions on how to hold 'logging' correctly.

See https://github.com/irods/irods_client_http_api/blob/486c1b120bfc39ea405dce56ac2f09174e6536f5/test/test_irods_http_api.py#L32-L42

@trel
Copy link
Member Author

trel commented Feb 13, 2026

much quieter now...

.................................
----------------------------------------------------------------------
Ran 33 tests in 15.638s

OK

and a coverage report...

$ coverage report
Name                                          Stmts   Miss  Cover
-----------------------------------------------------------------
irods_http_client/__init__.py                     1      0   100%
irods_http_client/collection_operations.py      161     29    82%
irods_http_client/common.py                       9      0   100%
irods_http_client/data_object_operations.py     478    271    43%
irods_http_client/irodsHttpClient.py             62     16    74%
irods_http_client/query_operations.py            94     60    36%
irods_http_client/resource_operations.py        117     33    72%
irods_http_client/rule_operations.py             35      6    83%
irods_http_client/ticket_operations.py           64     19    70%
irods_http_client/user_group_operations.py      158     42    73%
irods_http_client/zone_operations.py             61     15    75%
-----------------------------------------------------------------
TOTAL                                          1240    491    60%

@trel
Copy link
Member Author

trel commented Feb 13, 2026

$ coverage report
Name                                          Stmts   Miss  Cover
-----------------------------------------------------------------
irods_http_client/__init__.py                     1      0   100%
irods_http_client/collection_operations.py      103     13    87%
irods_http_client/common.py                      22      3    86%
irods_http_client/data_object_operations.py     300    118    61%
irods_http_client/irods_http_client.py           62     16    74%
irods_http_client/query_operations.py            60      6    90%
irods_http_client/resource_operations.py         87      4    95%
irods_http_client/rule_operations.py             29      0   100%
irods_http_client/ticket_operations.py           44      3    93%
irods_http_client/user_group_operations.py      118      2    98%
irods_http_client/zone_operations.py             48      2    96%
-----------------------------------------------------------------
TOTAL                                           874    167    81%

@trel
Copy link
Member Author

trel commented Feb 14, 2026

pretty much done - found a couple bugs, added tests...

$ coverage report
Name                                          Stmts   Miss  Cover
-----------------------------------------------------------------
irods_http_client/__init__.py                     1      0   100%
irods_http_client/collection_operations.py      103      2    98%
irods_http_client/common.py                      21      3    86%
irods_http_client/data_object_operations.py     301     43    86%
irods_http_client/irods_http_client.py           57      6    89%
irods_http_client/query_operations.py            60      6    90%
irods_http_client/resource_operations.py         87      4    95%
irods_http_client/rule_operations.py             29      0   100%
irods_http_client/ticket_operations.py           44      3    93%
irods_http_client/user_group_operations.py      118      2    98%
irods_http_client/zone_operations.py             48      2    96%
-----------------------------------------------------------------
TOTAL                                           869     71    92%

@trel
Copy link
Member Author

trel commented Feb 19, 2026

ruff check is clean.
ruff format is clean.
all tests pass, 92% coverage.

do we need a 'coverage' issue and an 'add ruff' issue?

@korydraughn
Copy link

Yes, new issues are good.

@trel
Copy link
Member Author

trel commented Feb 19, 2026

#46 and #47 created.

@trel
Copy link
Member Author

trel commented Feb 19, 2026

will squash to point at those new issues.

@trel
Copy link
Member Author

trel commented Feb 20, 2026

ready for review. this will go in before #49

Copy link

@korydraughn korydraughn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Received a refresh notification while reviewing this.

Copy link

@korydraughn korydraughn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall this looks good.

Hmm, we don't have any automated testing around this yet. That's for a future PR.

@trel
Copy link
Member Author

trel commented Feb 20, 2026

i have a local shell script that is running the test suite, it's clean and passing. we'll get it automated in the next PR.

@trel
Copy link
Member Author

trel commented Feb 20, 2026

all comments resolved... can squash.

Copy link

@alanking alanking left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems ready to squash to me too

@korydraughn
Copy link

Squash away!

@trel
Copy link
Member Author

trel commented Feb 20, 2026

squashed.

Copy link

@korydraughn korydraughn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pound it if @alanking approves.

Copy link

@alanking alanking left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

# it

@trel
Copy link
Member Author

trel commented Feb 20, 2026

#'d

@alanking alanking merged commit 7f18d94 into irods:main Feb 20, 2026
@trel trel deleted the 36.m branch February 20, 2026 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants