diff --git a/.asf.yaml b/.asf.yaml index e61159a99e..7e71b6fb1a 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -23,18 +23,21 @@ github: projects: false wiki: false labels: + - iaas + - cloud - cloudstack + - infrastructure + - hosting enabled_merge_buttons: squash: true merge: false rebase: false - protected_branches: - main: {} + + protected_branches: ~ + collaborators: - acs-robot - - IvetPM - jamiepell10 - - vishesh92 notifications: commits: commits@cloudstack.apache.org @@ -46,8 +49,6 @@ notifications: staging: profile: ~ whoami: staged-site - outputdir: content publish: whoami: asf-site - outputdir: content diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e9d87eba4b..11b4e828c3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -23,8 +23,13 @@ on: - main pull_request: +permissions: + contents: read + jobs: deploy: + permissions: + contents: write # for peaceiris/actions-gh-pages to push pages branch if: github.repository_owner == 'apache' runs-on: ubuntu-latest steps: @@ -34,6 +39,7 @@ jobs: node-version: 16.x cache: yarn - run: | + cp static/robots.txt.main static/robots.txt yarn install --frozen-lockfile yarn build cp .asf.yaml ./build/.asf.yaml diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml new file mode 100644 index 0000000000..c0325ca6e4 --- /dev/null +++ b/.github/workflows/pre-commit.yml @@ -0,0 +1,49 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +name: pre-commit + +on: [pull_request] + +permissions: # added using https://github.com/step-security/secure-workflows + contents: read + +jobs: + pre-commit: + name: Run pre-commit # https://pre-commit.com/ + runs-on: ubuntu-latest + steps: + - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" + uses: actions/checkout@v4 + - uses: actions/setup-python@v5 # https://www.python.org/ + with: + python-version: '3.x' # Version range or exact version of a Python version to use, using SemVer's version range syntax + architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified + - name: Install dependencies # https://pip.pypa.io/en/stable/ + run: | + python -m pip install --upgrade pip + pip install pre-commit + - name: Set PY + run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> "$GITHUB_ENV" + - uses: actions/cache@v4 + with: + path: ~/.cache/pre-commit + key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }} + - name: Run pre-commit + run: pre-commit run --all-files + - name: Run manual pre-commit hooks + run: pre-commit run --all-files --hook-stage manual diff --git a/.github/workflows/stage.yaml b/.github/workflows/stage.yml similarity index 93% rename from .github/workflows/stage.yaml rename to .github/workflows/stage.yml index 23eae4e530..7fbe2f639d 100644 --- a/.github/workflows/stage.yaml +++ b/.github/workflows/stage.yml @@ -23,8 +23,13 @@ on: - staging-site pull_request: +permissions: + contents: read + jobs: deploy: + permissions: + contents: write # for peaceiris/actions-gh-pages to push pages branch if: github.repository_owner == 'apache' runs-on: ubuntu-latest steps: diff --git a/.gitignore b/.gitignore index 19be2d17b5..1e5352d0f8 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,3 @@ yarn-error.log* .emacs.desktop todo.txt - diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000000..8ac3a778b7 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,58 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +--- +# https://pre-commit.com/#installation +default_stages: [pre-commit, pre-push] +default_language_version: + # force all unspecified Python hooks to run python3 + python: python3 +minimum_pre_commit_version: '2.18.1' +repos: + - repo: meta + hooks: + - id: identity + - id: check-hooks-apply + - repo: https://github.com/oxipng/oxipng + rev: v9.1.5 + hooks: + - id: oxipng + args: ['--fix', '-o', '4', '--strip', 'safe', '--alpha'] + stages: [manual] + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + #- id: check-added-large-files + - id: check-case-conflict + - id: check-illegal-windows-names + - id: check-json + - id: check-merge-conflict + - id: check-shebang-scripts-are-executable + - id: check-vcs-permalinks + - id: check-yaml + - id: destroyed-symlinks + - id: detect-aws-credentials + args: [--allow-missing-credentials] + - id: detect-private-key + - id: end-of-file-fixer + exclude: \.svg$ + - id: fix-byte-order-marker + - id: forbid-submodules + - id: mixed-line-ending + exclude: ^static/img/.* + - id: trailing-whitespace + args: [--markdown-linebreak-ext=md] + exclude: ^static/.*$ diff --git a/LICENSE b/LICENSE index 5144feee30..60266c64de 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2013 - 2021 The Apache Software Foundation +Copyright (c) 2013 - 2024 The Apache Software Foundation Apache License diff --git a/README.md b/README.md index 15de008cfb..8858e6a1d2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Apache CloudStack Official Website -This project keeps all sources used for building up Apache CloudStack -official website which's served at https://cloudstack.apache.org/. +This project keeps all sources used for building up the Apache CloudStack +official website which is served at https://cloudstack.apache.org/. ## Contributing @@ -51,7 +51,7 @@ automation that can publish changes merged to 'main' branch being automatically published to the 'asf-site'. see the procedure below. -## publishing procedure +## Publishing procedure - create a change - test your change according to [the previous chapter](#building-and-publishing) @@ -59,7 +59,40 @@ published to the 'asf-site'. see the procedure below. - merge - wait for the staged-site to be updated and published - check the staging site -- merge staging-site to main -- wait for asf-site to be updated and publised to the main site +- next, on your local machine + - pull the latest staging-site and main branches + - merge staging-site to main + - push main +``` +git checkout staging-site +git pull +# git clean -d or similar if needed +git checkout main +git pull +git merge --ff-only staging-site +git push +``` +- wait for asf-site to be updated and published to the main site - check again -- go to sleep \ No newline at end of file +- go to sleep + + +## Updating the who.md file + +Every time new committers or PMC members are invited to CloudStack, the parent list maintained at: https://people.apache.org/committers-by-project.html#cloudstack is updated. This can be used to automate the generation of who.md file which is used at https://cloudstack.staged.apache.org/who/ + +To generate the who.md file, follow the given steps: + +1. Install the necessary dependencies: + +``` +pip install -r requirements.txt +``` + +2. Run the `generate_who.py` script + +``` +python3 source/generate_who.py +``` + +NOTE: Currently, the PMC Chair's name needs to be manually updated in the script. diff --git a/asf-matomo.js b/asf-matomo.js new file mode 100644 index 0000000000..8848bf9ca3 --- /dev/null +++ b/asf-matomo.js @@ -0,0 +1,16 @@ +import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment'; + +if (ExecutionEnvironment.canUseDOM) { + var _paq = window._paq = window._paq || []; + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '49']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); +} diff --git a/blog/.blog-template/header.png b/blog/.blog-template/header.png index 3981b0f798..72774ba715 100644 Binary files a/blog/.blog-template/header.png and b/blog/.blog-template/header.png differ diff --git a/blog/2013-02-26-apache_cloudstack_weekly_news_25.md b/blog/2013-02-26-apache_cloudstack_weekly_news_25.md index 12b12ed00d..1d99338755 100644 --- a/blog/2013-02-26-apache_cloudstack_weekly_news_25.md +++ b/blog/2013-02-26-apache_cloudstack_weekly_news_25.md @@ -43,7 +43,7 @@ possible.

