From a081fa82b985a5bb418d9ff42baee7d7d4b5f92a Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Wed, 27 Mar 2024 10:35:29 -0400 Subject: [PATCH 01/31] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a3bbfee6..d7c293a7 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ The Software Ecosystem Dashboard for Arm is available at https://www.arm.com/dev This repository is maintained by Arm and contains the source files for the Arm Software Ecosystem Dashboard, providing information on software packages that work on Arm. This data is sourced from Arm and third parties. While Arm uses reasonable efforts to keep this dashboard accurate, Arm does not warrant (express or implied) or provide any guarantee of data correctness due to the ever-evolving software landscape. -# How To Contribute: +# How To Contribute and Request: * To contribute new package data (or improve existing package data): * Fork this repo and submit pull requests; follow the step by step instructions in [Contribution guidelines](/contrib.md). From e1c2257ad411e1e5ad3c3ceb37c6aa34f91547d8 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Wed, 27 Mar 2024 10:36:50 -0400 Subject: [PATCH 02/31] Update content-deploy.yml --- .github/workflows/content-deploy.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/content-deploy.yml b/.github/workflows/content-deploy.yml index 6debd60c..a5224347 100644 --- a/.github/workflows/content-deploy.yml +++ b/.github/workflows/content-deploy.yml @@ -4,7 +4,9 @@ name: content-deploy # Controls when the workflow will run on: - + # Triggers the workflow on push to production branch + push: + branches: [ production ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: From 0ddd236e45f81654ea45a1bcfd7fed36c346e2f6 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Wed, 27 Mar 2024 10:03:08 -0500 Subject: [PATCH 03/31] Create link-checker.yml --- .github/workflows/link-checker.yml | 33 ++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/link-checker.yml diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml new file mode 100644 index 00000000..f7844b8b --- /dev/null +++ b/.github/workflows/link-checker.yml @@ -0,0 +1,33 @@ +name: link-checker + +# Controls when the workflow will run +on: + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + check-external-links: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + fetch-depth: 0 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: 3.11.3 + + - name: Check external HTML links + continue-on-error: true + run: | + pip install linkchecker + linkchecker --no-robots --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing From 347cb417d14428a4b431f2bf730cdf6d66f67748 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Wed, 27 Mar 2024 10:08:06 -0500 Subject: [PATCH 04/31] Update link-checker.yml --- .github/workflows/link-checker.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index f7844b8b..7075d294 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -27,7 +27,6 @@ jobs: python-version: 3.11.3 - name: Check external HTML links - continue-on-error: true run: | pip install linkchecker linkchecker --no-robots --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing From d4710c8cda3c613c65f6db5272ff3ddd44fd2f64 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk Date: Wed, 27 Mar 2024 12:14:58 -0500 Subject: [PATCH 05/31] added contribution examples --- archetypes/commercial_packages/index.md | 28 +++++++-------- archetypes/opensource_packages/index.md | 34 +++++++++---------- assets/css/eco-dashboard.css | 1 + .../partials/eco-dashboard/info-top.html | 10 ++++++ .../partials/package-display/row-sub.html | 2 +- 5 files changed, 43 insertions(+), 32 deletions(-) diff --git a/archetypes/commercial_packages/index.md b/archetypes/commercial_packages/index.md index c6662370..2a9e795c 100644 --- a/archetypes/commercial_packages/index.md +++ b/archetypes/commercial_packages/index.md @@ -1,24 +1,24 @@ --- -name: -vendor: -category: -description: -product_url: -works_on_arm: -release_date_on_arm: +name: # The short name of the package. Examples: 'Docker', 'CoreDNS', or 'Snyk Container'. +vendor: # The company name that offers this package. Examples: 'Snyk', or 'Oracle'. +category: # The category this package belongs in. Must select a category (not the group name) from the package_category_list.yml at the top of the directory structure. Examples: 'Operating System', or 'Databases - noSQL'. +description: # One complete sentence description of what this package is, ending in a period. If it has an open source equivalent, include what makes this commercial package different. +product_url: # The URL that acts as the homepage for this product. Must start with 'https://'. +works_on_arm: # Boolean. It is 'true' if this package works on arm, and 'false' if not. +release_date_on_arm: # The date, in MM/DD/YYYY format, when this package first worked on Arm. Example: '04/21/2024'. optional_info: - homepage_url: - support_caveats: - alternative_options: + homepage_url: # The URL that brings the reader to the package homepage to learn more high-level info about it. Must start with 'https://'. + support_caveats: # If the package requires anything out of the ordinary to work on Arm, such as extra library installs or varying support across common Linux OSes, explain here. + alternative_options: # Only valid if 'works_on_arm' is false. Provide the name of one or more packages that address the same problem a developer is trying to solve. getting_started_resources: - arm_content: - vendor_announcement: - official_docs: + arm_content: # URL of a getting started resource that lives on an Arm digital domain such as learn.arm.com or community.arm.com. Must start with 'https://'. + vendor_announcement: # URL of the blog / support notes from the vendor that announced Arm support. Must start with 'https://'. + official_docs: # URL to a section of the docs that specifies installing on Arm if present, otherwise list the general 'getting started' docs. optional_hidden_info: - other_info: + other_info: # Not displayed on the website. Use this to list comments that will make package maintenance easier. --- diff --git a/archetypes/opensource_packages/index.md b/archetypes/opensource_packages/index.md index 3eabc95e..ebd4fac5 100644 --- a/archetypes/opensource_packages/index.md +++ b/archetypes/opensource_packages/index.md @@ -1,30 +1,30 @@ --- -name: -category: -description: -download_url: -works_on_arm: +name: # The short name of the package. Examples: 'Docker', 'CoreDNS', or 'Snyk Container'. +category: # The category this package belongs in. Must select a category (not the group name) from the package_category_list.yml at the top of the directory structure. Examples: 'Operating System', or 'Databases - noSQL'. +description: # One complete sentence description of what this package is, ending in a period. If it has an open source equivalent, include what makes this commercial package different. +download_url: # The URL where a developer can download the most recent version of this package. Must start with 'https://'. +works_on_arm: # Boolean. It is 'true' if this package works on arm, and 'false' if not. supported_minimum_version: - version_number: - release_date: + version_number: # The first version that enabled support for Arm, often found in package release notes or news. + release_date: # The date, in MM/DD/YYYY format, when this supported minimum version number was released. Example: '04/21/2024'. optional_info: - homepage_url: - support_caveats: - alternative_options: + homepage_url: # The URL that brings the reader to the package homepage to learn more high-level info about it. Must start with 'https://'. + support_caveats: # If the package requires anything out of the ordinary to work on Arm, such as extra library installs or varying support across common Linux OSes, explain here. + alternative_options: # Only valid if 'works_on_arm' is false. Provide the name of one or more packages that address the same problem a developer is trying to solve. getting_started_resources: - arm_content: + arm_content: # URL of a getting started resource that lives on an Arm digital domain such as learn.arm.com or community.arm.com. Must start with 'https://'. partner_content: - official_docs: + official_docs: # URL to a section of the docs that specifies installing on Arm if present, otherwise list the general 'getting started' docs. arm_recommended_minimum_version: - version_number: - release_date: + version_number: # Leave blank, populated by Arm internal only. + release_date: # Leave blank, populated by Arm internal only. optional_hidden_info: - release_notes__supported_minimum: - release_notes__recommended_minimum: - other_info: + release_notes__supported_minimum: # Not displayed on the website. Store the URL of the release notes that first listed Arm support that justifies the listed minimum supported version above. + release_notes__recommended_minimum: # Leave blank, populated by Arm internal only. + other_info: # Not displayed on the website. Use this to list comments that will make package maintenance easier. --- diff --git a/assets/css/eco-dashboard.css b/assets/css/eco-dashboard.css index 91990afd..8868e514 100644 --- a/assets/css/eco-dashboard.css +++ b/assets/css/eco-dashboard.css @@ -63,6 +63,7 @@ } + #recently-added-note { margin: auto; padding-bottom: 16px; diff --git a/themes/arm-design-system-hugo-theme/layouts/partials/eco-dashboard/info-top.html b/themes/arm-design-system-hugo-theme/layouts/partials/eco-dashboard/info-top.html index 36f64fd1..c307a4f0 100644 --- a/themes/arm-design-system-hugo-theme/layouts/partials/eco-dashboard/info-top.html +++ b/themes/arm-design-system-hugo-theme/layouts/partials/eco-dashboard/info-top.html @@ -4,6 +4,16 @@ Migrating your workloads to Arm? Discover what software packages work on Arm, the supported versions, download links, and quick-start resources. For more details, read the contribution guidelines on GitHub to understand how packages are added. +
+ Legal disclaimer here. + +
+ Please note that the data collated on this site is sourced from Arm and third parties.
+ While Arm uses reasonable efforts to keep this dashboard accurate, Arm does not warrant (express or implied) or provide any guarantee of data correctness due to the ever-evolving software landscape.
+
+
diff --git a/themes/arm-design-system-hugo-theme/layouts/partials/package-display/row-sub.html b/themes/arm-design-system-hugo-theme/layouts/partials/package-display/row-sub.html index 66d9f2c9..ee49bf1a 100644 --- a/themes/arm-design-system-hugo-theme/layouts/partials/package-display/row-sub.html +++ b/themes/arm-design-system-hugo-theme/layouts/partials/package-display/row-sub.html @@ -79,7 +79,7 @@ {{/* Support Caveats */}} {{if .metadata.Params.optional_info.support_caveats}}
-
Support Notes:
+
Support Notes
{{.metadata.Params.optional_info.support_caveats | markdownify }}
From f5f6d60fac8b49bbf3e8f7d03ea03c534be391c5 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk Date: Wed, 27 Mar 2024 12:38:18 -0500 Subject: [PATCH 06/31] small change. --- assets/css/eco-dashboard.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/css/eco-dashboard.css b/assets/css/eco-dashboard.css index 8868e514..e6f27278 100644 --- a/assets/css/eco-dashboard.css +++ b/assets/css/eco-dashboard.css @@ -63,7 +63,7 @@ } - + #recently-added-note { margin: auto; padding-bottom: 16px; From 4fff137b4146c6dee81ff656fc98f247a6cf1216 Mon Sep 17 00:00:00 2001 From: odidev Date: Thu, 21 Mar 2024 10:00:15 +0000 Subject: [PATCH 07/31] Add crowdstrike-falcon and sentinelone_singularity_xdr files Signed-off-by: odidev --- .../commercial_packages/crowdstrike-falcon.md | 24 +++++++++++++++++++ .../sentinelone_singularity_xdr.md | 24 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 content/commercial_packages/crowdstrike-falcon.md create mode 100644 content/commercial_packages/sentinelone_singularity_xdr.md diff --git a/content/commercial_packages/crowdstrike-falcon.md b/content/commercial_packages/crowdstrike-falcon.md new file mode 100644 index 00000000..c49b5b98 --- /dev/null +++ b/content/commercial_packages/crowdstrike-falcon.md @@ -0,0 +1,24 @@ +--- +name: Falcon +vendor: CrowdStrike +category: Security applications +description: Falcon platform leverages real-time indicators of attack, threat intelligence, evolving adversary tradecraft and enriched telemetry from across the enterprise to deliver hyper-accurate detections, automated protection and remediation, elite threat hunting, and prioritized observability of vulnerabilities. +product_url: https://www.crowdstrike.com/falcon-platform/ +works_on_arm: true +release_date_on_arm: 03/12/2019 + + +optional_info: + homepage_url: https://www.crowdstrike.com/falcon-platform/ + support_caveats: + alternative_options: + getting_started_resources: + arm_content: + vendor_announcement: https://www.crowdstrike.com/blog/join-crowdstrike-at-aws-reinvent-2019/ + official_docs: https://www.crowdstrike.com/blog/tech-center/install-falcon-sensor-for-linux/ + + +optional_hidden_info: + other_info: Linux/ARM64 falcon supportive versions can be found on the FAQ page [here](https://www.crowdstrike.com/products/faq/), under the heading - What Linux versions does the falcon agent support. + +--- diff --git a/content/commercial_packages/sentinelone_singularity_xdr.md b/content/commercial_packages/sentinelone_singularity_xdr.md new file mode 100644 index 00000000..858b9ad6 --- /dev/null +++ b/content/commercial_packages/sentinelone_singularity_xdr.md @@ -0,0 +1,24 @@ +--- +name: Singularity XDR +vendor: SentinelOne +category: Security applications +description: SentinelOne Singularity XDR unifies and extends detection and response capability across multiple security layers, including endpoint, cloud, identity, network, and mobile, providing security teams with centralized end-to-end enterprise visibility, powerful analytics, and automated response across a large cross-section of the technology stack. +product_url: https://www.sentinelone.com/resources/singularity-xdr/ +works_on_arm: true +release_date_on_arm: 20/07/2022 + + +optional_info: + homepage_url: https://www.sentinelone.com/resources/singularity-xdr/ + support_caveats: + alternative_options: + getting_started_resources: + arm_content: + vendor_announcement: https://www.sentinelone.com/press/sentinelone-announces-service-ready-designation-for-aws-graviton/ + official_docs: https://www.sentinelone.com/platform/how-singularity-xdr-works/ + + +optional_hidden_info: + other_info: Releases are not available on the official website. We probably have to sign in/log in to get access to the downloads page. However, the announcement for the Graviton support was made on 20/07/2022. + +--- From 729113536d1704e758a81ff5fa117536776a98e3 Mon Sep 17 00:00:00 2001 From: odidev Date: Wed, 27 Mar 2024 04:43:36 +0000 Subject: [PATCH 08/31] Add chef_infra_client_progress and kernelcare_cloudLinux files Signed-off-by: odidev --- .../chef_infra_client_progress.md | 23 +++++++++++++++++++ .../kernelcare_cloudLinux.md | 23 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 content/commercial_packages/chef_infra_client_progress.md create mode 100644 content/commercial_packages/kernelcare_cloudLinux.md diff --git a/content/commercial_packages/chef_infra_client_progress.md b/content/commercial_packages/chef_infra_client_progress.md new file mode 100644 index 00000000..d78d3321 --- /dev/null +++ b/content/commercial_packages/chef_infra_client_progress.md @@ -0,0 +1,23 @@ +--- +name: Chef Infra Client +vendor: Progress (Chef) +category: Devops +description: Chef Infra Client requests all the cookbook files (including recipes, templates, resources, providers, attributes, and libraries) that it needs for every action identified in the run-list from the Chef Infra Server. +product_url: https://docs.chef.io/ctl_chef_client/ +works_on_arm: true +release_date_on_arm: 01/02/2021 + + +optional_info: + homepage_url: https://docs.chef.io/ctl_chef_client/ + support_caveats: + alternative_options: + getting_started_resources: + arm_content: + vendor_announcement: https://www.chef.io/docs/cheflibraries/product-and-user-guides/chef-infra-client-16_product-guide.pdf?sfvrsn=6595b433_4 + official_docs: https://docs.chef.io/quick_start/ + +optional_hidden_info: + other_info: + +--- diff --git a/content/commercial_packages/kernelcare_cloudLinux.md b/content/commercial_packages/kernelcare_cloudLinux.md new file mode 100644 index 00000000..cb4fa416 --- /dev/null +++ b/content/commercial_packages/kernelcare_cloudLinux.md @@ -0,0 +1,23 @@ +--- +name: KernelCare +vendor: CloudLinux +category: DevOps +description: KernelCare is a live kernel patching service that provides security patches and bugfixes for a range of popular Linux kernels that can be installed without rebooting the system. +product_url: https://docs.tuxcare.com/live-patching-services/ +works_on_arm: true +release_date_on_arm: 12/06/2020 + + +optional_info: + homepage_url: https://docs.tuxcare.com/live-patching-services/ + support_caveats: + alternative_options: + getting_started_resources: + arm_content: + vendor_announcement: https://aws.amazon.com/blogs/apn/live-patching-linux-without-downtime-on-aws-graviton2-instances/ + official_docs: https://docs.tuxcare.com/live-patching-services/#installation + +optional_hidden_info: + other_info: + +--- From 1679a264a87f2ea0261d3d328495ce2441f06799 Mon Sep 17 00:00:00 2001 From: odidev Date: Tue, 26 Mar 2024 10:45:57 +0000 Subject: [PATCH 09/31] Add kube-bench, trivy and cis-hardened-images files Signed-off-by: odidev --- .../cis-hardened-images.md | 24 +++++++++++++++ content/opensource_packages/kube-bench.md | 29 +++++++++++++++++++ content/opensource_packages/trivy.md | 29 +++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 content/commercial_packages/cis-hardened-images.md create mode 100644 content/opensource_packages/kube-bench.md create mode 100644 content/opensource_packages/trivy.md diff --git a/content/commercial_packages/cis-hardened-images.md b/content/commercial_packages/cis-hardened-images.md new file mode 100644 index 00000000..3d87a76e --- /dev/null +++ b/content/commercial_packages/cis-hardened-images.md @@ -0,0 +1,24 @@ +--- +name: CIS Hardened Images +vendor: CIS +category: Security applications +description: CIS Hardened Images provide users with a secure, on-demand, and scalable computing environment. CIS offers virtual machine (VM) images hardened in accordance with the CIS Benchmarks. +product_url: https://www.cisecurity.org/ +works_on_arm: true +release_date_on_arm: 8/7/2021 + + +optional_info: + homepage_url: https://www.cisecurity.org/ + support_caveats: + alternative_options: + getting_started_resources: + arm_content: + vendor_announcement: https://www.cisecurity.org/insights/blog/new-hardened-vms-from-cis-graviton2-windows-2019-stig + official_docs: https://www.cisecurity.org/cis-hardened-images + + +optional_hidden_info: + other_info: + +--- diff --git a/content/opensource_packages/kube-bench.md b/content/opensource_packages/kube-bench.md new file mode 100644 index 00000000..6cf985b9 --- /dev/null +++ b/content/opensource_packages/kube-bench.md @@ -0,0 +1,29 @@ +--- +name: kube-bench +category: Security applications +description: kube-bench is a tool that checks whether Kubernetes is deployed according to security best practices as defined in the CIS Kubernetes Benchmark. +download_url: https://github.com/aquasecurity/kube-bench/releases +works_on_arm: true +supported_minimum_version: + version_number: 0.3.1 + release_date: 10/7/2020 + + +optional_info: + homepage_url: https://www.aquasec.com/products/open-source-projects/ + support_caveats: + alternative_options: + getting_started_resources: + arm_content: + partner_content: + official_docs: https://aquasecurity.github.io/kube-bench/dev/installation/ + arm_recommended_minimum_version: + version_number: + release_date: + + +optional_hidden_info: + release_notes__supported_minimum: https://github.com/aquasecurity/kube-bench/releases/tag/v0.3.1 + release_notes__recommended_minimum: + other_info: +--- diff --git a/content/opensource_packages/trivy.md b/content/opensource_packages/trivy.md new file mode 100644 index 00000000..28a10f65 --- /dev/null +++ b/content/opensource_packages/trivy.md @@ -0,0 +1,29 @@ +--- +name: Trivy +category: Security applications +description: Trivy is most comprehensive and easy-to-use open source vulnerability scanner for container images. +download_url: https://github.com/aquasecurity/trivy/releases +works_on_arm: true +supported_minimum_version: + version_number: 0.0.1 + release_date: 7/5/2019 + + +optional_info: + homepage_url: https://www.aquasec.com/products/trivy/ + support_caveats: + alternative_options: + getting_started_resources: + arm_content: + partner_content: + official_docs: https://aquasecurity.github.io/trivy/v0.50/getting-started/installation/ + arm_recommended_minimum_version: + version_number: + release_date: + + +optional_hidden_info: + release_notes__supported_minimum: https://github.com/aquasecurity/trivy/releases/tag/v0.0.1 + release_notes__recommended_minimum: + other_info: +--- From 88912f12b43b3380d32b569d26963bae9b9ea675 Mon Sep 17 00:00:00 2001 From: odidev Date: Tue, 19 Mar 2024 06:51:51 +0000 Subject: [PATCH 10/31] Add fluent, ls-dyna and redhawk-sc files Signed-off-by: odidev --- content/commercial_packages/fluent.md | 24 +++++++++++++++++++++++ content/commercial_packages/ls-dyna.md | 24 +++++++++++++++++++++++ content/commercial_packages/redhawk-sc.md | 24 +++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 content/commercial_packages/fluent.md create mode 100644 content/commercial_packages/ls-dyna.md create mode 100644 content/commercial_packages/redhawk-sc.md diff --git a/content/commercial_packages/fluent.md b/content/commercial_packages/fluent.md new file mode 100644 index 00000000..558aa3b0 --- /dev/null +++ b/content/commercial_packages/fluent.md @@ -0,0 +1,24 @@ +--- +name: Fluent +vendor: Ansys +category: HPC +description: Ansys Fluent is the industry-leading fluid simulation software known for its advanced physics modeling capabilities and unmatched accuracy. +product_url: https://www.ansys.com/products/fluids/ansys-fluent +works_on_arm: true +release_date_on_arm: 01/06/2023 + + +optional_info: + homepage_url: https://www.ansys.com/products/fluids/ansys-fluent + support_caveats: + alternative_options: + getting_started_resources: + arm_content: + vendor_announcement: https://www.ansys.com/content/dam/amp/2023/june/quick-request/arm-64-processor-support-announcement-june-2023.pdf + official_docs: https://www.ansys.com/training-center/course-catalog/fluids/ansys-fluent-getting-started-basics + + +optional_hidden_info: + other_info: + +--- diff --git a/content/commercial_packages/ls-dyna.md b/content/commercial_packages/ls-dyna.md new file mode 100644 index 00000000..978bfcbc --- /dev/null +++ b/content/commercial_packages/ls-dyna.md @@ -0,0 +1,24 @@ +--- +name: LS-DYNA +vendor: Ansys +category: HPC +description: Ansys LS-DYNA is the industry-leading explicit simulation software used for applications like drop tests, impact and penetration, smashes and crashes, occupant safety and more. +product_url: https://www.ansys.com/products/structures/ansys-ls-dyna +works_on_arm: true +release_date_on_arm: 01/06/2023 + + +optional_info: + homepage_url: https://www.ansys.com/products/structures/ansys-ls-dyna + support_caveats: + alternative_options: + getting_started_resources: + arm_content: + vendor_announcement: https://www.ansys.com/content/dam/amp/2023/june/quick-request/arm-64-processor-support-announcement-june-2023.pdf + official_docs: https://lsdyna.ansys.com/download-install-overview/ + + +optional_hidden_info: + other_info: + +--- diff --git a/content/commercial_packages/redhawk-sc.md b/content/commercial_packages/redhawk-sc.md new file mode 100644 index 00000000..a33e0691 --- /dev/null +++ b/content/commercial_packages/redhawk-sc.md @@ -0,0 +1,24 @@ +--- +name: RedHawk-SC +vendor: Ansys +category: HPC +description: RedHawk-SC is the proven and trusted industry leader for power noise and reliability signoff for digital IP and SoCs down to 3nm and built on cloud-native elastic compute infrastructure. +product_url: https://www.ansys.com/products/semiconductors/ansys-redhawk-sc +works_on_arm: true +release_date_on_arm: 01/06/2023 + + +optional_info: + homepage_url: https://www.ansys.com/products/semiconductors/ansys-redhawk-sc + support_caveats: + alternative_options: + getting_started_resources: + arm_content: + vendor_announcement: https://www.ansys.com/content/dam/amp/2023/june/quick-request/arm-64-processor-support-announcement-june-2023.pdf + official_docs: https://www.ansys.com/training-center/course-catalog/semiconductor/ansys-redhawk-sc-getting-started + + +optional_hidden_info: + other_info: + +--- From 0f629206479772d22f72ced97ae97223b57cae83 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 07:01:03 -0500 Subject: [PATCH 11/31] Create .linkcheckerrc --- .linkcheckerrc | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .linkcheckerrc diff --git a/.linkcheckerrc b/.linkcheckerrc new file mode 100644 index 00000000..ed855596 --- /dev/null +++ b/.linkcheckerrc @@ -0,0 +1,3 @@ +[filtering] +ignore= + github.com From e487ee007244af1e149848f9c1f9138edd95b576 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 07:02:12 -0500 Subject: [PATCH 12/31] Update link-checker.yml --- .github/workflows/link-checker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index 7075d294..0717d506 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -29,4 +29,4 @@ jobs: - name: Check external HTML links run: | pip install linkchecker - linkchecker --no-robots --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing + linkchecker --no-robots --config .linkcheckerrc --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing From f30718d45e4fc89b8dad6183354701fa16875b3f Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 07:06:05 -0500 Subject: [PATCH 13/31] Update link-checker.yml --- .github/workflows/link-checker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index 0717d506..017560e2 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -29,4 +29,4 @@ jobs: - name: Check external HTML links run: | pip install linkchecker - linkchecker --no-robots --config .linkcheckerrc --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing + linkchecker --no-robots --no-warnings --config .linkcheckerrc --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing From 1ac0e0580ed032a53b4c83c0406d9f7db2b1c69a Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 07:17:07 -0500 Subject: [PATCH 14/31] Update link-checker.yml --- .github/workflows/link-checker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index 017560e2..71aa5583 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -29,4 +29,4 @@ jobs: - name: Check external HTML links run: | pip install linkchecker - linkchecker --no-robots --no-warnings --config .linkcheckerrc --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing + linkchecker --no-robots --no-warnings --config .linkcheckerrc --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing From 323a3eddc7c22c5224b56ec7a28e24d9c9cfb29e Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 07:37:57 -0500 Subject: [PATCH 15/31] Update link-checker.yml --- .github/workflows/link-checker.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index 71aa5583..cc64fa94 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -26,6 +26,12 @@ jobs: with: python-version: 3.11.3 + - name: Generate links to check, sans allow-list.txt + run: | + cat public/sitemap.xml + + + - name: Check external HTML links run: | pip install linkchecker From c5b931a4501305eacee7aeb14bb1cd0c6702ed31 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 07:46:58 -0500 Subject: [PATCH 16/31] Update link-checker.yml --- .github/workflows/link-checker.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index cc64fa94..630f2922 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -24,15 +24,16 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: 3.11.3 + python-version: 3.11.3 - - name: Generate links to check, sans allow-list.txt + - name: Run linkchecker into file + continue-on-error: true run: | - cat public/sitemap.xml - - + pip install linkchecker + linkchecker --no-robots --no-warnings --config .linkcheckerrc --file-output=csv/utf-8/linkchecker_raw_output.csv --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing + cat linkchecker_raw_output.csv - - name: Check external HTML links + - name: Parse through allow-listed URLs run: | - pip install linkchecker - linkchecker --no-robots --no-warnings --config .linkcheckerrc --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing + ls + cat linkchecker_raw_output.csv From b8b2f67455eb88d633ae5a16ef5323e9dba802f0 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk Date: Thu, 28 Mar 2024 08:01:12 -0500 Subject: [PATCH 17/31] updating regression tests --- .../linkchecker_filter_out_allowed_urls.py | 37 ++++++++++++ build_steps/update_active_categories.py | 56 ------------------- build_steps/url-allow-list.txt | 0 data/active_categories.yml | 26 --------- data/all_categories.yml | 24 -------- 5 files changed, 37 insertions(+), 106 deletions(-) create mode 100644 build_steps/linkchecker_filter_out_allowed_urls.py delete mode 100644 build_steps/update_active_categories.py create mode 100644 build_steps/url-allow-list.txt delete mode 100644 data/active_categories.yml delete mode 100644 data/all_categories.yml diff --git a/build_steps/linkchecker_filter_out_allowed_urls.py b/build_steps/linkchecker_filter_out_allowed_urls.py new file mode 100644 index 00000000..ea212e76 --- /dev/null +++ b/build_steps/linkchecker_filter_out_allowed_urls.py @@ -0,0 +1,37 @@ +import os, sys +from pathlib import Path + +def csv_filtering(input_filename, output_filename, allow_list): + # Crate a new CSV writing rows to the output if their URL is not in the allow-list. + with open(input_filename, 'r') as infile: + with open(output_filename, 'w') as outfile: + for line in infile: + url = line.split(';')[0] + if url not in allow_list: + outfile.write(line) + + + +if __name__ == "__main__": + + # Get the absolute path to this python file's directory + script_dir = Path(__file__).parent.absolute() + + # Relative path to content from script, then tet absolute path to content by combining, and use Resolve to handle backwards".." + allow_list_f_relative = Path("allow-list.txt") + allow_list_f = (script_dir / allow_list_relative).resolve() + + csv_in_relative = Path("../linkchecker_raw_output.csv") + csv_in = (script_dir / csv_in_relative).resolve() + + csv_out_relative = Path("../linkchecker_filtered_output.csv") + csv_out = (script_dir / csv_out_relative).resolve() + + + + # Load the allow-list + with open(allow_list_f, 'r') as f: + allow_list = set(line.strip() for line in f) + + # Filter the CSV based on the allow-list + csv_filtering(csv_in, csv_out, allow_list) \ No newline at end of file diff --git a/build_steps/update_active_categories.py b/build_steps/update_active_categories.py deleted file mode 100644 index 6fc457ea..00000000 --- a/build_steps/update_active_categories.py +++ /dev/null @@ -1,56 +0,0 @@ -import os, yaml -from pathlib import Path - - -# Get the absolute path to this python file's directory -script_dir = Path(__file__).parent.absolute() - -# Relative path to content from script, then tet absolute path to content by combining, and use Resolve to handle backwards".." -opensource_relative_path = Path('../content/opensource_packages') -opensource_absolute_path = (script_dir / opensource_relative_path).resolve() - -commercial_relative_path = Path('../content/commercial_packages') -commercial_absolute_path = (script_dir / commercial_relative_path).resolve() - -# Same process for the YAML data file: -yaml_relative_path = Path('../data/all_categories.yml') -yaml_absolute_path = (script_dir / yaml_relative_path).resolve() - - - -print('Updating active categories...') - -# LOAD ALL CATS -all_cats = '' -with open(yaml_absolute_path, 'r') as all_cat_file: - all_cats = yaml.safe_load(all_cat_file) - - -# CREATE NEW ACTIVE_CATS LIST -content_directories = [opensource_absolute_path, commercial_absolute_path] - -active_cats = [] -for content_directory in content_directories: - for content_file in os.listdir(content_directory): - if (content_file != ('_index.md')) and content_file.endswith('.md'): - # OBTAIN CATEGORY FROM FILE - cat = None - with open(os.path.join(content_directory, content_file), 'r') as f: - for line in f: - if 'category:' in line: - cat = line.replace('category:','').strip() - break - # ADD TO ACTIVE_CATS LIST IF NOT ALREADY PRESENT - if cat in all_cats: - if cat not in active_cats: - active_cats.append(cat) - -# Order list alphabetically -active_cats = sorted(active_cats) -for cat in active_cats: - print(' '+cat) - -# SAVE ACTIVE_CATS LIST -with open('data/active_categories.yml', 'w') as active_cats_file: - yaml.safe_dump(list(active_cats), active_cats_file, default_flow_style=False) - diff --git a/build_steps/url-allow-list.txt b/build_steps/url-allow-list.txt new file mode 100644 index 00000000..e69de29b diff --git a/data/active_categories.yml b/data/active_categories.yml deleted file mode 100644 index fa1513e1..00000000 --- a/data/active_categories.yml +++ /dev/null @@ -1,26 +0,0 @@ -- AI/ML -- Compilers/Tools -- Compression -- Containers and Orchestration -- Content mgmt platforms -- Crypto -- Data-format -- Database -- Databases - Big-data -- Databases - noSQL -- DevOps -- E-commerce platforms -- Gaming -- HPC -- Languages and Frameworks -- Messaging/Comms -- Miscellaneous -- Monitoring/Observability -- Networking -- Operating System -- Runtimes -- Security applications -- Service Mesh -- Storage -- Video -- Web Server \ No newline at end of file diff --git a/data/all_categories.yml b/data/all_categories.yml deleted file mode 100644 index 8b24b197..00000000 --- a/data/all_categories.yml +++ /dev/null @@ -1,24 +0,0 @@ -- AI/ML -- CI/CD -- Cloud Native Tools -- Compilers/Tools -- Compression -- Containers and Orchestration -- Content mgmt platforms -- Crypto -- Databases - Big-data -- Databases - noSQL -- Data-format -- Distros -- E-commerce platforms -- Languages and Frameworks -- Messaging/Comms -- Monitoring/Observability -- Networking -- Operating System -- Runtimes -- Security -- Service Mesh -- Storage -- Video -- Web Server From 5cb9e3febe2ff4bd303503be96994d7216e99fca Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 08:03:25 -0500 Subject: [PATCH 18/31] Update url-allow-list.txt --- build_steps/url-allow-list.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/build_steps/url-allow-list.txt b/build_steps/url-allow-list.txt index e69de29b..865c236b 100644 --- a/build_steps/url-allow-list.txt +++ b/build_steps/url-allow-list.txt @@ -0,0 +1 @@ +https://releases.crossplane.io/stable/ From 5202ec1eb4383d15f36ca00e7f1d79c5ae4f69c1 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 08:06:26 -0500 Subject: [PATCH 19/31] Update link-checker.yml --- .github/workflows/link-checker.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index 630f2922..fbafc58d 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -36,4 +36,24 @@ jobs: - name: Parse through allow-listed URLs run: | ls + python --version + python ./build_steps/linkchecker_filter_out_allowed_urls.py cat linkchecker_raw_output.csv + cat linkchecker_filtered_output.csv + + - name: Read and validate filtered CSV + run: | + # Read the filtered CSV file + csv_content=$( Date: Thu, 28 Mar 2024 08:14:51 -0500 Subject: [PATCH 20/31] link checking update --- .linkcheckerrc | 3 ++ .../linkchecker_filter_out_allowed_urls.py | 37 ------------------- build_steps/url-allow-list.txt | 0 3 files changed, 3 insertions(+), 37 deletions(-) delete mode 100644 build_steps/linkchecker_filter_out_allowed_urls.py delete mode 100644 build_steps/url-allow-list.txt diff --git a/.linkcheckerrc b/.linkcheckerrc index ed855596..6015d3fc 100644 --- a/.linkcheckerrc +++ b/.linkcheckerrc @@ -1,3 +1,6 @@ [filtering] ignore= github.com + # Explicitly allowed URLs that cause linkchecker to fail, but do work when manually checked. + https://releases.crossplane.io/stable/ + https://demoa.heimdalldata.com/docs/basics/install.html diff --git a/build_steps/linkchecker_filter_out_allowed_urls.py b/build_steps/linkchecker_filter_out_allowed_urls.py deleted file mode 100644 index ea212e76..00000000 --- a/build_steps/linkchecker_filter_out_allowed_urls.py +++ /dev/null @@ -1,37 +0,0 @@ -import os, sys -from pathlib import Path - -def csv_filtering(input_filename, output_filename, allow_list): - # Crate a new CSV writing rows to the output if their URL is not in the allow-list. - with open(input_filename, 'r') as infile: - with open(output_filename, 'w') as outfile: - for line in infile: - url = line.split(';')[0] - if url not in allow_list: - outfile.write(line) - - - -if __name__ == "__main__": - - # Get the absolute path to this python file's directory - script_dir = Path(__file__).parent.absolute() - - # Relative path to content from script, then tet absolute path to content by combining, and use Resolve to handle backwards".." - allow_list_f_relative = Path("allow-list.txt") - allow_list_f = (script_dir / allow_list_relative).resolve() - - csv_in_relative = Path("../linkchecker_raw_output.csv") - csv_in = (script_dir / csv_in_relative).resolve() - - csv_out_relative = Path("../linkchecker_filtered_output.csv") - csv_out = (script_dir / csv_out_relative).resolve() - - - - # Load the allow-list - with open(allow_list_f, 'r') as f: - allow_list = set(line.strip() for line in f) - - # Filter the CSV based on the allow-list - csv_filtering(csv_in, csv_out, allow_list) \ No newline at end of file diff --git a/build_steps/url-allow-list.txt b/build_steps/url-allow-list.txt deleted file mode 100644 index e69de29b..00000000 From 7ecee4f62c84312be2339cce8072ae6d0c951366 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 08:17:17 -0500 Subject: [PATCH 21/31] Update link-checker.yml --- .github/workflows/link-checker.yml | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index fbafc58d..e6754b8d 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -27,33 +27,6 @@ jobs: python-version: 3.11.3 - name: Run linkchecker into file - continue-on-error: true run: | pip install linkchecker - linkchecker --no-robots --no-warnings --config .linkcheckerrc --file-output=csv/utf-8/linkchecker_raw_output.csv --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing - cat linkchecker_raw_output.csv - - - name: Parse through allow-listed URLs - run: | - ls - python --version - python ./build_steps/linkchecker_filter_out_allowed_urls.py - cat linkchecker_raw_output.csv - cat linkchecker_filtered_output.csv - - - name: Read and validate filtered CSV - run: | - # Read the filtered CSV file - csv_content=$( Date: Thu, 28 Mar 2024 08:20:27 -0500 Subject: [PATCH 22/31] Update link-checker.yml --- .github/workflows/link-checker.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index e6754b8d..bc3a5ead 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -26,7 +26,8 @@ jobs: with: python-version: 3.11.3 - - name: Run linkchecker into file + - name: Run linkchecker run: | - pip install linkchecker + pip install linkchecker + cat .linkcheckerrc linkchecker --no-robots --no-warnings --config .linkcheckerrc --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing From 9190bd82a12b72d768158bac583d333ff79e13fe Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 08:24:07 -0500 Subject: [PATCH 23/31] Update link-checker.yml --- .github/workflows/link-checker.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index bc3a5ead..86270b81 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -26,8 +26,13 @@ jobs: with: python-version: 3.11.3 + - name: Ignored URLs here + run: | + echo "These URLs are ignored. Please check them manually every so often to ensure their validity." + cat .linkcheckerrc + + - name: Run linkchecker run: | pip install linkchecker - cat .linkcheckerrc linkchecker --no-robots --no-warnings --config .linkcheckerrc --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" --check-extern https://www.arm.com/developer-hub/ecosystem-dashboard/servers-and-cloud-computing From ac559cb1cd687d543eaac66cf9b6487965b5b995 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 08:24:35 -0500 Subject: [PATCH 24/31] Update .linkcheckerrc --- .linkcheckerrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.linkcheckerrc b/.linkcheckerrc index 6015d3fc..eb8a43af 100644 --- a/.linkcheckerrc +++ b/.linkcheckerrc @@ -4,3 +4,5 @@ ignore= # Explicitly allowed URLs that cause linkchecker to fail, but do work when manually checked. https://releases.crossplane.io/stable/ https://demoa.heimdalldata.com/docs/basics/install.html + https://docs.aviatrix.com/documentation/latest/release-notes/copilot-image-release-notes/copilot-image-release-notes.html#copilot-image-version-2-0-4-06-july-2022-aws-arm + https://docs.aviatrix.com/documentation/latest/index.html From 7f37937140a9496e6a01aea0f112263e5ac2ec5b Mon Sep 17 00:00:00 2001 From: Zach Lasiuk Date: Thu, 28 Mar 2024 10:04:06 -0500 Subject: [PATCH 25/31] added regression tests and rerouted to readme in top link --- build_steps/validate_package_catagories.py | 116 ++++++++++++++++++ build_steps/validate_package_dates.py | 116 ++++++++++++++++++ content/opensource_packages/harbor.md | 2 +- .../partials/eco-dashboard/info-top.html | 4 +- 4 files changed, 235 insertions(+), 3 deletions(-) create mode 100644 build_steps/validate_package_catagories.py create mode 100644 build_steps/validate_package_dates.py diff --git a/build_steps/validate_package_catagories.py b/build_steps/validate_package_catagories.py new file mode 100644 index 00000000..473500f2 --- /dev/null +++ b/build_steps/validate_package_catagories.py @@ -0,0 +1,116 @@ +import os, sys +from pathlib import Path +import yaml + + + +def isCategoryValid(string, dictionary): + # Check if any key in the dictionary matches the string + for key in dictionary: + if string in key: + return True + return False + + +if __name__ == "__main__": + + # Get the absolute path to this python file's directory + script_dir = Path(__file__).parent.absolute() + + # Relative path to content from script, then tet absolute path to content by combining, and use Resolve to handle backwards".." + category_data_yml_relative_path = Path('../data/category_data.yml') + category_data_yaml = (script_dir / category_data_yml_relative_path).resolve() + + + # content dirs + opensource_relative_path = Path('../content/opensource_packages') + opensource_absolute_path = (script_dir / opensource_relative_path).resolve() + + commercial_relative_path = Path('../content/commercial_packages') + commercial_absolute_path = (script_dir / commercial_relative_path).resolve() + + content_directories = [opensource_absolute_path, commercial_absolute_path] + + + + + # Read in category data into a dictionary, which maps {'category': 'group'}. + with open(category_data_yaml, 'r') as file: + data = yaml.safe_load(file) + category_dict = data["subcategory_mapping"] + + + + # Loop over all packages + invalid_packages = [] + valid_packages = [] + for content_directory in content_directories: + for f in os.listdir(content_directory): + if f.endswith(".md"): + file_path_full = os.path.join(content_directory, f) + with open(file_path_full, 'r') as file: + lines = file.readlines() + packages_type = 'Open source' + for line in lines: + if 'name:' in line: + packages_name = line.split('name:')[1].strip() + if 'category:' in line: + packages_category = line.split('category:')[1].strip() + if 'vendor:' in line: + packages_type = 'Commercial' + + # check if packages_category matches a key in category_dict + is_valid = isCategoryValid(packages_category,category_dict) + if is_valid: + valid_packages.append({ + "name": packages_name, + "category": packages_category, + "group": category_dict[packages_category] + }) + else: + invalid_packages.append({ + "name": packages_name, + "file": f, + "type": packages_type, + "category": packages_category, + }) + + + + + + + if invalid_packages: + # Maximum width for columns + max_package_name_width = max(len(max(invalid_packages, key=lambda x: len(x['name']))['name']), len('Package Name')) + max_category_width = max(len(max(invalid_packages, key=lambda x: len(x['category']))['category']), len('Wrong Category')) + max_type_width = max(len(max(invalid_packages, key=lambda x: len(x['type']))['type']), len('Type')) + max_file_width = max(len(max(invalid_packages, key=lambda x: len(x['file']))['file']), len('File')) + + + print("ERROR: The following packages have invalid categories:") + print(" ","Package Name".ljust(max_package_name_width), "Wrong Category".ljust(max_category_width), "Type".ljust(max_type_width), "File".ljust(max_file_width)) + print(" ","-" * max_package_name_width, "-" * max_category_width, "-" * max_type_width, "-" * max_file_width) + + # Print data rows + for package in invalid_packages: + print(" ",package['name'].ljust(max_package_name_width), package['category'].ljust(max_category_width), package['type'].ljust(max_type_width), package['file'].ljust(max_file_width)) + sys.exit(1) + + + else: + # Maximum width for columns + max_package_name_width = max(len(max(valid_packages, key=lambda x: len(x['name']))['name']), len('Package Name')) + max_category_width = max(len(max(valid_packages, key=lambda x: len(x['category']))['category']), len('Category')) + max_group_width = max(len(max(valid_packages, key=lambda x: len(x['group']))['group']), len('Group')) + + print("Success! Report of all packages:") + print(" ","Package Name".ljust(max_package_name_width), "Group".ljust(max_group_width), "Category".ljust(max_category_width)) + print(" ","-" * max_package_name_width, "-" * max_group_width, "-" * max_category_width) + + for package in valid_packages: + print(" ",package['name'].ljust(max_package_name_width), package['group'].ljust(max_group_width), package['category'].ljust(max_category_width)) + + print("Success! See above report.") + + \ No newline at end of file diff --git a/build_steps/validate_package_dates.py b/build_steps/validate_package_dates.py new file mode 100644 index 00000000..473500f2 --- /dev/null +++ b/build_steps/validate_package_dates.py @@ -0,0 +1,116 @@ +import os, sys +from pathlib import Path +import yaml + + + +def isCategoryValid(string, dictionary): + # Check if any key in the dictionary matches the string + for key in dictionary: + if string in key: + return True + return False + + +if __name__ == "__main__": + + # Get the absolute path to this python file's directory + script_dir = Path(__file__).parent.absolute() + + # Relative path to content from script, then tet absolute path to content by combining, and use Resolve to handle backwards".." + category_data_yml_relative_path = Path('../data/category_data.yml') + category_data_yaml = (script_dir / category_data_yml_relative_path).resolve() + + + # content dirs + opensource_relative_path = Path('../content/opensource_packages') + opensource_absolute_path = (script_dir / opensource_relative_path).resolve() + + commercial_relative_path = Path('../content/commercial_packages') + commercial_absolute_path = (script_dir / commercial_relative_path).resolve() + + content_directories = [opensource_absolute_path, commercial_absolute_path] + + + + + # Read in category data into a dictionary, which maps {'category': 'group'}. + with open(category_data_yaml, 'r') as file: + data = yaml.safe_load(file) + category_dict = data["subcategory_mapping"] + + + + # Loop over all packages + invalid_packages = [] + valid_packages = [] + for content_directory in content_directories: + for f in os.listdir(content_directory): + if f.endswith(".md"): + file_path_full = os.path.join(content_directory, f) + with open(file_path_full, 'r') as file: + lines = file.readlines() + packages_type = 'Open source' + for line in lines: + if 'name:' in line: + packages_name = line.split('name:')[1].strip() + if 'category:' in line: + packages_category = line.split('category:')[1].strip() + if 'vendor:' in line: + packages_type = 'Commercial' + + # check if packages_category matches a key in category_dict + is_valid = isCategoryValid(packages_category,category_dict) + if is_valid: + valid_packages.append({ + "name": packages_name, + "category": packages_category, + "group": category_dict[packages_category] + }) + else: + invalid_packages.append({ + "name": packages_name, + "file": f, + "type": packages_type, + "category": packages_category, + }) + + + + + + + if invalid_packages: + # Maximum width for columns + max_package_name_width = max(len(max(invalid_packages, key=lambda x: len(x['name']))['name']), len('Package Name')) + max_category_width = max(len(max(invalid_packages, key=lambda x: len(x['category']))['category']), len('Wrong Category')) + max_type_width = max(len(max(invalid_packages, key=lambda x: len(x['type']))['type']), len('Type')) + max_file_width = max(len(max(invalid_packages, key=lambda x: len(x['file']))['file']), len('File')) + + + print("ERROR: The following packages have invalid categories:") + print(" ","Package Name".ljust(max_package_name_width), "Wrong Category".ljust(max_category_width), "Type".ljust(max_type_width), "File".ljust(max_file_width)) + print(" ","-" * max_package_name_width, "-" * max_category_width, "-" * max_type_width, "-" * max_file_width) + + # Print data rows + for package in invalid_packages: + print(" ",package['name'].ljust(max_package_name_width), package['category'].ljust(max_category_width), package['type'].ljust(max_type_width), package['file'].ljust(max_file_width)) + sys.exit(1) + + + else: + # Maximum width for columns + max_package_name_width = max(len(max(valid_packages, key=lambda x: len(x['name']))['name']), len('Package Name')) + max_category_width = max(len(max(valid_packages, key=lambda x: len(x['category']))['category']), len('Category')) + max_group_width = max(len(max(valid_packages, key=lambda x: len(x['group']))['group']), len('Group')) + + print("Success! Report of all packages:") + print(" ","Package Name".ljust(max_package_name_width), "Group".ljust(max_group_width), "Category".ljust(max_category_width)) + print(" ","-" * max_package_name_width, "-" * max_group_width, "-" * max_category_width) + + for package in valid_packages: + print(" ",package['name'].ljust(max_package_name_width), package['group'].ljust(max_group_width), package['category'].ljust(max_category_width)) + + print("Success! See above report.") + + \ No newline at end of file diff --git a/content/opensource_packages/harbor.md b/content/opensource_packages/harbor.md index 05d57e87..dede0c1c 100644 --- a/content/opensource_packages/harbor.md +++ b/content/opensource_packages/harbor.md @@ -1,6 +1,6 @@ --- name: Harbor -category: Container Registry +category: Containers and Orchestration description: An open source trusted cloud native registry project that stores, signs, and scans content. download_url: https://github.com/goharbor/harbor/releases works_on_arm: true diff --git a/themes/arm-design-system-hugo-theme/layouts/partials/eco-dashboard/info-top.html b/themes/arm-design-system-hugo-theme/layouts/partials/eco-dashboard/info-top.html index c307a4f0..b2c1d47b 100644 --- a/themes/arm-design-system-hugo-theme/layouts/partials/eco-dashboard/info-top.html +++ b/themes/arm-design-system-hugo-theme/layouts/partials/eco-dashboard/info-top.html @@ -16,12 +16,12 @@
- + Request or Contribute on GitHub
- + Request or Contribute on GitHub
From c205c483dcdc29af929b53294276889243ddf15b Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 10:12:07 -0500 Subject: [PATCH 26/31] Update contrib.md --- contrib.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib.md b/contrib.md index dfdc3100..50088252 100644 --- a/contrib.md +++ b/contrib.md @@ -34,7 +34,7 @@ Either 'true' or 'false'. If 'false', please fill out the 'alternative_options' `works_on_arm: true` ## version -This field specifies both the supported_minimum and recommended_minimum versions for this package to run on Arm. You should also include the dates that each version was released; this gives helpful context to the reader to assist their analysis. If a version just says the month and year it was released, you can fill in the first of the month to use the MM/DD/YYYY format. Here is a description of what both version fields mean: +This field specifies both the supported_minimum and recommended_minimum versions for this package to run on Arm. You should also include the dates that each version was released; this gives helpful context to the reader to assist their analysis. If a version just says the month and year it was released, you can fill in the first of the month to use the DD/MM/YYYY format. Here is a description of what both version fields mean: supported_minimum = The first version that enabled support for Arm hardware. This is an objective measurement, often found in package release notes or news. recommended_minimum = The first version that enabled good/great performance on Arm hardware. This is a subjective measurement, and information can be found around release notes, news, and developer first-hand experience. @@ -42,7 +42,7 @@ recommended_minimum = The first version that enabled good/great performance on A - supported_minimum: 20.00.0 - supported_minimum_date: 05/11/2020 - recommended_minimum: 22.04.3 -- recommended_minimum_date: 04/21/2022` +- recommended_minimum_date: 21/04/2022` # Optional Data These fields are an optional addition, adding more context to the package. Fill these out if appropriate. From 5c0ce6481723ab65610a681ad3dcb0e565eafd33 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 10:12:49 -0500 Subject: [PATCH 27/31] Update index.md --- archetypes/commercial_packages/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archetypes/commercial_packages/index.md b/archetypes/commercial_packages/index.md index 2a9e795c..97cd8bd6 100644 --- a/archetypes/commercial_packages/index.md +++ b/archetypes/commercial_packages/index.md @@ -5,7 +5,7 @@ category: # The category this package belongs in. Must select a category (not t description: # One complete sentence description of what this package is, ending in a period. If it has an open source equivalent, include what makes this commercial package different. product_url: # The URL that acts as the homepage for this product. Must start with 'https://'. works_on_arm: # Boolean. It is 'true' if this package works on arm, and 'false' if not. -release_date_on_arm: # The date, in MM/DD/YYYY format, when this package first worked on Arm. Example: '04/21/2024'. +release_date_on_arm: # The date, in DD/MM/YYYY format, when this package first worked on Arm. Example: '21/04/2024'. optional_info: From 6c47b6cbc72f306531a5609c41087862ba2d20dd Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 10:13:04 -0500 Subject: [PATCH 28/31] Update index.md --- archetypes/opensource_packages/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archetypes/opensource_packages/index.md b/archetypes/opensource_packages/index.md index ebd4fac5..c0908955 100644 --- a/archetypes/opensource_packages/index.md +++ b/archetypes/opensource_packages/index.md @@ -6,7 +6,7 @@ download_url: # The URL where a developer can download the most recent version o works_on_arm: # Boolean. It is 'true' if this package works on arm, and 'false' if not. supported_minimum_version: version_number: # The first version that enabled support for Arm, often found in package release notes or news. - release_date: # The date, in MM/DD/YYYY format, when this supported minimum version number was released. Example: '04/21/2024'. + release_date: # The date, in DD/MM/YYYY format, when this package first worked on Arm. Example: '21/04/2024'. optional_info: From 4414fa0fde2149202f017ee8b8220f1152271736 Mon Sep 17 00:00:00 2001 From: Zach Lasiuk <18421034+zachlasiuk@users.noreply.github.com> Date: Thu, 28 Mar 2024 10:17:59 -0500 Subject: [PATCH 29/31] Update main.yml --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 01d2c669..75710cf5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -31,12 +31,13 @@ jobs: hugo-version: '0.98.0' extended: true - # Runs pre-processing python scripts to ensure (1) date accuracy, and (2) category descriptions are always up-to-date + # Runs pre-processing python scripts to ensure (1) date accuracy, and (2) category descriptions are always up-to-date, and (3) the packages have valid categories - name: Python pre-processing run: | python --version python ./build_steps/update_category_mappings.py python ./build_steps/update_recently_added_json.py + python ./build_steps/validate_package_catagories.py # Builds arm-software-developer repo - name: Build From df7f067f2607d68e61ff99d1f481b9b7a4dcad2d Mon Sep 17 00:00:00 2001 From: Zach Lasiuk Date: Thu, 28 Mar 2024 10:26:19 -0500 Subject: [PATCH 30/31] updatedregressions --- build_steps/validate_package_dates.py | 116 ------------------ .../chef_infra_client_progress.md | 2 +- 2 files changed, 1 insertion(+), 117 deletions(-) delete mode 100644 build_steps/validate_package_dates.py diff --git a/build_steps/validate_package_dates.py b/build_steps/validate_package_dates.py deleted file mode 100644 index 473500f2..00000000 --- a/build_steps/validate_package_dates.py +++ /dev/null @@ -1,116 +0,0 @@ -import os, sys -from pathlib import Path -import yaml - - - -def isCategoryValid(string, dictionary): - # Check if any key in the dictionary matches the string - for key in dictionary: - if string in key: - return True - return False - - -if __name__ == "__main__": - - # Get the absolute path to this python file's directory - script_dir = Path(__file__).parent.absolute() - - # Relative path to content from script, then tet absolute path to content by combining, and use Resolve to handle backwards".." - category_data_yml_relative_path = Path('../data/category_data.yml') - category_data_yaml = (script_dir / category_data_yml_relative_path).resolve() - - - # content dirs - opensource_relative_path = Path('../content/opensource_packages') - opensource_absolute_path = (script_dir / opensource_relative_path).resolve() - - commercial_relative_path = Path('../content/commercial_packages') - commercial_absolute_path = (script_dir / commercial_relative_path).resolve() - - content_directories = [opensource_absolute_path, commercial_absolute_path] - - - - - # Read in category data into a dictionary, which maps {'category': 'group'}. - with open(category_data_yaml, 'r') as file: - data = yaml.safe_load(file) - category_dict = data["subcategory_mapping"] - - - - # Loop over all packages - invalid_packages = [] - valid_packages = [] - for content_directory in content_directories: - for f in os.listdir(content_directory): - if f.endswith(".md"): - file_path_full = os.path.join(content_directory, f) - with open(file_path_full, 'r') as file: - lines = file.readlines() - packages_type = 'Open source' - for line in lines: - if 'name:' in line: - packages_name = line.split('name:')[1].strip() - if 'category:' in line: - packages_category = line.split('category:')[1].strip() - if 'vendor:' in line: - packages_type = 'Commercial' - - # check if packages_category matches a key in category_dict - is_valid = isCategoryValid(packages_category,category_dict) - if is_valid: - valid_packages.append({ - "name": packages_name, - "category": packages_category, - "group": category_dict[packages_category] - }) - else: - invalid_packages.append({ - "name": packages_name, - "file": f, - "type": packages_type, - "category": packages_category, - }) - - - - - - - if invalid_packages: - # Maximum width for columns - max_package_name_width = max(len(max(invalid_packages, key=lambda x: len(x['name']))['name']), len('Package Name')) - max_category_width = max(len(max(invalid_packages, key=lambda x: len(x['category']))['category']), len('Wrong Category')) - max_type_width = max(len(max(invalid_packages, key=lambda x: len(x['type']))['type']), len('Type')) - max_file_width = max(len(max(invalid_packages, key=lambda x: len(x['file']))['file']), len('File')) - - - print("ERROR: The following packages have invalid categories:") - print(" ","Package Name".ljust(max_package_name_width), "Wrong Category".ljust(max_category_width), "Type".ljust(max_type_width), "File".ljust(max_file_width)) - print(" ","-" * max_package_name_width, "-" * max_category_width, "-" * max_type_width, "-" * max_file_width) - - # Print data rows - for package in invalid_packages: - print(" ",package['name'].ljust(max_package_name_width), package['category'].ljust(max_category_width), package['type'].ljust(max_type_width), package['file'].ljust(max_file_width)) - sys.exit(1) - - - else: - # Maximum width for columns - max_package_name_width = max(len(max(valid_packages, key=lambda x: len(x['name']))['name']), len('Package Name')) - max_category_width = max(len(max(valid_packages, key=lambda x: len(x['category']))['category']), len('Category')) - max_group_width = max(len(max(valid_packages, key=lambda x: len(x['group']))['group']), len('Group')) - - print("Success! Report of all packages:") - print(" ","Package Name".ljust(max_package_name_width), "Group".ljust(max_group_width), "Category".ljust(max_category_width)) - print(" ","-" * max_package_name_width, "-" * max_group_width, "-" * max_category_width) - - for package in valid_packages: - print(" ",package['name'].ljust(max_package_name_width), package['group'].ljust(max_group_width), package['category'].ljust(max_category_width)) - - print("Success! See above report.") - - \ No newline at end of file diff --git a/content/commercial_packages/chef_infra_client_progress.md b/content/commercial_packages/chef_infra_client_progress.md index d78d3321..d70b2ae7 100644 --- a/content/commercial_packages/chef_infra_client_progress.md +++ b/content/commercial_packages/chef_infra_client_progress.md @@ -1,7 +1,7 @@ --- name: Chef Infra Client vendor: Progress (Chef) -category: Devops +category: DevOps description: Chef Infra Client requests all the cookbook files (including recipes, templates, resources, providers, attributes, and libraries) that it needs for every action identified in the run-list from the Chef Infra Server. product_url: https://docs.chef.io/ctl_chef_client/ works_on_arm: true From dd027f831e919d9554ce8716ceeb5c8b4858f31d Mon Sep 17 00:00:00 2001 From: Zach Lasiuk Date: Thu, 28 Mar 2024 10:31:14 -0500 Subject: [PATCH 31/31] added analytics --- .../layouts/partials/head/analytics.html | 7 ------ .../partials/head/conditional-redirect.html | 18 --------------- .../layouts/partials/head/head.html | 7 +++--- .../layouts/partials/head/search-icons.html | 23 ------------------- 4 files changed, 3 insertions(+), 52 deletions(-) delete mode 100644 themes/arm-design-system-hugo-theme/layouts/partials/head/analytics.html delete mode 100644 themes/arm-design-system-hugo-theme/layouts/partials/head/conditional-redirect.html delete mode 100644 themes/arm-design-system-hugo-theme/layouts/partials/head/search-icons.html diff --git a/themes/arm-design-system-hugo-theme/layouts/partials/head/analytics.html b/themes/arm-design-system-hugo-theme/layouts/partials/head/analytics.html deleted file mode 100644 index c87f2c3e..00000000 --- a/themes/arm-design-system-hugo-theme/layouts/partials/head/analytics.html +++ /dev/null @@ -1,7 +0,0 @@ -{{/* -Place analytics in the header as specified by the analytics team; load async to avoid blocking - -Where it is used: - - all, called from baseof -*/}} - diff --git a/themes/arm-design-system-hugo-theme/layouts/partials/head/conditional-redirect.html b/themes/arm-design-system-hugo-theme/layouts/partials/head/conditional-redirect.html deleted file mode 100644 index 018c3bd4..00000000 --- a/themes/arm-design-system-hugo-theme/layouts/partials/head/conditional-redirect.html +++ /dev/null @@ -1,18 +0,0 @@ -{{/* -Redirects specific pages that do not contain any content/info, but have to be potentially gotten to for clarity in breadcrumb structure - -Where it is used: - - all, called from baseof - -Pages to redirect to the homepage: - - /learning-paths/ - - /learning-paths/cross-platform/ -*/}} - - -{{ $lastUrlElement := index (split .Page.Permalink "/") (sub (len (split .Page.Permalink "/")) 2) }} -{{ $pages_to_redirect_home := slice "learning-paths" "cross-platform" }} - -{{if in $pages_to_redirect_home $lastUrlElement}} - -{{end}} \ No newline at end of file diff --git a/themes/arm-design-system-hugo-theme/layouts/partials/head/head.html b/themes/arm-design-system-hugo-theme/layouts/partials/head/head.html index c746e198..45be1e26 100644 --- a/themes/arm-design-system-hugo-theme/layouts/partials/head/head.html +++ b/themes/arm-design-system-hugo-theme/layouts/partials/head/head.html @@ -31,10 +31,6 @@ {{/* CSS file update to without leading slash */}} {{ $css_file_location = trim $css_home.Permalink "/"}} -{{- else -}} - {{/* Tracking for Adobe on staging environment only */}} - - {{- end -}} @@ -55,6 +51,9 @@ + + + diff --git a/themes/arm-design-system-hugo-theme/layouts/partials/head/search-icons.html b/themes/arm-design-system-hugo-theme/layouts/partials/head/search-icons.html deleted file mode 100644 index 9212b0f9..00000000 --- a/themes/arm-design-system-hugo-theme/layouts/partials/head/search-icons.html +++ /dev/null @@ -1,23 +0,0 @@ -{{/* -Inserts images into search results - -Where it is used: - - all, called from baseof -*/}} - - - -{{ $relativeURL := .Page.RelPermalink | relURL }} -{{ $urlParts := split $relativeURL "/" }} -{{ $firstUrlElement := index $urlParts 1 }} - - -{{ if ne $firstUrlElement "" }} - {{if eq $firstUrlElement "learning-paths" }} - - {{else if eq $firstUrlElement "install-guides" }} - - {{else if eq $firstUrlElement "tag"}} - - {{end}} -{{end}}