{"id":24649114,"url":"https://github.com/ow2-proactive/proactive-examples","last_synced_at":"2025-05-13T11:06:35.149Z","repository":{"id":37715740,"uuid":"95529911","full_name":"ow2-proactive/proactive-examples","owner":"ow2-proactive","description":"This repository centralizes all the proactive objects (workflows, rules,..)","archived":false,"fork":false,"pushed_at":"2025-04-25T15:39:02.000Z","size":147682,"stargazers_count":6,"open_issues_count":5,"forks_count":34,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-05-13T11:06:23.665Z","etag":null,"topics":["proactive","workflows"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ow2-proactive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-27T07:25:26.000Z","updated_at":"2025-03-07T15:09:03.000Z","dependencies_parsed_at":"2024-02-25T23:37:37.572Z","dependency_job_id":"aa083de9-b0cb-47a7-bc76-26b44910cdd1","html_url":"https://github.com/ow2-proactive/proactive-examples","commit_stats":null,"previous_names":[],"tags_count":151,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fproactive-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fproactive-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fproactive-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fproactive-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ow2-proactive","download_url":"https://codeload.github.com/ow2-proactive/proactive-examples/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253929364,"owners_count":21985802,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["proactive","workflows"],"created_at":"2025-01-25T17:15:47.936Z","updated_at":"2025-05-13T11:06:35.127Z","avatar_url":"https://github.com/ow2-proactive.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ProActive Examples\n\nThis repository includes a sub directory per bucket, in which a metadata file centralizes object-related-information: bucket name, object name, object kind,..\n\nThe aim of this project is to centralize all proactive workflows and other related objects (scripts, images, etc). The workflows from the ProActive Examples project are pushed to Catalog storage inside proactive.\n\n# How to build\nPlease run next command: ``gradlew clean zip`` or ``gradlew clean build``\nThis will generate the `proactive-examples.zip` file inside project's build folder.\n\n# How to test locally\nCopy the genarated proactive-examples.zip file to your `PA_SCHEDULER_HOME/samples` directory.\nStart your proactive distribution. From this point everything should work ok.\nDuring scheduling startup: the proactive-examples.zip archive will be extracted to `PA_SCHEDULER_HOME/samples/workflows/proactive-examples` folder. On the next step the special groovy script will automatically push the workflows from proactive-examples folder to Catalog storage.\nIf you need to retest the extracting and loading of proactive-examples, please remove the `samples/packages.loaded` file. Also to test the filling of catalog storage don't forget to clean database.\n\n## The example of exact commands to test locally on linux:\n```\n1) PA_SCHEDULER_HOME is the path to your local Proactive distribution folder. You need to `cd` to this folder.\n2) rm -f samples/packages.loaded\n3) rm -fr data/*\n4) you need to `cd` into your locally cloned proactive-examples project folder\n5) ./gradlew clean zip\n6) cp build/proactive-examples.zip PA_SCHEDULER_HOME/samples/\n7) go back to PA_SCHEDULER_HOME and start proactive-server\n8) ./PA_SCHEDULER_HOME/bin/proactive-server\n```\n\n# How to add a new package\n\n1) Create a folder with the desired package name (e.g. **TextAnalysis**).\n\n2) Add a `METADATA.json` file into the package (e.g. **TextAnalysis/METADATA.json**).\n\n3) Insert the following JSON structure into the `METADATA.json` file:\n```\n{\n\t\"metadata\": {\n\t\t\"slug\": \"textanalysis\",\n\t\t\"name\": \"Text Analysis\",\n\t\t\"short_description\": \"Text analysis with machine learning and deep learning on Docker\",\n\t\t\"author\": \"ActiveEon's Team\",\n\t\t\"version\": \"1.0\"\n\t},\n\t\"catalog\" : {\n\t\t\"bucket\" : \"ai-machine-learning\",\n\t\t\"objects\" : [\n\t\t\t{\n\t\t\t\t\"name\" : \"text_analysis\",\n\t\t\t\t\"metadata\" : {\n\t\t\t\t\t\"kind\": \"Workflow/standard\",\n\t\t\t\t\t\"commitMessage\": \"First commit\",\n\t\t\t\t\t\"contentType\": \"application/xml\"\n\t\t\t\t},\n\t\t\t\t\"file\" : \"resources/catalog/text_analysis.xml\"\n\t\t\t}\n\t\t]\n\t}\n}\n```\n\n3.1) Update the `metadata` fields:\n\n* * metadata-\u003e**slug** - compact name of the package.\n* * metadata-\u003e**name** - name of the package.\n* * metadata-\u003e**short_description** - short description of the package.\n\n3.2) Update the `catalog` fields:\n\n* * catalog-\u003e**bucket** - Set the name of the bucket(s) for this package. A package can be installed in one or multiple buckets. Therefore, the bucket name can be a String value as in the example above (i.e `\"Machine_Learning\"`) or a JSON array value as in `[\"Bucket_1\",\"Bucket_2\",\"Bucket_X\"]`.\n* * catalog-\u003e**objects** - Add an object of each workflow of the package.\n\nAn example of a catalog object that represents a workflow:\n```\n{\n\t\t\t\t\"name\" : \"text_analysis\",\n\t\t\t\t\"metadata\" : {\n\t\t\t\t\t\"kind\": \"Workflow/standard\",\n\t\t\t\t\t\"commitMessage\": \"First commit\",\n\t\t\t\t\t\"contentType\": \"application/xml\"\n\t\t\t\t},\n\t\t\t\t\"file\" : \"resources/catalog/text_analysis.xml\"\n\t\t\t}\n```\n* * object-\u003e**name** - Name of the workflow.\n* * object-\u003e**file** - Relative path of the XML file of the workflow.\n\n4) Add the XML file(s) of the workflow(s) into `resources/catalog/` inside your package folder (e.g. `TextAnalysis/resources/catalog/text_analysis.xml`).\n\n5) By default all new buckets will be added after all existing buckets inside catalog. So no need by default to add bucket name to `ordered_bucket_list` file.\n\nBut if you need to have strict order of buckets, then please update `ordered_bucket_list` by adding the package name (order by name). The whole list should be stored as 1 line without any spaces or end line character.\n\n#  The rules for added workflows\nAll the workflows added in proactive-examples project have to follow the next rules:\n\n  . Every single workflow of packages distributed by Activeeon (as all the workflows from proactive-examples), MUST HAVE a Workflow Generic Information \"workflow.icon\" with a meaningful Icon\n  . URL of this icon MUST reference a local file\n  . If a workflow has a single task, this task MUST HAVE a Task Generic Information \"task.icon\" with the same icon as the Workflow\n\n* _In case if workflow is not corresponding to specified rules: the test inside the proactive-examples project will fail._\n\nThat's all!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fow2-proactive%2Fproactive-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fow2-proactive%2Fproactive-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fow2-proactive%2Fproactive-examples/lists"}