QA Scrum Meeting Minutes
-

The QA Scrum meeting minutes for 18 February 2013 sent to the mailing list.

+

The QA Scrum meeting minutes for 18 February 2013 sent to the mailing list.

Weekly IRC Meeting Minutes
diff --git a/blog/2013-03-05-apache_cloudstack_weekly_news_41.md b/blog/2013-03-05-apache_cloudstack_weekly_news_41.md index 472452d5d7..3ec755b1b9 100644 --- a/blog/2013-03-05-apache_cloudstack_weekly_news_41.md +++ b/blog/2013-03-05-apache_cloudstack_weekly_news_41.md @@ -32,7 +32,7 @@ code developed elsewhere.

Rohit Yadav shared "that the do-it-yourself systemvm appliance feature works for me, for Xen,":

-

There is one catch though, VirtualBox exports VHD appliance which is said to be compliant with HyperV. I thought we may need to do something for Xen separately, so I followed and found a way. The "way" is to export a raw disk image and convert it to a VHD 1 but the problem is the VHD created from that "way" fails when vhd-util tries to scan for any dependent VHDs (parents etc.), I don't know what's the reason.

+

There is one catch though, VirtualBox exports VHD appliance which is said to be compliant with HyperV. I thought we may need to do something for Xen separately, so I followed and found a way. The "way" is to export a raw disk image and convert it to a VHD 1 but the problem is the VHD created from that "way" fails when vhd-util tries to scan for any dependent VHDs (parents etc.), I don't know what's the reason.

