-
Notifications
You must be signed in to change notification settings - Fork 5
/
ChangeLog
660 lines (612 loc) · 33.8 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
CHANGES
=======
v1.0.5
------
* Added archiveOnAppError to the job model. Closes #361
* Disable default capture of Github config in auth init
* Updated change log
v1.0.4
------
* Update CLI image to use python:3.7 base. Bump version string in image ENV
* Updated usage docs. Rebuilt and reformatted all RST docs
* Implemented actors execs stop which maps to actors.deleteMessages(). Closes #255
* Closes #316 - 40x errors now surface correctly
* Bumped AgavePy to 1.0.0a11
* YAPF formatting
* Actor name and output directory must now be specified as options in 'actors init' workflow
* Fixed merge
* Closes #355 Bearer is only passed if not None, fixing the use of Nonces by direct clients
* Fixed issue where users could provide invalid boolean to 'tapis config set' and end up locked out of the CLI without hand-editing the .env file
* Update docs with CICD use case changes documented
* It is now possible to specifi --client-name to tapis auth init to manually name and manage a client
* Allow bypassing first-run workflow by setting TAPIS\_CLI\_NO\_PROMPT=1
* Fix empty environment, job, git, grants sections when reading from rc file
* Closes #354 It is not possible to fix the empty profile issue under Tapis v2, but at least the CLI now warns the user that certain variables were not resolved
* It is not possible to fix the empty profile issue under Tapis v2, but at least the CLI now warns the user that certain variables were not resolved
* adding actors init command
* Force docker config to populate even if not building or pushing container
* Testing temp fix
* Apps and actors deploy now properly reads [docker] organization, namespace, and username, which have all been used at some point in building 'deploy' tooling
* Now possible to disable git and registry configs when running auth init. Closes #352
* Documented apps init
* Working implementation of 'apps init' with support for listing templates
* Added support for apps init as per #350
* Working on it.
* Implemented [docker]registry field in ini file. Added support to 'actors deploy' for it. Fixed a couple of errors in 'actors deploy' where empty [docker] fields should not have been allowed
* Swapped actor and alias ID for 'tapis actors aliases create'
* Added better code documentation. Added support for [environment] stanza in actors deploy workflow. Disable push when not building a new container in actors deploy
* Bumped changelog
* Added support for REACTOR\_CRON\_SCHEDULE and REACTOR\_CRON\_ON to reactor.rc file format
* Can confirm cron features (and, incidentally use\_container\_uid) can be specified in project.ini
* Implemented create/update for cron features
* Added slots for cron features from Abaco 1.7
* Fix SSH key parsing
* SystemsUpdate can overwrite JSON creds from command line options
* 1) changed FILES\_UUID to JOBS\_UUID in jobs output 2) changed syntax to supress warnings
* Added support for aliases update workflow. Closes #331
* Closes #332 - Replace direct usage of slugify.slugify with a utils#slugify, a shim that supports any of the three Python slugify packages
* remove strftime(%s) for getting the current time in "epoch" format because it is not supported on Windows
v1.0.3
------
* Docs update
* Bumped AgavePy
* Change over to agavepy 1.0.0a9
* Added support for disabling SSL verification duing auth init
* Added override support for SSL verification
* Added config var support to disable SSL warnings
* Move to AgavePy development branch
* Bump Changelog
v1.0.2
------
* backwards compatibility to populate docker.organization in app.ini from docker namespace, username, or organization
* resolving merge conflict
* patch to fix uploads for case that the bundle matches the deploymentPath
v1.0.1
------
* Mark GitHub and Registry access configuration as optional
* Empty .env file now created if it does not exist
* Fixed issue where empty values in settings that need to be redacted caused an IndexError
* Updated docs to reset release notes for 1.0.0
v1.0.0
------
* Tweaked Docker image build
* New authors
* New author mappings
* Updated formatting
* Moved default branch to 'main' from 'master'
* updating apps deploy to handle working dir option
v1.0.0a11
---------
* Updated docs
* Implemented support for legacy agave.\* and date\_time.\* template variables
* Tapis apps update now validates specified appId as intended
v1.0.0a10
---------
* Added nonce support to more actors commands. Leaving it off management command until requested
* Implemented ability to pass nonces to select Tapis actors commands
* Fixed issue in TaccApisBearer where direct client was not getting initialized when api\_server and/or token were passed
* Fixed an issue preventing some uses of 'apps deploy'
* Fixed issue where apps deploy failed to detect missing project.ini. Enforce presence of app name and version in project configuration file for apps deploy
* Fixed missing import preventing tapis actors submit from working
v1.0.0a9
--------
* docs
* Implemented working tapis actors deploy
* The actorid module implements cacheing of the the current project's actor identifier
* Implemented reactor.rc loader which can return either a configparser or dict, just like our ini file loader
* Turn off Docker overrides in apps deploy. Clarify difference between app and system grants in apps deploy help text
* Migrated repository name to tapis-cli from tapis-cli-ng
* Job outputs list and download now handle .dotfiles as intended
* Files list and upload commands now handle dotfiles. Turns out I was not honoring the contents of the --all CLI option. Files upload and download now only have an --exclude option to address the potential for conflict between include and exclude patterns. May be able to solve in future by making them mutually exclusive
* WIP: Starting actors deploy
v1.0.0a8
--------
* Tweaks based on user testing
* Needed to instantiate ActorIdentifier before calling its get\_identifier function
* Updated docs
* Formatted code
* Implemented tapis actors create|update
v1.0.0a7
--------
* Added support for specifying keys and passwords via CLI in 'systems create' and 'systems update'. Updated docs. Closes #315
* Added documentation for how we avoid BrokenPipe errors
* Added tapis jobs outputs log JOB\_UUID command. Closes #312
* Bump agavepy to latest alpha
* postits create now accepts (and translates to http) agave:// files URI. Closes #311
* Apps deploy now grants system roles when granting private app permissions
* Namespaced version, label, and description options in apps init. This fixes the conflict with tapis --version. Closes #313
* Implemented support for setting and unsetting default systems
v1.0.0a6
--------
* Removed codepaths using GitPython for now
v1.0.0a5
--------
* Requirements work
v1.0.0a4
--------
* Relaxed requirements
* Fixed case where prompt\_accept was failing when encountering empty input
v1.0.0a3
--------
* Prep for PyPi test release
* Added a per-service clock offset, settable in any class derived from TapisApiClient via the TIMEZONE string property. Applied this to 'jobs' and validated effectiveness
* Improved actors docs
* Implemented 'actors run' as subclass of 'actors submit'. Supports writing to screen as well as an output file
* Fixed wrong invocation of get\_identifier()
* Updated docs with new build system
* YAPF
* Fixed metavars in tapis auth init
* Refactor actors positional params to use ServiceIdentifiers so we can implement validation. Also DRYs up the code a bit
* Settings commands help is updated now
* Rework mixins to have consistent metavars
* Removed debug code
* Removed debugging property
* Help support for 'tapis jobs init'
* Added help support for 'tapis info \*' commands
* Legacy help for postits
* Legacy help for notification
* Legacy help for profiles
* Completed legacy help for metadata
* Completed legacy help for systems
* Completed legacy help for abaco commands
* Completed legacy command set for files
* Completed legacy command help for jobs
* Added TAPIS\_CLI\_SHOW\_LEGACY\_HELP to turn off display of legacy commands
* Completed legacy help for apps commands
* Implemented LegacyCommmandHelp mixin which lets us remind users what the legacy Bash commands were. We will be able to turn this off with a CLI setting
* Bump agavepy version to solve version conflicts
* It is now possible to order fields in a list display by setting TapisModel.ARGS\_ORDERED. If a field is not listed in ARGS\_ORDERED, it will be added to the field set in the order defined by TapisModel.SEARCH\_ARGS -after- fields in ARGS\_ORDERED are added
* Forgot 'actors list'
* Since abaco doesn't have limit and skip options in its APIs, replaced ActorsFormatMany with ActorsFormatManyUnlimited to disable those options in the actors CLI commands
* Completed interactive mode for jobs init
* WIP - add interactive mode to job templating
* WIP tapis jobs init command
* AgavePy from PyPi
* Moved --no-verify to auth override options
* utils#prompt now safely exits on Keyboard interrupt
* Pinned requirements ahead of release
* Freeze requirements
* Use forked cookiecutter
* Formatting
* Fixed failing unit tests
* Improved tapis auth init workflow to support switching and do better error reporting
* Improved tapis apps init and general refresh behavior
* Initial working of actors execs logs; actors submit
* Updated to use new top-level Agave.refresh() method for refreshing Oauth token
* Initial working of actors submit, closes #257,closes #258, closes #259, closes #260, closes #265, closes #269, closes #270, closes #271
* Added filters to other list commands
* Remove un-needed import
* Added filtering to aliases list
* Refactored the way that FILTERABLE\_KEYS are implemented so that they are accesible in GlobListFilter's help test
* Moved filter into a named flag for consistency with rest of CLI
* Added filterable keys to other actors models
* Implemented filter for actors list. Closes #301
* Added help links and stub code for supporting multiple Git server variants
* Pruned out code stubs for clients/services/gitlab and clients/services/registry
* Implemnted support for tapis jobs stop. Closes #298
* Regenerate docs
* Separated CookieCutter options into their own section. Clarified help text for project name, label, version, and description
* Turned off automatic first commit
* Added output messages to tapis apps init
* Removed manual resolution of app exec and deployment systems; Changed default asset directory name to be defined by a module global
* Added rendering of app.execution\_system and app.deployment\_system to UploadJSONTemplate
* Targeted AppsInit and AppsDeploy to subclass AppsFormatManyUnlimited which removes --limit and --offset options as they are not relevant to these command outputs
* Lifting over progress on apps deploy; Add support for default execution and storage system template variables and config settings
* WIP. Support for TAPIS\_CLI\_PREF\_EXECUTION\_SYSTEM and TAPIS\_CLI\_PREF\_DEPLOYMENT\_SYSTEM
* turn off debugging
* Default bundle name is 'assets' now; Allow for empty grants section in app.ini
* Templating is now more robust to empty config data structures
* Absence of Dockerfile now forces container build/push workflow actions to be skipped over
* Githelper functions now return None on exception
* Initial working of nonces create, aliases create
* Initial working of nonces list,show,delete
* Initial working of aliases delete,list,show ; execs list,show ; workers delete,list,show
* WIP docs for updated tapis auth init. Clarified workflow and added outputs from git and registry server configuration
* WIP: apps init docs
* Updated formatting
* Private settings values are redacted when displayed. They are still stored in plaintext, though, as encryption at rest is an additional scope of work
* Disable use of .env in current working directory
* Basic onboarding for Registry and Git Server options added to tapis auth init
* Fixed issue where I had set a default to an actual bool not its string representation
* Automate create and commit git repo
* Moved slugify logic into init so we have knowledge of the project directory name at runtime
* First pass at getting an apps cookiecutter to work
* Formatting
* Removed local copy of cookiecutter template
* Add cookiecutter dependency from git URL until the new release comes out that supports directories
* Added settings for specifying Docker c=registry, namespace, username, password to promote automation of registry actions
* This commit closes #264,closes #263,closes #262
* Initial working of actors pems list
* Initial working of actors pems commands
* Implemented Tapis CoC. Closes #291
* Added stub for actors in docs
* Initial working of tapis actors delete
* Initial working version of tapis actors show
* Initial working version of tapis actors list
* WIP docs for adding new commands
* Added new author. Added reference to RTFD. Bumped dev status classifier
* Swapped back to using mocks
* WIP
* Create design.md
* Updated release notes
* Make showing empty variables optional
* Working on project docs
* Fixed error listing variables
* App name and version are dash-delimited
* Stub for apps deply in docs
* First working implementation of tapis apps deploy
* Docs for a2 release
* Simplified README a bit since the details can be found in the canonical docs
* Formatting megapass
* Added inline links to help docs
* Tweaks to badge and requirements
* Added stub for pypi release to Makefile
* Rebuilt docs with better organization and detail
* Added first-run screen. Closes #242
* Implemenetd support for writing out a template .ini file; Closes #245
* Moved informative commands under 'info'; Closes #240
* Renamed settings command to config. Closes #241
* Tweak to imports and module structure for jobs
* Renamed metadata top-level command to meta. Closes #244
* Tweak formatting
* Change help text for ini file option
* Use remote filename for includes and excludes
* Added support for --include and --exclude; Fixed issue with single-file downloads; Added support for destination directory via -W
* Cleaned up file and folder metavars
* Fixed metavar for ini, json, and directory options
* WIP: apps-deploy
* Tweak to sample ini file and the help for dot\_notation
* Update project.ini demo file to illustrate use of interpolation
* two-level variable names are now expanded out to section.option notation when variables are listed
* Added 'tapis variables' to show current vars and values available to the templating engine. Added test for assembling all variable names and keys
* Updated metadata create to remove custom parser config stage
* Added template rendering to (apps,jobs,systems) (create|update)
* Improved support for template rendering
* Unit tests and fixes discovered while writing them
* Example ini file added to test data
* Added a bit of specificity to a templating unit test
* First-pass implementation of a config parser that will be used to augment variables in the templating system
* Test data directory
* Added support for default public, private storage and exec systems. Made passed\_vals override discovered or default values. Added unit tests
* Added posix#cwd variable
* Stubbed in template dictionary support to TapisApiClient
* First commit for template support. Support for settings and a few classes of userland variables. Can render a string document with embedded variables/
* Update Docker image label with new version
v1.0.0a1
--------
* Updates to files docs to contain new commands
* Updated AUTHORS
* Updated TESTING
* Added in-place render for files listings. Closes #236
* Cleaned up help string wording for consistency
* Implemented 'tapis files move' command
* Actually implemented the new create/update behavior in code, not just docs
* Revised metadata create and update to make CLI args and JSON file loads exclusive
* Updated help text for two Metadata commands
* Turn off coverage report on failures
* Test settings module and commands
* Formatting changes to some unit tests
* Test the fixtures themselves
* Added some fixtures for working w Cliff apps
* Delete .readthedocs.yml
* Update readthdocs config to try and install tapis\_cli before building
* Rebuild requirements to get RTFD working
1.0.0a0
-------
* Few fixes identified while getting docs working
* Docs now build and are even readable and informative. Closes #235
* Updated TESTING
* Enabling only the notifications commmands that we trust (list, show, delete)
* Added support for shortening long fields
* Final refactors for postit identifiers to use new ServiceIdentifier features
* Refactored apps commands to use new AppIdentifier
* Refactor ServiceIdentifier to support mulitple instances per command. Revise jobs command to use a JobsUUID based on this new implementation
* Added parallel formatting
* Clarified default help text for TapisEntityUUID class
* Implemented notifications add|update
* WIP: Implement notifications commands
* Refactored Jobs to use revised JobsUUID mixin
* Refactored metadata to use new MetadataUUID mixin
* Refactored to introduce an intermediary TapisEntityUUID class
* Added note about postits commands
* Code formatting
* Implemented the 'postits' command set, including rudimentary validation
* Updated TESTING.md
* Added support for specifying app name and version when publishing. Clarified the help text for specifying public app execution system
* Added support for specifying app name and version when publishing. Clarified the help text for specifying public app execution system
* Added 'tapis settings get|set|unset'
* Fixed some details around error reporting
* TaccApiDirectClient now can report API server error messages
* fixed residual instances of 'identifer'
* Fixed 'identifer' in jobs/outputs\_download.py
* Wrap curlify call in Exception handler to catch various serialization issues in curlify
* Moved settings commands into subpackage. Added tapis settings get and simple validation of setting names
v0.4.1
------
* Fixed crash in Py2 environment with no .env file
v0.4
----
* Added some release notes
* Fixed residual super() calls in files and metadata mixins
* Added a basic Python/OS report to Google Analytics via tapis\_cli.et.phone\_home
* Updated TESTING with latest jobs commands
* Implemented jobs hide/unhide along with a data model for a simple Message response for when the API does not return a data object for parsing
* Updated Testing document to describe latest changes
* Added job pems management commands
* Added validation to metadata UUIDs
* Added validation of job UUIDs
* Added metadata permissions management. Added initial unit tests for all metadata commands
v0.3
----
* Added some more tests
* Tapis files download now allows a destination to be set. Also, sorted out behavior of downloading directories, implmenting rsync-like trailing slash behavior. Updated reporting to use 'messages' and 'bytes\_transferred' instead of 'warnings' and 'data' for clarity
* Added lines-of-code counter target to Makefile
* Begin stubbing in unit tests for each apps command, starting with validation of their description
* Updated systems commands to work w Python2 and leverage the improved inheritance mechanism
* Added note about Python2 support to TESTING.md
* Updated apps pems \* commands for Python2 and adopted new inheritance scheme
* Moved to Python2/3 super() syntax
* Replaced ; comment char with # since Python2 version of setuptools does not seem to recognize the former
* Replaced calls to os.makedirs with the Python2/3 compatible tapis\_cli.utils#makedirs
* Reactivated 'profiles search'. Made 'profiles show <user>' expect a username not a general identifier. Updated all commands for Python2 and to use new inheritance scheme
* Updated metadata commands for Python2 and improved inheritance
* Implemented Python2 versions of jobs outputs list|download. This includes a backport of Path from Python3 via the pathlib2 package
* Updated files pems commands to use new inheritance scheme
* Ported file management commands to use new inheritance scheme
* Refactored jobs commands (save for outputs \*) to make better use of inheritance
* Revised apps commands to make better use of inheritance
* Linting
* Changed take\_action\_defaults to update\_payload to clarify its role in the command processing workflow
* Renamed SearchableCommand.headers to render\_headers to clarify its role in the command processing workflow
* Renamed before\_take\_action to preprocess\_args to clarify what the function actually does
* Removed note about needing to support Python2 since the print\_stderr function now works as intended on that platform
* Reworked taccapis.v2 clients to use Python2-style super() calls
* Reworked apim commands to use commands.taccapis.formatter base classes
* Moved TaccApisCommandBase and kids to commands.taccapis.formatters, adding SearchableCommand as a parent class. This simplifies use of the headers function that translates a command's model into parameters and headers
* Added longrun decorator since we don't need to validate the cache speedup every single time we run tests
* Migrated seconds, msec, usec, nsec functions to use arrow, thus avoiding Python2's lack of datetime.datetime.timestamp
* Added support for second virtualenv and the config file for unit test credentials
* Stubbed in test files for other submodules
* Unit tests showing that both serializers can work with the backported lru\_cache, at least in a trivial case
* Added test to validate Python2 and 3 behavior of TaccApiDirectClient.build\_url
* Added some helpful fixtures for building unit tests
* Revert from using \*args inside build\_url for Python2 compatibility. Need to add a unit test
* Added a Python2-compatible version of lru\_cache. Still needs to be functionally tested
* Fixed majority of Python2/Python3 import path incompatibilities. Added unit tests to validate import paths for all command submodules
* Fixed Python2 failure with print\_stderr
* Removed deprecated settings names and use of the ENV\_PREFIX
v0.2
----
* Updated TESTING docs
* Refactored dotenv loading into a submodule
* Settings properties now map to env variable names directly. Tested most core functions and they work OK after the update
* Updated TESTING doc
* Deactivated unused settings. Reworked seetings to honor AgavePy's default tenant ID setting
* Updated UploadJsonFile mixin to be able to read from STDIN. This fixes #199 for all cases where a JSON upload is supported
* Completed implementation of metadata update and updated TESTING docs with examples of all metadata CRUD operations
* Suport for metadata create, delete
* Small refactor to introduce a MetadataIdentifier mixin and to allow the ServiceIdentifier class and its subs to have a validate\_identifier() method
* Implemented files mkdir. Closes #108
* Closes #204
* Fix var name typo in \_local\_temp\_filename
* Added curlify
* Update requirements.txt
* Updated TESTING to reflect files pems command status
* Refactored files pems commands to use a shared pems\_list helper which in turn fixes an issue with the files service returning a spurious result
* WIP files pems (drop, grant, revoke)
* Working versions of files pems list and files pems show
* Changed display value for Permissions to TRue/False instead of X and ''
* Refactord apps pems commands to use new Permission model instead of AppPermission
* Refactored taccapis.model into a submodule
* Username mixin added
* Stubbed in additional metadata commands
* Added Zenodo badge
v0.1
----
* Updated TESTING doc
* Mailmap
* Jobs Outputs Download command now supports include and exclude wildcards
* Badges. Install instrux
* Sample config file now illustrates relation between TAPIS\_CLI\_SHOW\_CURL and TAPIS\_PY\_SHOW\_CURL
* TAPIS\_CLI\_SHOW\_CURL now defaults to the current value of TAPIS\_PY\_SHOW\_CURL
* Accept @eho-tacc PR to add include support to jobs outputs download
* Updated env variable to reflect value defined in AgavePy
* Updated TESTING doc with details on new curl command function
* Formatting
* WIP: All command using TaccApiDirectClient can now render a curl equivalent to STDERR when TAPIS\_CLI\_SHOW\_CURL is set to true. Making this work for AgavePy will require implementing the same functionality in agavepy.swaggerpy"
* Attempt automatic container image build
* Disable Travis builds that are breaking due to Travis platform issues
* Updated ExcludeFiles and IncludeFiles argument builders to allow params to be specified multiple times insted of specifying a list. This makes the position of the --include and --exclude options agnostic to position when more than more pattern is specified
* WIP to get date searches working for metadata. for now, disabled search on 'created' and 'lastUpdated' fields
* WIP on metadata search by date
* Added details about new/fixed search options in apps, jobs, systems
* Improve support for --include flag
* Date searches for jobs plus general quality improvements for all search params
* Boolean searches work now. Available search modifiers now shown in help
* Updated TESTING with new info on impersonation tokens
* Disabled passing API server via CLI
* TaccApisBearer now honors a custom access token when passed
* Added support for colored text as set of utils function
* tokens create can now issue an impersonation token, but the other commands don't all honor the -z option
* Add --include option
* Prepend destination dir to exclude file paths
* Updated TESTING
* Working version of files-history
* files dete command
* Updated TESTING
* Implemeted files delete
* Fixed import path
* Updated contents of TESTING document
* Throw Exceptions when a placeholder option is passed
* WIP: tapis files upload is ready to test
* Rename 'data' to 'rows' in FilesOptions#sort\_table
* Small refactor to let Files\* commands use a series of mixins to set their arguments. Changed the metavar for --api-server, --token, --limit, and --offset to reflect their types Made --sort-size and --sort-time mutually exclusive in FilesOptions mixin
* files download now reports total data downloaded
* More details on files download command
* Updated testing doc with latest on jobs-outputs and files functionality
* Working implementation of 'jobs outputs download'
* Extended Tapis Direct client to be able to get raw bytes
* WIP jobs outputs download - help view works
* Working implementation of jobs-output-list
* Hide system since it's implicit
* Make specifying a value optional for FilePath mixin
* Minimal port of files.helpers to jobs. Very un-DRY
* Added support for sync mode and an excludes parameter to 'files download'
* WIP files download command
* Added wrapper for print-reporting to STDERR
* Implemented recursive download with support for atomic operations
* Rebuilt helpers.\_walk to return entire record, which allows downstream formatting and other actions on the walked result
* Lifted over some code from bacanora to implement list, walk, and various stat functions
* Formatting
* Added tenacity depedency. Brought in hashable from bacanora library as 'hashcache' to provide LRU caching of complex or custom objects
* Minimal implementation of 'files show' and 'files list'
* Lifted in from a branch
* Added note in README about expired clients failing to be re-initialized by 'tapis auth init'
* Update requirements.txt
* Fixed typo in install instructions. Thanks \@wonaya
* Move Docker build into deployment script. Fixed setup.cfg comments that broke in Py2.7 versions of setuptools
* WIP: TravisCI build/push Docker image
* Updated README to fix links
* Updated README
* Cleaned up README typos
* silence 'fatal not a git repo' message when not working in a git repo
* Removed warning about missing auth subsystem from README
* Updated w details on profiles commands
* Added image release target
* Finishing touches on Docker image
* Additional final prep for testing
* Fixed import paths in Gitlab
* Updated docs
* Removed deprecated services.orig directory
* Added Tox support
* Getting tox to work and a Docker image to build
* WIP: Build working Docker image
* Automated AUTHORS and ChangeLog from setuptools and pbr
* Working version of 'tapis auth init' and 'tapis auth show'. Fixed 'tapis auth tokens create' to use utils#prompt() for password
* Added some utils to help with client generation and auth init workflow
* Moved before\_take\_action into ParserExtender then implemented verbose->json behavior in JsonVerbose using super()
* Jobs-show can now emit a submittable JSON doc. Clients create can now prompt for a password. Small refactor of TapisModel and its subs to de-duplicate code
* Stubbed in auth commands
* YAPF
* Working token create and refresh (tho the class setups are bit funky)
* Yapf formatting
* Enabled metadata list, show, search after refactor
* Updated setup to include all systems commands
* Refactor systems-\* commands to use new TapisEntity and SearchableCommand APIs. Added all role management commands
* Fixes to some base classes re: inheritance behavior
* A few fixes to apps commands uncovered while implementing systems and jobs commands
* Refactored jobs commands to use new TapisEntity and formatter APIs. Added resubmit
* Refactored systems commands to use new TapisEntity and formatter APIs
* Refactored Jobs\* commands. Implemented jobs-submit, jobs-resubmit
* Refactor Jobs classes and formatters to use new TapisEntity API
* Activated various apps commands
* Closes #15
* Closes #12
* Closes #161
* Closes #10
* Closes #160
* Closes #159
* Implemented app pems drop (but disabled as the API call is broken)
* Rebuilt apps.formatters and implemeted updated apps.models
* Completed refactor of TapisEntity and SearchableCommand to support various apps use cases
* Refactored Command classes, Mix-Ins, and API client base classes
* Enable loading Agave client from local cache, with overrides allowed via parsed args
* Added "sessions token refresh" to update current access token
* Added new TaccApis base class TaccApisWithRefreshFormatOne which includes a --refresh-token option in the command
* Now including the actual Tapis classes
* Refactored commands.taccapis.v2.<command>.formatters
* Fixed name of JSON field defining public apps and now search works
* Commented settings#all\_settings()
* Implemented the 'settings list' command
* Added example show command and usage of -v to get JSON response
* Example apps search result
* Added warning about auth subsystem
* Updated home-page field in setup.cfg to point at TACC-Cloud version of the repository
* Added warning about auth subsystem
* Groundwork for Gitlab
* Refactored commands to use tapis\_cli.clients.services.mixins classes
* Moved common Command mixins to their own module
* Removed redundant setting of id\_display\_name
* Changed to correct API name for metadata
* Implemented profiles-search and profiles-list
* Closes #125 Closes #150
* Implemented metadata-list save for its query for associationIds. Closes #91, #92, and #87
* Stubbed in more commands
* Ran yapf
* Implemented systems-publish and systems-unpublish
* Implemented systems-enable and systems-disable
* Added systems-create and systems-update
* Added test data for apps create/update
* Refactor to implement JSON uploads, requirement for a service identifier, and automatic expansion to JSON in verbose mode using multiple inheritance
* Added actors init
0.0.4
-----
* Updated docs. Still erroring tho
* Documented more modules and packages
* Stubbed in additional command definitions
* Moved government perpetual license to a NOTICE file so the license is unpolluted
* Added full complement of command stubs
* Added a check to avoid creating closed issues of identical title
* Apps enable, disable, history commands
* Added a utility script to populate Github with new commands as they are defined in setup.cfg
* Added a utility script to populate Github with new commands as they are defined in setup.cfg
* Added helper to quickly return all active entrypoints
* Revised how app-level verbosity is detected at formatting time, making it a property of the formatter
* Added 'id' field to systems history model
* Implemented apps-history
* Example simple management action
* Stubbed in subpackages for each service's models
* Updated to reflect latest implemented command set
* Laid groundwork for files APIs with some model work
* Refactored to use a models subpackage. Added jobs-history and jobs-pems-list commands
* Refactored to use a models subpackage
* Refactored systems to use a models subpackage. Implemented systems-queues-list, systems-history, systems-roles-list commands
* Added jobs-history
* Default to using --fit-width
* Merged in systems
* Added systems status for consistency w job status. Returns brief form of one record
* Added import for JobsStatus
* jobs-status
* Improved command help string
* Working instance of jobs list, search, show
* Fixed help test for systems commands
* Added systems list, search, show
* Debugging why humanize is not working in list/search table views
* Reformatted
* The apps search, list, and show functions are largely done
* WIP
* WIP
* Commented placeholders for other commands in setup.cfg
* Just like that. Stubbed in vocabulary currently used by the tacclab CLI
* Make BSD 3-Clause recognizable by Github's parser
* Updated command module help strings to reflect their scope and service versions in a consistent fashion
* Updated command module help strings to reflect their scope and service versions in a consistent fashion
* Client-side commands moved to commands directory
* Regenerated Python API docs to reflect commands structure and updates to settings
* Implemented commands directory organization
* Reformatted commmands module with yapf
* Added namespaced Tapis CLI variables
* Move back to command names that map to service names
* Break out types of HTTP Clients
* Enabled Python API documentaion to build as well
* Moved cliff autodocs to their own doc page
* Stubbed in mocks for sessions, apps, jobs
* Try build again
* Generate docs/requirements.txt
* Back out dynamic title, authors, etc from docs/config.py
* Changed module import path
* RTFD
* Standalone docs/requirements file
* Add back docs
* Sphinx support
* Added yapf section to setup.cfg
* YAPF support
* Updated README some more
* Updated README some more
0.0.2
-----
* Improved README w getting started details
* Refactored to use metadata in setup.cfg
* Does not use metadata 2.0 standard and thus pbr and setuptools cannot build a CLI. This is a commit of work before trying a refactor to resolve the issue
* Demo unit tests
* Define application skeleton