OpenCatapult v1.0.0-beta3 Release

Hi Friends,

We are thrilled to announce that we have released the OpenCatapult v1.0.0-beta3. Please find the following items to see what has changed on this release.

New job task type: Custom Task

Up until the previous release, we have eight types of job task which we can use to define a job, i.e., Generate, Build, Clone, Merge, Deploy, Deploy DB, Publish Artifact, and Test tasks. However, we found that there are cases where we need to define an action which is not fit to see as one of the job task types.

In this release, we introduce a new job task type to overcome the issue: Custom Task. We can use this type to define any action which we think is not appropriate to identify as one of the existing ones.

Custom Task is similar to other types where it can accept a set of input and can return a set of values. What makes it different is it doesn’t have specific input requirements. For example in Build task, it requires input for “Source Location” and “Output Artifact Location”. However, in Custom Task, it doesn’t have specific input requirement as such, except the common configs like “Required Services,” “Continue When Error,” “Working Location,” etc. If the Task Provider used in the Common Task requires some more input values, we can include them in the “Additional Configs” dictionary.

Custom Task also doesn’t return any specific values. For example in Build task, it is expected to return “Output Artifact.” However, in Custom Task, all return values should be wrapped in the general “Output Values” dictionary.

New task provider type: Generic Task Provider

Task Provider holds an essential role in the OpenCatapult system because it provides the real implementation of a job task. Although it is relatively easy to create, however, we found that it is too overwhelmed to create a new one just for a simple action task, like copying files, etc.

In this release, we introduce a new type of Task Provider: Generic Task Provider, with Polyrific.Catapult.TaskProviders.GenericCommand as its default Task Provider. This new Task Provider allows users to define script commands which will run on a command line tool. This way, users can just use it directly to execute some actions without having to create a new Task Provider in advanced.

Improvements on Web UI

  • Move configs from environment.ts to config.json. It allows users to define different configs for different environments in the deployment time. Build once, deploy everywhere.
  • Fix issues in IIS or Azure App Service host. We add web.config which allows us to define rewrite rule and type mapping.
  • Add quick add menu on the right corner page. This way, we can quickly direct to the new pages from any page in the Web UI.
  • Add summary text on pages or sections to help users understand the context.
  • Add loading indicator for better user experience.
  • Improve styling

Improvements when deleting a project

  • Add a specific job definition to run when a project is being removed. This job definition contains any tasks that must be executed on post-project deletion. The sample-devops project template includes this job definition by default.
  • Allow removal of the external resources via the job definition
  • Refresh “Recent Project” list to remove the deleted project

Improvements on build scripts

  • Resolve the race condition issue (Build Script Race Condition Issue)
  • Fix problems when entering the connection string to allow retry attempts when the input was invalid.

Improvements on API swagger

  • Enable swagger on the Development environment only
  • Allow the users to make authorization before making request calls on secure endpoints

Add avatar on user profile

Users can have an avatar picture by setting it from the profile page. After being set up, the avatar for the current login user will also appear on the top corner page.

Other bug fixes

  • Fix issue where Basic users didn’t have permission to view their newly created project
  • Fix new user confirmation delivery for the one added via project member feature

Please find this v1.0.0-beta3 release either in the source code or from the release website. And as always, please let me know what you think.


1 Like