Read the rest of the thread if you have an interest in creating custom system VMs for CloudStack.

@@ -68,7 +68,7 @@ code developed elsewhere.

API Throttling
-

Parth Jagirdar has started a discuss thread about API throttling. "API throttling number can be set to anything at this point. Suggestions here is to have this number set to a value that is 'greater than' number of API that can be fired by any potential action on UI." (Note, Parth then sent out a follow-up email to correct the initial subject line from [DISCUSS} to DISCUSS, but all relevant discussion has happened in the original thread. It's probably not necessary to send a follow-up in those situations and may fragment the conversation.)

+

Parth Jagirdar has started a discuss thread about API throttling. "API throttling number can be set to anything at this point. Suggestions here is to have this number set to a value that is 'greater than' number of API that can be fired by any potential action on UI." (Note, Parth then sent out a follow-up email to correct the initial subject line from [DISCUSS} to DISCUSS, but all relevant discussion has happened in the original thread. It's probably not necessary to send a follow-up in those situations and may fragment the conversation.)

Branch Stability Status
diff --git a/blog/2013-03-12-apache_cloudstack_weekly_news_111.md b/blog/2013-03-12-apache_cloudstack_weekly_news_111.md index 9322cf2557..3a30ffec11 100644 --- a/blog/2013-03-12-apache_cloudstack_weekly_news_111.md +++ b/blog/2013-03-12-apache_cloudstack_weekly_news_111.md @@ -43,7 +43,7 @@ inefficient for certain primary storage types, for example if you end up creatin
Build Verification Test (BVT) for CloudStack Checkins
-

Alex Huang proposed building a BVT system to "ensure that checkins do not break the master branch."

+

Alex Huang proposed building a BVT system to "ensure that checkins do not break the master branch."

After a fair amount of discussion, Chip Childers responded, saying that the first step to getting Gerrit is "for us to agree to using it and to be able to clearly articulate why. Without being able to explain our issue, we'll be questioned about jumping to a tool-based solution by the infra team."

diff --git a/blog/2013-04-01-apache_cloudstack_weekly_news_1.md b/blog/2013-04-01-apache_cloudstack_weekly_news_1.md index fff5702c02..cc6c9a0814 100644 --- a/blog/2013-04-01-apache_cloudstack_weekly_news_1.md +++ b/blog/2013-04-01-apache_cloudstack_weekly_news_1.md @@ -25,7 +25,7 @@ slug: apache_cloudstack_weekly_news_1

Discussion continued on Murali Reddy's proposal to enhance the EIP functionality to work at the region level. This week, Murali explained in more detail what he was thinking:

-

CloudStack need not have a native capability to move IP across zone. From the CloudStack core perspective, all we need is abstraction of moving IP (presented as NAT) across the zones. Then we can have specific intelligence in the plug-ins which are providing EIP service. For e.g.'Route Health Injection' is commonly used solution in distributed data centres for disaster recovery supported by multiple vendors.

+

CloudStack need not have a native capability to move IP across zone. From the CloudStack core perspective, all we need is abstraction of moving IP (presented as NAT) across the zones. Then we can have specific intelligence in the plug-ins which are providing EIP service. For e.g.'Route Health Injection' is commonly used solution in distributed data centres for disaster recovery supported by multiple vendors.

Upgrade Process from 4.0.x to 4.1.0
diff --git a/blog/2013-07-02-apache_cloudstack_weekly_news_12.md b/blog/2013-07-02-apache_cloudstack_weekly_news_12.md index 064fe43090..e40df2282d 100644 --- a/blog/2013-07-02-apache_cloudstack_weekly_news_12.md +++ b/blog/2013-07-02-apache_cloudstack_weekly_news_12.md @@ -111,7 +111,7 @@ slug: apache_cloudstack_weekly_news_12

After complaints that the BVT environment was broken, Alex Huang did some investigating to identify the root cause and raise a suggest on how BVT testing should be dealt with in the future.

-

After Dave's complain in the vmsync MERGE thread about BVT in horrible shape on master, I went around to figure out what exactly happened. The best I can figure is that after a certain merge (I will leave out which merge as that's not important), BVT no longer runs automatically. It was promised to be fixed and there are people who are actively fixing it but it's been in this way for about two weeks. People running BVTs are working around the problem but it's not automated anymore and so it's no longer running on master. I understand people are nice and tried to be accommodating to other people by working around the problem but sometimes we just have to be an arse. So let me be that arse...

+

After Dave's complain in the vmsync MERGE thread about BVT in horrible shape on master, I went around to figure out what exactly happened. The best I can figure is that after a certain merge (I will leave out which merge as that's not important), BVT no longer runs automatically. It was promised to be fixed and there are people who are actively fixing it but it's been in this way for about two weeks. People running BVTs are working around the problem but it's not automated anymore and so it's no longer running on master. I understand people are nice and tried to be accommodating to other people by working around the problem but sometimes we just have to be an arse. So let me be that arse...

