- 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_by
andpackage_suuid
- Implemented option for exclude version of run filters (e.g.
status__exclude
) - CLI command
askanna run list
now includes a filter option forstatus
- Defined
status
andtrigger
values using aLiteral
type - Expanded test coverage and added test utils with date-time helpers
- Removed deprecated
GetRunsSDK
- Switch from
pytz
tozoneinfo
and 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.name
i.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
uuid
info anymore and theshort_uuid
is renamed tosuuid
. - Renamed API endpoints to follow the new config of the AskAnna Backend.
- Update dataclass for projects
- Extend ProjectGateway with
packages
method to get a list of project packages - Fix
askanna push
with the push-target set to an AskAnna Frontend URL - Fix
askanna create --push
so 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.0
the 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_member
to dataclassesWorkspace
andProject
to 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
permission
to dataclassProject
to list permissions the user has for ths particular object. - Added
visibility
to dataclassesWorkspace
andProject
to indicate whether this is aPUBLIC
orPRIVATE
workspace or project.
- Added
notifications
to dataclassesJob
andProject
. We validate whether notifications are setup correctly. - Introducing
.askannaignore
using the same syntax as.gitignore
to exclude files from pushing to AskAnna.
- Add dataclass
RunStatus
to fix starting a new run
- Add environment to
Run
dataclass
- 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
RunInfo
adding fieldsenvironment
,duration
,result
,started
- Deprecation of dataclass fields on
RunInfo
:runner
,deleted
track_metric
now also supportsrange
type 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.get
with the option to filter onjob_name
and to order oncreate
date - 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.yml
with an informative check on the time zone. - Update dataclasses of API responses where we removed the
UUID
andtitle
. We now only show the short UUID andname
. - In API request add
askanna-agent
andaskanna-agent-version
to 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 --version
and 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 add
interactive, 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
tzdata
in the default container-image to make it possible to set the time zone of the run environment. - Fix retrieval of runs with
askanna.run.get
withinclude_metrics=True
on.
- 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.yml
to 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-utils
instead 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 init
more 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 --push
where 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_name
to 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.yml
allow output/artifact to specify which files & directories you want to save
askanna create --template
will allow you to use your own template to create a new project- Fix
askanna create
so it will actually create a project - Update
askanna init
so it uses to same flow asaskanna create
- Fix issue in
askanna init
which now generates a validaskanna.yml
project 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 artifact
toaskanna artifact add
- Adding
askanna artifact get
- Adding
askanna variable list
to get a list of variables in askanna - Adding
askanna variable change
to modify the value of a variable
- A default confirm question to confirm that you want to replace the current code package
- Added
askanna push --force
to 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