- Add support for Python 3.12 and drop support for Python 3.7
- Add created_by info to Workspace & Project dataclasses
- Added new run filters:
status,trigger,created_byandpackage_suuid - Implemented option for exclude version of run filters (e.g.
status__exclude) - CLI command
askanna run listnow includes a filter option forstatus - Defined
statusandtriggervalues using aLiteraltype - Expanded test coverage and added test utils with date-time helpers
- Removed deprecated
GetRunsSDK - Switch from
pytztozoneinfoand removed pytz from dependencies - Change the build system from Wheel to Hatch
- Switch from Flake8 to Ruff
- Introduce parallel matrix for GitLab CI/CD to simplify the config
- Add release related jobs to GitLab CI/CD
- Add '_at' suffix to datetime fields in dataclasses to support the new AskAnna Backend API response
- Fix creating a project with description value None
- Update documentation references
- Align printing of object info via CLI
- Update ArtifactInfo dataclass
- Add info option to CLI commands
- Support new query options in both Python SDK and CLI. A.o. you can now search for objects.
- Extend run CLI commands, a.o. to retrieve a list of runs or info of a run
- Support new Cursor Pagination setup from the AskAnna Backend
- Refactor to support the new setup of the AskAnna Backend API endpoints
- New subcommands to get run status & log
- All commands and SDK modules now have the change & remove/delete option.
- The remove prompt will by default ask for confirmation before removing the object.
- Refactor API endpoints, and align gateway methods, SDK modules & CLI commands. The goal is to make separate components that perform a single task. This should make it easier to maintain the AskAnna CLI - Python SDK.
- There is now a separate SDK module with the code necessary for the AskAnna Python SDK. This is related to the above change.
- Dataclasses now also contain relation types as a dataclass used within the main dataclasses. For example, to get
the project workspace name, you can now use
project.workspace.namei.s.o.project.workspace.get("name).
The following changes are related to breaking changes in the AskAnna Backend:
- The API response does not provide the
uuidinfo anymore and theshort_uuidis renamed tosuuid. - Renamed API endpoints to follow the new config of the AskAnna Backend.
- Update dataclass for projects
- Extend ProjectGateway with
packagesmethod to get a list of project packages - Fix
askanna pushwith the push-target set to an AskAnna Frontend URL - Fix
askanna create --pushso that after creating a new project you automatically push an initial version
- Update runinfo dataclass to support AskAnna Backend v0.17.0
- Cleanup code & files
- Implement new rest auth URLs
- Simplify login in case you're already signed in
- Add experimental GitPod config
- For tracking metrics & variables detect type of list and store the specific list type (
list_integer,list_string, etc.) - Extend support for tracking metrics & variables with data type Numpy
- Fixed a bug that Numpy array could not be stored as a metric/variable
- Add create and remove workspace to SDK and CLI
- Add delete to project SDK
- Change project & workspace now also supports changing visibility via SDK and CLI
- Change dataclass Workspace to support the changed response of AskAnna Backend
- Make the requirements less strict, so it's easier to integrate AskAnna in your existing Python environment.
- Let tzlocal work with newer version of the tzlocal package
- Add job to publish master and version tags to public repos
- Added login argument 'url' making it possible to log in on different AskAnna environments using the web URL
- Fix: after successful login, you now get a success message i.s.o. a fail message
- Updated AA_REMOTE and tests to align with new config setup
- Refactor server & project Config. If you upgrade from a previous version
0.14.0the AskAnna CLI will automatically update your AskAnna config file to the new format. - We fixed a bug in askannaignore where in some circumstances it did not read the ignore file.
- Add bandit, Black and isort to the pre-commit stack.
- Added
is_memberto dataclassesWorkspaceandProjectto denote whether the user is member of the object. Users can now list public workspaces and workspaces, so this flag can indicate the membership. - Added
permissionto dataclassProjectto list permissions the user has for ths particular object. - Added
visibilityto dataclassesWorkspaceandProjectto indicate whether this is aPUBLICorPRIVATEworkspace or project.
- Added
notificationsto dataclassesJobandProject. We validate whether notifications are setup correctly. - Introducing
.askannaignoreusing the same syntax as.gitignoreto exclude files from pushing to AskAnna.
- Add dataclass
RunStatusto fix starting a new run
- Add environment to
Rundataclass
- Updated endpoints changes from
/v1/jobrun/to/v1/runinfo/ - We now register an result upload before uploading. This is change required by API
v0.7.0. - Updates on the dataclass from
RunInfoadding fieldsenvironment,duration,result,started - Deprecation of dataclass fields on
RunInfo:runner,deleted track_metricnow also supportsrangetype as a value to track- We publish our images also on DockerHub starting from now
track_metric(s)andtrack_variable(s)now also support date typelist- Extended
askanna.runs.getwith the option to filter onjob_nameand to order oncreatedate - When you start a run using the job name via the Python SDK, we now use the project SUUID from the config as a default filter.
- If you run a Python script from an AskAnna project directory, we also load the project SUUID in the config.
- Remove deprecated CLI command
askanna artifact add - Try to check if an update is available, but don't crash if we cannot run the check
- Add functionality to get run results:
- CLI:
askanna result get - Python SDK:
askanna.result.get()andaskanna.result.get_content_type()
- CLI:
- Refactor how we zip artifact paths. The new function fixes an issue with saving individual files. Also, it has some built in protection that you cannot zip the full filesystem as an artifact.
- Add run utils function to push the artifact, and prepare for removing
askanna artifact add
- Give runs a name and description when you start them. More info in the documentation.
- Extend validation of
askanna.ymlwith an informative check on the time zone. - Update dataclasses of API responses where we removed the
UUIDandtitle. We now only show the short UUID andname. - In API request add
askanna-agentandaskanna-agent-versionto inform the platform with which tool and version the request is done. - Added a check if a new version of AskAnna is available. For example, if you run
askanna --versionand a new version is available, we show an informative message how you can update. - Removed deprecated functions and files.
- Updated dependencies and removed the superfluous dependency
appdir. - Make
askanna variable addinteractive, so you don't have to look-up the project SUUID to add a variable. - Changing the name of a workspace or project can now also be done via the CLI.
- Install
tzdatain the default container-image to make it possible to set the time zone of the run environment. - Fix retrieval of runs with
askanna.run.getwithinclude_metrics=Trueon.
- Added track_variable and track_variables: from now on you can track variables for your runs. Also run environment variables are tracked.
- Added validation for
askanna.ymlto check job names and schedule definitions - Change name and description of a job via the CLI (
askanna job change) or Python SDK (askanna.job.change)
- Adding track_metric and track_metrics: from now on you can track metrics for your runs, both ran on AskAnna servers and local runs.
- Regrouped commands used for the askanna-runner under it's own command
askanna-run-utilsinstead ofaskanna - Improvements in the client on how the AskAnna SDK communicates with the AskAnna API
- Update PyYAML library from 5.3 to 5.4.1
- Make
askanna initmore friendly to use - Refer to open source project on GitLab.com
- Tweak configuration and README
- Update references to the new documentation of AskAnna
- Added push-and-run via
askanna run --pushwhere you first push your code and then trigger a run - Installed gcc in the default image we run on AskAnna
- Added developer option to specicy on which AskAnna remote you want to login
- Changes in parameter names for Python SDK (run.status and variable modules). If you used the 0.5.x version of the AskAnna Python SDK this version can break your code.
- Fix that you can run a job with name and additional options
- Use
askanna run job_nameto run a job - Start of AskAnna Python SDK with support for:
- starting a run
- getting the status of a run
- management of project variables
- listing jobs
- Refactor code base to support SDK and remove some unused functions
- In
askanna.ymlallow output/artifact to specify which files & directories you want to save
askanna create --templatewill allow you to use your own template to create a new project- Fix
askanna createso it will actually create a project - Update
askanna initso it uses to same flow asaskanna create
- Fix issue in
askanna initwhich now generates a validaskanna.ymlproject config file - Improvements regarding feedback and error messages when something goes wrong
- Fix issues regarding generating AskAnna config file
- Use Python to create a tmp directory so it works on all Python supported platforms
- Adding variable management for CLI
- Drop support for Python 3.5 because we use
dataclasses - Reorganisation of CLI setup in the code base to prepare for SDK development
- Reorganize how authentication and requests are made for all API communication
- Adding logout for CLI
- Improve artifact download to be more reliable in case of download failures
- Changed
askanna artifacttoaskanna artifact add - Adding
askanna artifact get - Adding
askanna variable listto get a list of variables in askanna - Adding
askanna variable changeto modify the value of a variable
- A default confirm question to confirm that you want to replace the current code package
- Added
askanna push --forceto skip the confirm question - Added an optional argument to push add a message
askanna push -m "push message" - If no push messages provided, but a commit message is available, use the last commit message
- Changing how .askanna.yml is created
- Adding AskAnna functions for running in job
- Adding first test to check on push-target
- Download payload with CLI
- First commit to repo
- Basic function to do
askanna login - First version of AskAnna code package