New Rule....
If BVT or automated regression tests break on master or any release branch, we revert all commits that broke it. It doesn't matter if they promise to fix it within the next hour. If it's broken, the release manager will revert the commits and developers must resubmit. It sounds mean but it's the only way this problem can be fixed.

diff --git a/blog/2013-07-11-cloudstack_weekly_news_10_july.md b/blog/2013-07-11-cloudstack_weekly_news_10_july.md index d054c46cb9..e030429ee9 100644 --- a/blog/2013-07-11-cloudstack_weekly_news_10_july.md +++ b/blog/2013-07-11-cloudstack_weekly_news_10_july.md @@ -157,7 +157,7 @@ slug: cloudstack_weekly_news_10_july

Sudha Ponnaganti posted a list of 543 defects that are in resolved state that need to re-validated, reopened or closed. Please look through this list and check to see if you're assigned to any of these defects.

-

There are 543 defects in Resolved state and not closed. Please make sure that you validate and close the defect if you are satisfied with the fix. If there are issues with the fix, pl reopen the defect. Pl note that these need to be validated in 4.2 branch as all are fixed in 4.2 ( should be applicable for master as well). You can prioritize these based on the blocker, critical, major etc. As team is already done with the features, this is good time to close these...

+

There are 543 defects in Resolved state and not closed. Please make sure that you validate and close the defect if you are satisfied with the fix. If there are issues with the fix, pl reopen the defect. Pl note that these need to be validated in 4.2 branch as all are fixed in 4.2 ( should be applicable for master as well). You can prioritize these based on the blocker, critical, major etc. As team is already done with the features, this is good time to close these...

Coding Convention Reminder
diff --git a/blog/2013-08-16-announcing_the_cloudstack_collaboration_conference.md b/blog/2013-08-16-announcing_the_cloudstack_collaboration_conference.md index b96f61d695..fbb69d6194 100644 --- a/blog/2013-08-16-announcing_the_cloudstack_collaboration_conference.md +++ b/blog/2013-08-16-announcing_the_cloudstack_collaboration_conference.md @@ -14,21 +14,21 @@ slug: announcing_the_cloudstack_collaboration_conference

Important Dates

-

The Call for Papers will run from today (August 16th) to September 30th. We will send out notifications shortly after closing the Call for Papers.

+

The Call for Papers will run from today (August 16th) to September 30th. We will send out notifications shortly after closing the Call for Papers.

-

The Conference Hack Day will be November 20th

+

The Conference Hack Day will be November 20th

The Conference talks and planned sessions begin on November 21th

The Conference ends on November 22th

-

Registration

+

Registration

-

We will announce the registration in a short while, please keep an eye on the website http://www.cloudstackcollab.org/ for more details.

+

We will announce the registration in a short while, please keep an eye on the website http://www.cloudstackcollab.org/ for more details.

-

Location

+

Location

The conference will be at the Beurs van Berlage in Amsterdam, The Netherlands. Located in the city center it is close to quite a number of hotels and hostels in Amsterdam. We are looking at the possibility to make a deal with one of the hotels in the immediate vicinity of the conference location. We will update the conference website when we have the details.

-

Sponsoring

+

Sponsoring

Sponsoring opportunities are available for the CloudStack Collaboration Conference. At the conference website http://www.cloudstackcollab.org/sponsors some of our sponsors will explain you the benefits in a video message. If you’d like to see the sponsorship prospectus or ask about sponsoring, contact sponsors@cloudstackcollab.org.

diff --git a/blog/2014-01-10-cve_2013_6398_cloudstack_virtual.md b/blog/2014-01-10-cve_2013_6398_cloudstack_virtual.md index d7b75be05f..00b0146996 100644 --- a/blog/2014-01-10-cve_2013_6398_cloudstack_virtual.md +++ b/blog/2014-01-10-cve_2013_6398_cloudstack_virtual.md @@ -13,7 +13,7 @@ CVE References: CVE-2013-2136
Risk Level: Low
CVSSv2 Base Scores: 2.8 (AV:N/AC:M/Au:M/C:P/I:N/A:N)

-

Description:

+

Description:

The Apache CloudStack Security Team was notified of a an issue in the Apache CloudStack virtual router that failed to preserve source restrictions in firewall rules after a virtual router had been stopped and restarted.

Mitigation:

diff --git a/blog/2014-01-10-cve_2014_0031_cloudstack_listnetworkacl.md b/blog/2014-01-10-cve_2014_0031_cloudstack_listnetworkacl.md index 2da922fb5d..cfb5d0dd1c 100644 --- a/blog/2014-01-10-cve_2014_0031_cloudstack_listnetworkacl.md +++ b/blog/2014-01-10-cve_2014_0031_cloudstack_listnetworkacl.md @@ -14,7 +14,7 @@ Risk Level: Low
CVSSv2 Base Scores: 3.5 (AV:N/AC:M/Au:S/C:P/I:N/A:N)

-

Description:

+

Description:

The Apache CloudStack Security Team was notified of a an issue in Apache CloudStack which permits an authenticated user to list network ACLs for other users.

diff --git a/blog/2015-01-09-announce_announcing_apache_cloudstack_4.md b/blog/2015-01-09-announce_announcing_apache_cloudstack_4.md index b6dbcc6f37..8591c5603b 100644 --- a/blog/2015-01-09-announce_announcing_apache_cloudstack_4.md +++ b/blog/2015-01-09-announce_announcing_apache_cloudstack_4.md @@ -7,7 +7,7 @@ slug: announce_announcing_apache_cloudstack_4

The Apache CloudStack project is pleased to announce the 4.3.2 release of the CloudStack cloud orchestration platform. This is a minor release of the 4.3 branch which released on March 25, 2014. The 4.3.2 release -contains more than 100 bug fixes since the 4.3.1 release. As a bug fix +contains more than 100 bug fixes since the 4.3.1 release. As a bug fix release, no new features are included in 4.3.2.

As a minor release it is a simple upgrade from 4.3.0 or 4.3.1 with no diff --git a/blog/2015-12-02-apache_cloudstack_4_6_is.md b/blog/2015-12-02-apache_cloudstack_4_6_is.md index c99acddf09..181be9b7ee 100644 --- a/blog/2015-12-02-apache_cloudstack_4_6_is.md +++ b/blog/2015-12-02-apache_cloudstack_4_6_is.md @@ -5,17 +5,17 @@ tags: [announcement] slug: apache_cloudstack_4_6_is ---

The Apache Software Foundation (ASF), the all-volunteer developers, stewards, and incubators of more than 350 Open Source projects and initiatives, announced today the availability of Apache™ CloudStack™ v4.6, the turnkey Open Source cloud computing software platform used for creating private-, public-, and hybrid cloud environments.

- +

Apache CloudStack clouds enable billions of dollars' worth of business transactions annually across their clouds, and its maturity and stability has led it to has become the Open Source platform for many service providers to set up on-demand, elastic public cloud computing services, as well as enterprises and others to set up a private or hybrid cloud for use by their own employees.

- +

"This 4.6 release of Apache CloudStack marks a significant shift in how we release CloudStack," said Sebastien Goasguen, Vice President of Apache CloudStack. "With a focus on quality and speed of releasing software, we implemented a new release workflow which allows us to have a production-ready release branch all the time, and allows us to quickly release new features. From now on, CloudStack will be released much faster without regression and with increased quality in each version."

- +

Recognized as the Cloud orchestration platform that "just works", CloudStack includes an intuitive user interface and rich APIs for managing the compute, networking, software, and storage infrastructure resources.

- +

Under the Hood

- +

CloudStack v4.6 reflects dozens of new features and improvements, including:

- +