From b44c03eb7af81f29712592f8c58b7f2d5fb1f1c9 Mon Sep 17 00:00:00 2001
From: Justin Mclean
Date: Fri, 16 Oct 2026 20:34:26 +1100
Subject: [PATCH] Fix trailing spaces and blank lines in pages
Turns MD009, MD012, MD022, MD031 and MD032 back on and fixes the pages that broke them. Whitespace only, apart from one blog paragraph that now splits where the author left a blank line.
---
.markdownlint-cli2.yaml | 5 -
content/blog/2022_Infra_Survey_Results.md | 5 +-
content/blog/2023 Infra Survey Results.md | 2 +-
content/blog/Blogs has a new home.md | 1 -
content/blog/Danny_Angus_Infra_VP.md | 18 ++-
content/blog/README.md | 4 +-
content/blog/add_wisdom.md | 4 +-
content/blog/another-oar-in-the-water.md | 6 +-
content/blog/apache-and-github-a-friendly.md | 14 +-
content/blog/apache_cms_and_external_build.md | 6 +-
content/blog/apache_cms_latest_new_feature.md | 10 +-
content/blog/apache_cms_new_features_for.md | 8 +-
content/blog/apache_org_04_09_2010.md | 85 ++++++------
.../blog/apache_org_incident_report_for.md | 26 ++--
content/blog/apache_services_and_sha_1.md | 34 ++---
content/blog/appveyor_ci_now_available_for.md | 18 +--
content/blog/asf_buildbot_svn_setup.md | 4 +-
content/blog/asf_comments_system_live.md | 4 +-
content/blog/blogs-a-o-moved-upgraded.md | 20 +--
content/blog/bob_thomson_joins_infra.md | 2 +-
content/blog/brand-new-selfserve-page.md | 3 +-
.../blog/bringing-gitpubsub-to-the-apache.md | 20 +--
.../buildbot_master_currently_off_line.md | 76 +++++------
content/blog/changes_to_email_service_for.md | 1 -
.../code_signing_service_now_available.md | 10 +-
.../blog/committer_shell_access_to_people.md | 10 +-
content/blog/committers_mail_relay_service.md | 14 +-
content/blog/continued_outages_for_the_asf.md | 6 +-
content/blog/dmarc_filtering_on_lists_that.md | 6 +-
.../blog/email_from_apache_org_committer.md | 6 +-
content/blog/end_of_home.md | 2 +-
.../blog/github_pull_request_builds_now.md | 30 ++---
content/blog/gradle_at_the_ASF.md | 9 +-
content/blog/heartbleed_fallout_for_apache.md | 32 ++---
content/blog/https_id_apache_org_new.md | 4 +-
...improved_integration_between_apache_and.md | 18 +--
.../infrastructure_team_adopting_an_on.md | 18 +--
content/blog/introducing_jira_service_desk.md | 8 +-
content/blog/ldap_and_password_policy.md | 4 +-
content/blog/mail_outage.md | 24 ++--
content/blog/mail_outage_post_mortem.md | 24 ++--
.../blog/mail_service_architecture_changes.md | 36 ++---
content/blog/mirroring_to_github_issues.md | 20 +--
.../blog/new-jenkins-nodes-running-windows.md | 2 +-
content/blog/new_infra_team_members.md | 12 +-
.../blog/new_monitoring_system_nagios_is.md | 26 ++--
content/blog/new_status_page_for_the.md | 6 +-
content/blog/newsletter_01_24.md | 6 +-
content/blog/newsletter_01_25.md | 7 +-
content/blog/newsletter_01_26.md | 3 +-
content/blog/newsletter_02_24.md | 2 +-
content/blog/newsletter_02_25.md | 5 +-
content/blog/newsletter_02_26.md | 13 +-
content/blog/newsletter_03_24.md | 2 -
content/blog/newsletter_03_25.md | 2 +-
content/blog/newsletter_04_24.md | 4 +-
content/blog/newsletter_04_25.md | 5 +-
content/blog/newsletter_04_26.md | 2 +-
content/blog/newsletter_05_24.md | 4 +-
content/blog/newsletter_05_26.md | 6 +-
content/blog/newsletter_06_24.md | 10 +-
content/blog/newsletter_06_25.md | 3 +-
content/blog/newsletter_06_26.md | 4 +-
content/blog/newsletter_07_24.md | 1 +
content/blog/newsletter_07_26.md | 2 +-
content/blog/newsletter_08_25.md | 3 +-
content/blog/newsletter_08_26.md | 1 -
content/blog/newsletter_09_24.md | 5 -
content/blog/newsletter_09_25.md | 5 +-
content/blog/newsletter_09_26.md | 3 +-
content/blog/newsletter_10_24.md | 3 +-
content/blog/newsletter_10_25.md | 4 +-
content/blog/newsletter_11_24.md | 2 +-
content/blog/newsletter_11_25.md | 2 -
content/blog/newsletter_12_24.md | 3 +-
content/blog/newsletter_12_25.md | 2 -
.../blog/on_demand_workers_from_rackspace.md | 16 +--
content/blog/parallelputissue.md | 2 +-
content/blog/paste_apache_org_sees_the.md | 26 ++--
.../blog/pear_package_hosting_available1.md | 2 +-
content/blog/planned_downtime_for_jira1.md | 2 +-
.../blog/planned_downtime_for_reviewboard.md | 16 +--
...le-infrastructure-systems-administrator.md | 2 +-
...le_infrastructure_systems_administrator.md | 32 ++---
content/blog/promoting-podlings.md | 2 +-
.../blog/rate-limiting-on-apache-services.md | 30 ++---
.../relocation-of-apache-git-repositories.md | 28 ++--
content/blog/responding_to_2024_survey.md | 2 +-
content/blog/roller-updated-to-5-2.md | 6 +-
content/blog/roller_installed_for_use_by.md | 1 -
content/blog/s_apache_org_uri_shortening.md | 6 +-
content/blog/scaling_down_the_cms_to.md | 6 +-
content/blog/subversion-to-git-service-git.md | 26 ++--
...master_undergoing_emergency_maintenance.md | 50 +++----
content/blog/svn_service_outage_postmortem.md | 126 +++++++++---------
content/blog/the_joy_of_feedback.md | 15 +--
content/blog/the_value_of_taint_checks.md | 24 ++--
.../blog/towards_a_redeployable_future_or.md | 8 +-
content/blog/trivy_security_incident.md | 4 +
content/blog/welcome_new_members_of_the.md | 24 ++--
content/pages/account-mgmt.md | 10 +-
content/pages/apache-github.md | 6 +-
content/pages/app-upgrade-policy.md | 6 +-
content/pages/apple-dev-program.md | 3 +-
content/pages/asf-pelican-branches.md | 2 +-
content/pages/asf-pelican-build.md | 5 +-
content/pages/asf-pelican-config.md | 2 +-
content/pages/asf-pelican-data.md | 6 +-
content/pages/asf-pelican-gettingstarted.md | 3 +-
content/pages/asf-pelican-local.md | 3 +-
content/pages/asf-pelican-plugins.md | 5 +-
content/pages/asf-pelican-theme.md | 5 +-
content/pages/asfbot.md | 9 +-
content/pages/asfquart.md | 2 +-
content/pages/asfyaml-mkdocs.md | 2 +-
content/pages/backup-policy.md | 4 +
content/pages/bug-writing-guide.md | 3 +-
content/pages/build-supported-services.md | 28 +++-
content/pages/code-signing-use.md | 8 +-
content/pages/committer-email.md | 11 +-
content/pages/committer-outreach.md | 2 +-
content/pages/committers.md | 1 -
content/pages/contact.md | 13 +-
content/pages/content-moderation.md | 15 ++-
content/pages/contributors.md | 5 +-
content/pages/crypto.md | 2 +-
content/pages/csp.md | 4 +-
content/pages/cwiki.md | 8 +-
content/pages/digicert-use.md | 6 +-
content/pages/doc.md | 5 +-
content/pages/docker-hub-policy.md | 3 +-
content/pages/email_lists.md | 6 +-
content/pages/gfm.md | 4 +-
content/pages/git-primer.md | 7 +-
content/pages/git.md | 3 +-
content/pages/github-actions-policy.md | 8 +-
content/pages/github-actions-secrets.md | 4 +-
content/pages/github-pages.md | 2 +-
content/pages/github-roles.md | 5 +-
content/pages/glossary.md | 1 -
content/pages/gradle.md | 6 +-
content/pages/hosting-external-agent.md | 7 +-
content/pages/how-to-mirror.md | 8 +-
content/pages/infra-contact.md | 22 ++-
content/pages/infra-incubator.md | 4 +-
content/pages/infra-mail.md | 3 +-
content/pages/infra-news.md | 2 +-
content/pages/infra-reports.md | 4 +-
content/pages/infra-volunteer.md | 2 -
.../pages/jira-account-retention-policy.md | 2 +-
content/pages/jira-approve-account.md | 3 +
content/pages/jira-for-infra.md | 3 +-
content/pages/jira-guidelines.md | 14 +-
content/pages/key-transition.md | 2 +-
content/pages/licensing-howto.md | 1 +
content/pages/localization.md | 4 +-
content/pages/mail-migration-faq.md | 32 ++---
content/pages/mail-rejection.md | 4 +-
content/pages/mailing-list-moderation.md | 12 +-
content/pages/managing-committers.md | 2 +-
content/pages/matomo.md | 3 -
content/pages/mfa-reset.md | 4 +-
content/pages/mfa.md | 1 +
content/pages/new-committers-guide.md | 2 +
content/pages/nexus101.md | 2 -
content/pages/nightlies.md | 5 +
content/pages/open-access-svn.md | 4 +-
content/pages/openpgp.md | 33 +++--
content/pages/os-upgrade-policy.md | 6 +-
content/pages/password-policy.md | 37 ++---
content/pages/patch.md | 1 -
content/pages/pelican-buildbot.md | 7 +-
content/pages/phishing.md | 2 +-
content/pages/policies.md | 1 +
content/pages/project-blogs.md | 4 +-
content/pages/project-repo-policy.md | 1 -
content/pages/project-site-policy.md | 2 +-
content/pages/project-site.md | 25 ++--
content/pages/publishing-maven-artifacts.md | 14 +-
content/pages/pypubsub.md | 22 ++-
content/pages/qbot.md | 8 +-
content/pages/reference/committer/index.md | 2 +-
content/pages/reference/committer/start.md | 3 -
content/pages/release-distribution.md | 2 +-
content/pages/release-download-pages.md | 7 +-
content/pages/release-integrity-primer.md | 11 +-
content/pages/release-publishing.md | 21 ++-
content/pages/release-signing.md | 25 ++--
content/pages/repository-faq.md | 2 +-
content/pages/request-bug-tracker.md | 3 +-
content/pages/responsetime.md | 7 +-
content/pages/retired.md | 1 -
content/pages/roundtable.md | 4 +-
content/pages/sensitive_info.md | 2 +-
content/pages/services.md | 7 +-
content/pages/slack-policy.md | 3 +
content/pages/slack.md | 12 +-
content/pages/stats.md | 2 +-
content/pages/svn-basics.md | 2 +-
content/pages/svn-to-git-migration.md | 4 +-
content/pages/svngit2jira.md | 4 +-
content/pages/team.md | 6 +-
content/pages/tools/csp.md | 14 +-
content/pages/tools/index.md | 2 -
content/pages/user-ssh.md | 4 +-
content/pages/version-control.md | 12 +-
content/pages/vm-for-project.md | 2 -
content/pages/vm-management.md | 2 +
content/pages/website-guidelines.md | 3 +-
209 files changed, 1011 insertions(+), 979 deletions(-)
diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml
index da6830ea0..8c0b508f4 100644
--- a/.markdownlint-cli2.yaml
+++ b/.markdownlint-cli2.yaml
@@ -18,19 +18,14 @@ config:
MD004: false
MD005: false
MD007: false
- MD009: false
MD010: false
- MD012: false
MD014: false
MD018: false
- MD022: false
MD024: false
MD025: false
MD026: false
MD029: false
MD030: false
- MD031: false
- MD032: false
MD034: false
MD036: false
MD038: false
diff --git a/content/blog/2022_Infra_Survey_Results.md b/content/blog/2022_Infra_Survey_Results.md
index 8bee93e9b..2b04a0f49 100644
--- a/content/blog/2022_Infra_Survey_Results.md
+++ b/content/blog/2022_Infra_Survey_Results.md
@@ -4,9 +4,11 @@ permalink: 2022_infra_survey_results
layout: post
### Intro
+
I'd like to thank everyone who took time to take the survey. This is the first time that I know of that we've tried something like this, and feedback is very important. I'd also like to take a second to clarify my tone for this article. I'm presenting as Chris T. the Infra person, not as an ASF Member or committer. So when I say "we" or "us", I'm referring to the other Infra folks, not specifically the Foundation as a whole or any Members. I am not posting the full results, but a summary of the data, as we had some responses that used enough information to identify the person being discussed. Those responses are 100% valid and I don't want to post an incomplete dataset with them removed.
### Summary of Results
+
We sent the survey to 4109 people (and anyone who went to the blog post would also have been able to complete the survey) and received 80 responses. While that isn't a huge number of results, it's a very manageable dataset to parse through. I also presume that some people submitting responses were conveying information gathered from other participants in their project. There weren't many surprises in responses, as we all know a lot of the pain points. However, it's vital for the Infra team to have data to back up our work and the resources we offer.
Here are the top subjects that were referred to:
@@ -20,7 +22,6 @@ Here are the top subjects that were referred to:
* Platforms (Jenkins, Buildbot, GHA, etc.)
1. Release process is a problem
-
The charts reflect the data above:
@@ -28,6 +29,6 @@ The charts reflect the data above:
-
### Next Steps
+
The easy thing would be to say, “Let’s fix all the things!” To be honest, there is on-going work with all the above issues, but most of them are not subject to a quick fix or a short answer. Now that we have data and a baseline, we’ll evaluate and discuss how we’re going to address your concerns. Since that I’ve never done one of these surveys before, I do not have the next steps laid out, so we’ll have to take them together.
diff --git a/content/blog/2023 Infra Survey Results.md b/content/blog/2023 Infra Survey Results.md
index a45cea74e..a7e042e47 100644
--- a/content/blog/2023 Infra Survey Results.md
+++ b/content/blog/2023 Infra Survey Results.md
@@ -69,7 +69,7 @@ We asked which existing services need improvement. These areas got the most vote
- Issue Tracking (Jira, GitHubIssues, Bugzilla) – 31%
- Documentation / Wiki pages – 31%
- Source control (GitHub/GitBox, SVN) – 19%
- - Messaging (Slack, mailing lists) – 19%
+ - Messaging (Slack, mailing lists) – 19%
Comments:
diff --git a/content/blog/Blogs has a new home.md b/content/blog/Blogs has a new home.md
index 4dfe21333..0452bbeba 100644
--- a/content/blog/Blogs has a new home.md
+++ b/content/blog/Blogs has a new home.md
@@ -3,4 +3,3 @@ date: '2022-10-24T12:54:00+00:00'
permalink: blogs-has-a-new-home
Just moved posts over from blogs.apache.org/infra. New posts all go through the infrastructure-website repo and it should be as easy as posting some markdown.
-
diff --git a/content/blog/Danny_Angus_Infra_VP.md b/content/blog/Danny_Angus_Infra_VP.md
index 36610b6ae..5a6bf8e24 100644
--- a/content/blog/Danny_Angus_Infra_VP.md
+++ b/content/blog/Danny_Angus_Infra_VP.md
@@ -5,37 +5,45 @@ permalink: danny_angus_infra_vp layout: post
_Danny Angus became VP-Infra in 2025, succeeding Myrle Krantz_
## What is your technical background?
+
I have no relevant qualification. I'm basically self taught; From books initially, then the internet. Participating in ASF projects has been a very important part of my learning, and that continues today.
I have been a tinkerer since i was at school. I had a physics teacher when I was about 17 who retrieved a large computer from a scrap yard (it took three trips) in the early 80s, welded it back together and then we learned how to program it using punched cards and teletype. Imagine our joy when he upgraded it to punched tape.
-So when the dot com thing happened I wanted to be part of that, and with a good friend we found our way to interviews. I won the toss and went for a developer role with Perl skills. The interview was a week away, so I bought **Learn Perl in Seven Days**. I got the job.
+So when the dot com thing happened I wanted to be part of that, and with a good friend we found our way to interviews. I won the toss and went for a developer role with Perl skills. The interview was a week away, so I bought **Learn Perl in Seven Days**. I got the job.
I have kept on learning and doing, getting to Principal Engineer and moving to engineering manager. Learning and following my curiosity.
## When you are not doing ASF stuff, what do you do?
-I enjoy baking (and eating baked goods. I learned how to bake so I can eat the things I love.), the outdoors, cycling, hiking, boats, cars, and I am a tinkerer. I'm always tinkering with something, or learning new skills. I've reached the point where I choose to buy old and poorly maintained things instead of new ones, because that gives me more to learn about and tinker with. On the electronics front, I have found a rich seam of tinkering in hand-rolled home automation. Right now my lights have a habit of coming on unexpectedly when the connection is lost to the EC2 instance that I have set up to run it all. (and you thought I wasn't eccentric!)
+
+I enjoy baking (and eating baked goods. I learned how to bake so I can eat the things I love.), the outdoors, cycling, hiking, boats, cars, and I am a tinkerer. I'm always tinkering with something, or learning new skills. I've reached the point where I choose to buy old and poorly maintained things instead of new ones, because that gives me more to learn about and tinker with. On the electronics front, I have found a rich seam of tinkering in hand-rolled home automation. Right now my lights have a habit of coming on unexpectedly when the connection is lost to the EC2 instance that I have set up to run it all. (and you thought I wasn't eccentric!)
## How did you find your way into open source, and then to The Apache Software Foundation?
+
It was 24 years ago, and I worked for a startup that wanted to do stuff with natural language processing and email. We needed a mail processor that could use a database for storage and I found Apache James. Of course, the database layer didn't work well enough, so I fixed it, learned a lot, made friends, stuck around.
## What attracted you to working with the Infrastructure team?
+
I recently came off my bike and had concussion. I think I may have been unconscious when the handover plan was pressed into my hand. No, actually, I have a load of relevant experience from work that I can bring to this: experience like managing jira instances, email processing, cloud products, security, CI/CD all help me understand the work we do and the needs of our user. Skills like people management and budget responsibility are what I can give back. In short, it seemed like I was a good fit, and as workaholic I couldn't resist!
## What are the biggest challenges Infra faces at the moment?
+
The same challenges the Foundation has always faced: How do we keep our core services up to date? How do we meet the expectations of new generations of builders and innovators? How can we pay for it all? Plus one trending new one: How do we embrace the rise of gen AI?
## Have there been any surprises once you became VP-Infra?
-Only good ones, I have been surprised by how nice everyone is, how well everything is run, and best of all how positive and supportive our 'users' were when we met them in real life at Community Over Code. That encouraged me a lot. There is always a risk that Infra, because we have a bunch of paid roles, could be seen as a separate entity paid to serve the volunteer community.
+
+Only good ones, I have been surprised by how nice everyone is, how well everything is run, and best of all how positive and supportive our 'users' were when we met them in real life at Community Over Code. That encouraged me a lot. There is always a risk that Infra, because we have a bunch of paid roles, could be seen as a separate entity paid to serve the volunteer community.
The ASF I joined was a place where eveything was figured out and done by volunteers, often with no better qualifications than curiosity and enthusiasm. I'm keen we continue to encourage volunteers to come and help us do cool things.
## With the Tooling team taking on many of the tasks that had fallen to Infra in the past, what do you see the team focussing on in 2025 and 2026?
-It makes a lot of sense to me that we would separate these things. I think Infra, particularly the part that costs money, has to be laser-focused on operations. The challenging and interesting work comes about because our users are innovators whose expectations change with time, while the needs of the Foundation remain somewhat stable, and as a non profit we need to operate on donations of various kinds.
-Our archive of historic activity needs to be durable and accessible, we have to support new ways of building software, we are not here to pick winners, and we aspire to give our users the flexibility to truly innovate, not only in the software they invent and build, but also in the way they choose to organize, build and distribute it.
+It makes a lot of sense to me that we would separate these things. I think Infra, particularly the part that costs money, has to be laser-focused on operations. The challenging and interesting work comes about because our users are innovators whose expectations change with time, while the needs of the Foundation remain somewhat stable, and as a non profit we need to operate on donations of various kinds.
+
+Our archive of historic activity needs to be durable and accessible, we have to support new ways of building software, we are not here to pick winners, and we aspire to give our users the flexibility to truly innovate, not only in the software they invent and build, but also in the way they choose to organize, build and distribute it.
The tooling team are building some of the tools builders need, but Infra are the ones who will scale and operate it. We all want ASF Infra to be a tailwind to world class innovation.
## Has the team assigned you an emoji yet?
+
NO! OMG is that an option?
diff --git a/content/blog/README.md b/content/blog/README.md
index 7fdaa8612..12243074a 100644
--- a/content/blog/README.md
+++ b/content/blog/README.md
@@ -34,7 +34,8 @@ Pelican supports these tags, which the Infra blog does not use:
- template: template to use to generate content
- translation (true or false)
-The first line of the file should have this metadata, at a minimum:
+The first line of the file should have this metadata, at a minimum:
+
```
layout: post title: THE ENTRY'S TITLE date: 2010-01-01 permalink: KEY WORDS FROM THE TITLE category CATEGORY
```
@@ -54,6 +55,7 @@ category CATEGORY
### Creating a blog entry
To create an entry, create an .md file in this folder. The file's name should probably be like the permalink for the entry.
+
- give the file a meaningful title that does not duplicate one we have used already.
- Starting at the first line of the file, add metadata for the entry, as described above.
diff --git a/content/blog/add_wisdom.md b/content/blog/add_wisdom.md
index 7ac1f01ed..2b2d4c455 100644
--- a/content/blog/add_wisdom.md
+++ b/content/blog/add_wisdom.md
@@ -13,21 +13,19 @@ If you join the `users@infra.apache.org` email list, you can help answer the man
The issues range in complexity. Any committer or ASF Member is well-positioned to answer all but the most gnarly ones.
-
**Join the Roundtables**
Infra holds regular roundtable discussions on important topics in the World of Infrastructure. These are not lectures, where an Infra member holds forth and everybody is supposed to sit in respectful silence. Rather, the Infra team is hoping to gain insights and guidance from members of the ASF community that will improve how the team works or a tool it is developing.
The roundtables usually take place on the **first Wednesday of each month**, on the `#roundtable` channel in the `the-ASF` workspace on Slack. They are available to anyone who can access the ASF workspace on Slack: basically, committers and Members.
+
- Here are details about the Roundtables, including information on joining the `#roundtable` channel.
- We don't record the sessions, but we do take copious notes.
-
**Build better builds**
A group meets regularly (usually the second Thursday of the month) in the `#builds` channel in the `the-ASF` workspace on Slack to explore issues related to builds of ASF projects' products. You are welcome whether you have a puzzle you need help solving, or some insights that may help others.
-
**Re-vision distribution**
Infra is starting to develop the **Artifacts Distribution Platform** (ADP). The idea is to consolidate `dist.apache.org`, `downloads.apache.org`, `rsync.apache.org` and `archive.apache.org` into one service that will free up resources and:
diff --git a/content/blog/another-oar-in-the-water.md b/content/blog/another-oar-in-the-water.md
index d5032bf0c..2948361f9 100644
--- a/content/blog/another-oar-in-the-water.md
+++ b/content/blog/another-oar-in-the-water.md
@@ -4,7 +4,7 @@ permalink: another-oar-in-the-water
layout: post
-The Infrastructure team (Infra) works behind the scenes to make it possible for Apache's galaxy of committers to do the cool stuff they do, and for the open-source world to get, use, and rely on applications Apache projects produce. Infra supports additions to code repositories, a constant stream of conversation among project committers and contributors, and about 100 terabytes a month of software downloads.
- Infra provides not just services, but knowledge. Infra's team and project committers rely on clear and accurate documentation about everything from how to update personal information to how to keep the Apache servers online, secure, and speedy.
- Over 20 years of work, however, Infra has built up a substantial quantity of documentation that may be hard for its intended audience to find, out of date, or no longer relevant. So, in December, 2019, the ASF hired Andrew Wetmore as a part-time Technical Writer-Editor. His job is to curate the existing documentation and, in coordination with the rest of the Infra team and the wider ASF community, extend and improve it.
+The Infrastructure team (Infra) works behind the scenes to make it possible for Apache's galaxy of committers to do the cool stuff they do, and for the open-source world to get, use, and rely on applications Apache projects produce. Infra supports additions to code repositories, a constant stream of conversation among project committers and contributors, and about 100 terabytes a month of software downloads.
+ Infra provides not just services, but knowledge. Infra's team and project committers rely on clear and accurate documentation about everything from how to update personal information to how to keep the Apache servers online, secure, and speedy.
+ Over 20 years of work, however, Infra has built up a substantial quantity of documentation that may be hard for its intended audience to find, out of date, or no longer relevant. So, in December, 2019, the ASF hired Andrew Wetmore as a part-time Technical Writer-Editor. His job is to curate the existing documentation and, in coordination with the rest of the Infra team and the wider ASF community, extend and improve it.
Andrew is a member of the PMC of Apache Royale, and spent fifteen years leading QA and documentation teams for software projects ranging from kitchen-table startups to major corporations. He lives in rural Nova Scotia, on the east coast of Canada, where he is the editor of a small publishing house.
diff --git a/content/blog/apache-and-github-a-friendly.md b/content/blog/apache-and-github-a-friendly.md
index 9c0dbc552..68f19d799 100644
--- a/content/blog/apache-and-github-a-friendly.md
+++ b/content/blog/apache-and-github-a-friendly.md
@@ -3,11 +3,11 @@ date: '2019-04-30T01:08:58+00:00'
permalink: apache-and-github-a-friendly
layout: post
- With the news of the Apache Software Foundation teaming up more closely with GitHub, we feel it natural to elaborate a bit on what has been going on and what this means for you as a committer and/or user of Apache software.
- A little bit of history
The Apache Software Foundation started experimenting with git as a source code repository system in 2008, and ventured into GitHub in 2010, where we were graciously offered whatever resources we needed.
At first, this was merely a mirror of our existing git and subversion repositories, but as time went on, and projects expressed an interest in utilizing the many user-friendly features of GitHub, we started work on enabling projects to make proper use of GitHub some three years ago in the middle of 2016. This project, aptly named `gitbox`, ensured that committers could make full use of the GitHub features, while we kept a place within our own infrastructure for people inclined to continue using our infrastructure for their work. As git is decentralized by its very nature, we were able to use GitHub to augment rather than replace our git workflow, bringing our software development to the millions of users on GitHub in addition to the existing Apache community and committers, on a case-by-case basis.
In 2018, we made the decision to combine the two different git service offerings we had into one service, allowing all Apache projects to use GitHub if they so desired. Before then, we had two distinct git services: gitbox and git-wip-us, the initial git service that had been available since 2010. We coordinated the move from git-wip to gitbox with the various Apache projects, and in early 2019 we had migrated all projects to the new service, enabling GitHub features for all git-based Apache projects.
With Microsoft's acquisition of GitHub in 2018, and their commitment to help strengthen open source development, we have received additional resources to help lower the bar for contributions, and we'd like to thank GitHub for their support of the Apache Software Foundation through all nine years of using their platform.
- What this means for you as a committer
As stated above, our GitHub integration is an augmentation of our existing service. It is available to all committers on git-based projects to make use of, should they so wish. All new git repositories will automatically be available on both GitHub and Gitbox.
For those wishing to take full advantage of GitHub's features, one can link their GitHub and Apache accounts through https://gitbox.apache.org/setup/ which will grant their GitHub account write access to the repositories you'd traditionally have access to at Apache.
People that wish to continue using their Apache committer accounts to commit code may continue doing so on gitbox.apache.org with their Apache credentials. Nothing has changed in that respect.
As Apache is a very email-centered organization, all GitHub activity is naturally linked to our mailing lists to ensure the same level of openness in the development of our software.
- What this means for you as a user of Apache software
-
For many projects, the move to GitHub means a lower bar to both contributing as well as troubleshooting and submitting issues to the projects, through the GitHub issue and pull request features.
Our commitment to provenance, quality and open governance remains the same, and with our tight integration with GitHub through our linked account service, we are able to bring what made Apache a mark of quality to the many users and contributors on GitHub.
-
-
+ With the news of the Apache Software Foundation teaming up more closely with GitHub, we feel it natural to elaborate a bit on what has been going on and what this means for you as a committer and/or user of Apache software.
+ A little bit of history
The Apache Software Foundation started experimenting with git as a source code repository system in 2008, and ventured into GitHub in 2010, where we were graciously offered whatever resources we needed.
At first, this was merely a mirror of our existing git and subversion repositories, but as time went on, and projects expressed an interest in utilizing the many user-friendly features of GitHub, we started work on enabling projects to make proper use of GitHub some three years ago in the middle of 2016. This project, aptly named `gitbox`, ensured that committers could make full use of the GitHub features, while we kept a place within our own infrastructure for people inclined to continue using our infrastructure for their work. As git is decentralized by its very nature, we were able to use GitHub to augment rather than replace our git workflow, bringing our software development to the millions of users on GitHub in addition to the existing Apache community and committers, on a case-by-case basis.
In 2018, we made the decision to combine the two different git service offerings we had into one service, allowing all Apache projects to use GitHub if they so desired. Before then, we had two distinct git services: gitbox and git-wip-us, the initial git service that had been available since 2010. We coordinated the move from git-wip to gitbox with the various Apache projects, and in early 2019 we had migrated all projects to the new service, enabling GitHub features for all git-based Apache projects.
With Microsoft's acquisition of GitHub in 2018, and their commitment to help strengthen open source development, we have received additional resources to help lower the bar for contributions, and we'd like to thank GitHub for their support of the Apache Software Foundation through all nine years of using their platform.
+ What this means for you as a committer
As stated above, our GitHub integration is an augmentation of our existing service. It is available to all committers on git-based projects to make use of, should they so wish. All new git repositories will automatically be available on both GitHub and Gitbox.
For those wishing to take full advantage of GitHub's features, one can link their GitHub and Apache accounts through https://gitbox.apache.org/setup/ which will grant their GitHub account write access to the repositories you'd traditionally have access to at Apache.
People that wish to continue using their Apache committer accounts to commit code may continue doing so on gitbox.apache.org with their Apache credentials. Nothing has changed in that respect.
As Apache is a very email-centered organization, all GitHub activity is naturally linked to our mailing lists to ensure the same level of openness in the development of our software.
+ What this means for you as a user of Apache software
+
For many projects, the move to GitHub means a lower bar to both contributing as well as troubleshooting and submitting issues to the projects, through the GitHub issue and pull request features.
Our commitment to provenance, quality and open governance remains the same, and with our tight integration with GitHub through our linked account service, we are able to bring what made Apache a mark of quality to the many users and contributors on GitHub.
+
+
As always, if you have any questions, comments, remarks or feedback about this, we welcome you to reach out to the Apache Infrastructure Team at: users@infra.apache.org
diff --git a/content/blog/apache_cms_and_external_build.md b/content/blog/apache_cms_and_external_build.md
index b7d67e7e8..52bfdacfb 100644
--- a/content/blog/apache_cms_and_external_build.md
+++ b/content/blog/apache_cms_and_external_build.md
@@ -9,7 +9,7 @@ layout: post
Links to suggestions for setting up a project website, and website guidelines, are available under "PMC resources" in the general Infrastructure documentation page.
-Recently we've been working with the maven team to facilitate migration of maven.apache.org to the Apache CMS, using maven as the core build system instead of the standard perl build scripts. A mockup has been created at maventest.apache.org to see how this will work. Once the site is completed, there will be roughly 5GB of data to service, spanning dozens of maven components. Each component will be self-contained and managed externally from the CMS site using a local maven svnpubsub plugin written mainly by Benson Margulies. The CMS will glue all the components together into a single common site using the extpaths.txt file to configure the paths.
- The doxia subproject requires special treatment as an independent CMS subproject which is also using maven as it's core build system. Special logic was introduced into the CMS to properly redirect subproject links based on maven source tree layouts, and the system has worked seamlessly so far.
- Other recent news includes the migration of the main incubator.apache.org site to the CMS. There the CMS relies on Ant/Anakia to produce site builds instead of the standard perl build scripts, providing an easy migration path for folks accustomed to the old way of building the site.
+Recently we've been working with the maven team to facilitate migration of maven.apache.org to the Apache CMS, using maven as the core build system instead of the standard perl build scripts. A mockup has been created at maventest.apache.org to see how this will work. Once the site is completed, there will be roughly 5GB of data to service, spanning dozens of maven components. Each component will be self-contained and managed externally from the CMS site using a local maven svnpubsub plugin written mainly by Benson Margulies. The CMS will glue all the components together into a single common site using the extpaths.txt file to configure the paths.
+ The doxia subproject requires special treatment as an independent CMS subproject which is also using maven as it's core build system. Special logic was introduced into the CMS to properly redirect subproject links based on maven source tree layouts, and the system has worked seamlessly so far.
+ Other recent news includes the migration of the main incubator.apache.org site to the CMS. There the CMS relies on Ant/Anakia to produce site builds instead of the standard perl build scripts, providing an easy migration path for folks accustomed to the old way of building the site.
Essentially we've made good on the promise that the CMS is simply CI for websites with an easy way of editing pages within your browser. Support for forrest builds is planned but hasn't been fleshed out with any live examples to date. That would round out the major java site-building technologies currently deployed by Apache projects- volunteers welcome!
diff --git a/content/blog/apache_cms_latest_new_feature.md b/content/blog/apache_cms_latest_new_feature.md
index 82b20c1cc..edd96c57a 100644
--- a/content/blog/apache_cms_latest_new_feature.md
+++ b/content/blog/apache_cms_latest_new_feature.md
@@ -8,9 +8,9 @@ layout: post
Links to suggestions for setting up a project website, and website guidelines, are available under "PMC resources" in the general Infrastructure documentation page.
-Over the past few months the Apache CMS has seen lots of new improvements, all under the general theme of making the system more performant. Supporting very large sites like the Apache OpenOffice User Site with almost 10 GB of content has presented new challenges, met largely with the introduction of zfs clones for generating per-user server-side working copies, changing what was an O(N) rsync job to an O(1) operation. We've also moved the update processing out-of-band to further cut down on the time it takes for the bookmarklet to produce a page, eliminating all O(N) algorithms from the process.
- More recent work focuses on the merge-based publication process, which for large changesets took a considerable amount of time to process. That too has been recoded based on svnmucc and is now another O(1) operation- essentially a perfect copy of staging with a few adjustments for "external" paths.
- Combine that with the activity around parallelizing the build system and you have a completely different performance profile compared to the way the system worked in 2011. In short, if you haven't tried the CMS lately, and were a bit offput by the page rendering times or build speeds, have another look!
-
- Next up: describing the work done around external build support, focusing first on maven based sites.
+Over the past few months the Apache CMS has seen lots of new improvements, all under the general theme of making the system more performant. Supporting very large sites like the Apache OpenOffice User Site with almost 10 GB of content has presented new challenges, met largely with the introduction of zfs clones for generating per-user server-side working copies, changing what was an O(N) rsync job to an O(1) operation. We've also moved the update processing out-of-band to further cut down on the time it takes for the bookmarklet to produce a page, eliminating all O(N) algorithms from the process.
+ More recent work focuses on the merge-based publication process, which for large changesets took a considerable amount of time to process. That too has been recoded based on svnmucc and is now another O(1) operation- essentially a perfect copy of staging with a few adjustments for "external" paths.
+ Combine that with the activity around parallelizing the build system and you have a completely different performance profile compared to the way the system worked in 2011. In short, if you haven't tried the CMS lately, and were a bit offput by the page rendering times or build speeds, have another look!
+
+ Next up: describing the work done around external build support, focusing first on maven based sites.
diff --git a/content/blog/apache_cms_new_features_for.md b/content/blog/apache_cms_new_features_for.md
index 8edd6918a..73e9ce772 100644
--- a/content/blog/apache_cms_new_features_for.md
+++ b/content/blog/apache_cms_new_features_for.md
@@ -9,8 +9,8 @@ layout: post
Links to suggestions for setting up a project website, and website guidelines, are available under "PMC resources" in the general Infrastructure documentation page.
-Two new features have recently been added to the CMS, courtesy of David Blevins. These features are geared towards streamlining the user experience for anonymous users. The first feature is "Quick Mail", which is the analog of "Quick Commit" but for anonymous users who cannot otherwise commit their changes directly. Quick Mail, which is enabled by default, will take the immediate submission of an anonymous Edit session and post it directly to the project's dev list, saving several steps that might be hard for a new user to walk through.
- The second feature is a natural result of that known as anonymous clones. In the subsequent mailout from "Quick Mail", there will be an URL for committers to use to effectively clone the working copy of the anonymous user who generated the patch. This makes review and subsequent commit operations much more convenient than directly applying the emailed patch to a local working copy. In fact it is possible for users to clone a non-anonymous user's working copy, so anyone experiencing chronic problems with their working copy on the CMS can get help from other committers by simply using the "Mail Diff" feature to contact either the dev list or another apache committer with details of their problem.
- We have added these features in the hopes this will considerably lower the bar for anonymous users in particular to take advantage of the CMS. Please let your community know about them!
-
+Two new features have recently been added to the CMS, courtesy of David Blevins. These features are geared towards streamlining the user experience for anonymous users. The first feature is "Quick Mail", which is the analog of "Quick Commit" but for anonymous users who cannot otherwise commit their changes directly. Quick Mail, which is enabled by default, will take the immediate submission of an anonymous Edit session and post it directly to the project's dev list, saving several steps that might be hard for a new user to walk through.
+ The second feature is a natural result of that known as anonymous clones. In the subsequent mailout from "Quick Mail", there will be an URL for committers to use to effectively clone the working copy of the anonymous user who generated the patch. This makes review and subsequent commit operations much more convenient than directly applying the emailed patch to a local working copy. In fact it is possible for users to clone a non-anonymous user's working copy, so anyone experiencing chronic problems with their working copy on the CMS can get help from other committers by simply using the "Mail Diff" feature to contact either the dev list or another apache committer with details of their problem.
+ We have added these features in the hopes this will considerably lower the bar for anonymous users in particular to take advantage of the CMS. Please let your community know about them!
+
diff --git a/content/blog/apache_org_04_09_2010.md b/content/blog/apache_org_04_09_2010.md
index 93ffb01c8..2355597d8 100644
--- a/content/blog/apache_org_04_09_2010.md
+++ b/content/blog/apache_org_04_09_2010.md
@@ -3,51 +3,50 @@ date: '2010-04-13T05:04:50+00:00'
permalink: apache_org_04_09_2010
layout: post
-Apache.org services recently suffered a direct, targeted attack against our infrastructure, specifically the server hosting our issue-tracking software.
- The Apache Software Foundation uses a donated instance of Atlassian JIRA as an issue tracker for our projects. Among other projects, the ASF Infrastructure Team uses it to track issues and requests. Our JIRA instance was hosted on brutus.apache.org, a machine running Ubuntu Linux 8.04 LTS.
- Password Security
- If you are a user of the Apache hosted JIRA, Bugzilla, or Confluence, a hashed copy of your password has been compromised.
- JIRA and Confluence both use a SHA-512 hash, but without a random salt. We believe the risk to simple passwords based on dictionary words is quite high, and most users should rotate their passwords.
- Bugzilla uses a SHA-256, including a random salt. The risk for most users is low to moderate, since pre-built password dictionaries are not effective, but we recommend users should still remove these passwords from use.
- In addition, if you logged into the Apache JIRA instance between April 6th and April 9th, you should consider the password as compromised, because the attackers changed the login form to log them.
- What Happened?
- On April 5th, the attackers via a compromised Slicehost server opened a new issue, INFRA-2591. This issue contained the following text:
+Apache.org services recently suffered a direct, targeted attack against our infrastructure, specifically the server hosting our issue-tracking software.
+ The Apache Software Foundation uses a donated instance of Atlassian JIRA as an issue tracker for our projects. Among other projects, the ASF Infrastructure Team uses it to track issues and requests. Our JIRA instance was hosted on brutus.apache.org, a machine running Ubuntu Linux 8.04 LTS.
+ Password Security
+ If you are a user of the Apache hosted JIRA, Bugzilla, or Confluence, a hashed copy of your password has been compromised.
+ JIRA and Confluence both use a SHA-512 hash, but without a random salt. We believe the risk to simple passwords based on dictionary words is quite high, and most users should rotate their passwords.
+ Bugzilla uses a SHA-256, including a random salt. The risk for most users is low to moderate, since pre-built password dictionaries are not effective, but we recommend users should still remove these passwords from use.
+ In addition, if you logged into the Apache JIRA instance between April 6th and April 9th, you should consider the password as compromised, because the attackers changed the login form to log them.
+ What Happened?
+ On April 5th, the attackers via a compromised Slicehost server opened a new issue, INFRA-2591. This issue contained the following text:
ive got this error while browsing some projects in jira
http://tinyurl.com/XXXXXXXXX [obscured]
-
- Tinyurl is a URL redirection and shortening tool. This specific URL redirected back to the Apache instance of JIRA, at a special URL containing a cross site scripting (XSS) attack. The attack was crafted to steal the session cookie from the user logged-in to JIRA. When this issue was opened against the Infrastructure team, several of our administrators clicked on the link. This compromised their sessions, including their JIRA administrator rights.
- At the same time as the XSS attack, the attackers started a brute force attack against the JIRA login.jsp, attempting hundreds of thousands of password combinations.
- On April 6th, one of these methods was successful. Having gained administrator privileges on a JIRA account, the attackers used this account to disable notifications for a project, and to change the path used to upload attachments. The path they chose was configured to run JSP files, and was writable by the JIRA user. They then created several new issues and uploaded attachments to them. One of these attachments was a JSP file that was used to browse and copy the filesystem. The attackers used this access to create copies of many users' home directories and various files. They also uploaded other JSP files that gave them backdoor access to the system using the account that JIRA runs under.
- By the morning of April 9th, the attackers had installed a JAR file that would collect all passwords on login and save them. They then sent password reset mails from JIRA to members of the Apache Infrastructure team. These team members, thinking that JIRA had encountered an innocent bug, logged in using the temporary password sent in the mail, then changed the passwords on their accounts back to their usual passwords.
- One of these passwords happened to be the same as the password to a local user account on brutus.apache.org, and this local user account had full sudo access. The attackers were thereby able to login to brutus.apache.org, and gain full root access to the machine. This machine hosted the Apache installs of JIRA, Confluence, and Bugzilla.
- Once they had root on brutus.apache.org, the attackers found that several users had cached Subversion authentication credentials, and used these passwords to log in to minotaur.apache.org (aka people.apache.org), our main shell server. On minotaur, they were unable to escalate privileges with the compromised accounts.
- About 6 hours after they started resetting passwords, we noticed the attackers and began shutting down services. We notified Atlassian of the previously unreported XSS attack in JIRA and contacted SliceHost. Atlassian was responsive. Unfortunately, SliceHost did nothing and 2 days later, the very same virtual host (slice) attacked Atlassian directly.
- We started moving services to a different machine, thor.apache.org. The attackers had root access on brutus.apache.org for several hours, and we could no longer trust the operating system on the original machine.
- By April 10th, JIRA and Bugzilla were back online.
- On April 13th, Atlassian provided a patch for JIRA to prevent the XSS attack. See
+
+
Tinyurl is a URL redirection and shortening tool. This specific URL redirected back to the Apache instance of JIRA, at a special URL containing a cross site scripting (XSS) attack. The attack was crafted to steal the session cookie from the user logged-in to JIRA. When this issue was opened against the Infrastructure team, several of our administrators clicked on the link. This compromised their sessions, including their JIRA administrator rights.
+ At the same time as the XSS attack, the attackers started a brute force attack against the JIRA login.jsp, attempting hundreds of thousands of password combinations.
+ On April 6th, one of these methods was successful. Having gained administrator privileges on a JIRA account, the attackers used this account to disable notifications for a project, and to change the path used to upload attachments. The path they chose was configured to run JSP files, and was writable by the JIRA user. They then created several new issues and uploaded attachments to them. One of these attachments was a JSP file that was used to browse and copy the filesystem. The attackers used this access to create copies of many users' home directories and various files. They also uploaded other JSP files that gave them backdoor access to the system using the account that JIRA runs under.
+ By the morning of April 9th, the attackers had installed a JAR file that would collect all passwords on login and save them. They then sent password reset mails from JIRA to members of the Apache Infrastructure team. These team members, thinking that JIRA had encountered an innocent bug, logged in using the temporary password sent in the mail, then changed the passwords on their accounts back to their usual passwords.
+ One of these passwords happened to be the same as the password to a local user account on brutus.apache.org, and this local user account had full sudo access. The attackers were thereby able to login to brutus.apache.org, and gain full root access to the machine. This machine hosted the Apache installs of JIRA, Confluence, and Bugzilla.
+ Once they had root on brutus.apache.org, the attackers found that several users had cached Subversion authentication credentials, and used these passwords to log in to minotaur.apache.org (aka people.apache.org), our main shell server. On minotaur, they were unable to escalate privileges with the compromised accounts.
+ About 6 hours after they started resetting passwords, we noticed the attackers and began shutting down services. We notified Atlassian of the previously unreported XSS attack in JIRA and contacted SliceHost. Atlassian was responsive. Unfortunately, SliceHost did nothing and 2 days later, the very same virtual host (slice) attacked Atlassian directly.
+ We started moving services to a different machine, thor.apache.org. The attackers had root access on brutus.apache.org for several hours, and we could no longer trust the operating system on the original machine.
+ By April 10th, JIRA and Bugzilla were back online.
+ On April 13th, Atlassian provided a patch for JIRA to prevent the XSS attack. See
JRA-20994 and JRA-20995 for details.
-
- Our Confluence wiki remains offline at this time. We are working to restore it.
- What worked?
-
- - Limited use passwords, especially one-time passwords, were a real lifesaver. If JIRA passwords had been shared with other services/hosts, the attackers could have caused widespread damage to the ASF's infrastructure. Fortunately, in this case, the damage was limited to rooting a single host.
- - Service isolation worked with mixed results. The attackers must be presumed to have copies of our Confluence and Bugzilla databases, as well as our JIRA database, at this point. These databases include hashes of all passwords used on those systems. However, other services and hosts, including LDAP, were largely unaffected.
-
- What didn't work?
-
- - The primary problem with our JIRA install is that the JIRA daemon runs as the user who installed JIRA. In this case, it runs as a jira role-account. There are historical reasons for this decision, but with 20/20 hindsight, and in light of the security issues at stake, we expect to revisit the decision!
- - The same password should not have been used for a JIRA account as was used for sudo access on the host machine.
- - Inconsistent application of one time passwords; We required them on other machines, but not on brutus. PAM was configured to allow optional use of OPIE, but not all of our sudoers had switched to it.
- - SSH passwords should not have been enabled for login over the Internet. Although the Infrastructure Team had attempted to configure the sshd daemon to disable password-based logins, having
UsePAM yes set meant that password-based logins were still possible.
- - We use Fail2Ban for many services, but we did not have it configured to track JIRA login failures.
-
- What are we changing?
-
We hope our disclosure has been as open as possible and true to the ASF spirit. Hopefully others can learn from our mistakes.
diff --git a/content/blog/apache_org_incident_report_for.md b/content/blog/apache_org_incident_report_for.md
index 2166def82..d32bf4858 100644
--- a/content/blog/apache_org_incident_report_for.md
+++ b/content/blog/apache_org_incident_report_for.md
@@ -3,20 +3,20 @@ date: '2012-05-29T16:59:09+00:00'
permalink: apache_org_incident_report_for
layout: post
-Last week, internal audit activity discovered that the access logs of some committer-only Apache services contained passwords but had been available to every Apache committer.
-
- The problem
- The httpd logs of several ASF services are aggregated and archived on minotaur.apache.org. Minotaur is also people.apache.org, the shell host for committers, and committers were encouraged to analyse the logs and produce aggregated data.
However, for two services, the archived logs included forensic logs, which are extra-verbose logs that include all HTTP request headers. (The logs are never encrypted, even if the HTTP connection was wrapped by SSL encryption.) Both of these services http://s.apache.org and http://svn.apache.org allow anyone to use them in a read-only manner anonymously, and allow further operations (such as creating shortlinks) to LDAP-authenticated committers. Authentication is usually done by embedding the username and password, encoded in base64, in the "Authorization:" HTTP header, under SSL encryption.
Base64 is a reversible transform. (It is an encoding, not a cipher.)
Consequently, any Apache committer could learn the passwords of any other committer by reading the log files and reversing the base64 encoding.
- Shutting the barn door
- The logs archive directory was made readable by the root user only. Forensic logging was disabled, and past forensic logs deleted. ZFS snapshots containing those logs were destroyed, too.
- Finding the horse
- We know that several committers had on one occasion or another copied the logs in order to analyse them, so we operated on the assumption that copies of the sensitive forensic logs were circulating on hardware we do not control. We therefore opted to have all passwords changed, or reset.
Several Apache committers whose passwords grant very high access were advised privately to change their passwords. The root@ team ensured the follow-through and, before announcing the vulnerability any further, changed the passwords of those whom had not done so themselves. The root@ team also changed the passwords of all non-human (role) accounts on those services.
The vulnerability was then announced to all Apache committers with the same instructions: 'Your passwords may be compromised; change them "now"; we will explain the problem later.'. This notice was authenticated via a PGP signature and via acknowledging it in a root-owned file on people.apache.org.
Finally, passwords that have not been changed after forensic logs had been disabled and, therefore, were presumed to be contained in compromised forensic logs were changed by the root@ team to random strings.
- Implications
- Were some committer to have compromised another Apache account using this vulnerability prior to these steps being taken, note that root access to all apache.org hosts is only available using one-time-passwords (otp) for certain privileged sudo users. Such account holders have been instructed not to use the same password for otp as for LDAP, so this would not have resulted in an attacker gaining root privileges without our knowledge. All of our commit activity is peer-reviewed and logged to various commit lists, and no reports of unusual commit activity have been received during the time frame in which this exposure was effective. In fact no unusual activity has ever been reported regarding any of our LDAP-based services, so there is no reason for us to suspect malicious activity has occurred as a result of this vulnerability.
- Preventing recurrence
+Last week, internal audit activity discovered that the access logs of some committer-only Apache services contained passwords but had been available to every Apache committer.
+
+ The problem
+ The httpd logs of several ASF services are aggregated and archived on minotaur.apache.org. Minotaur is also people.apache.org, the shell host for committers, and committers were encouraged to analyse the logs and produce aggregated data.
However, for two services, the archived logs included forensic logs, which are extra-verbose logs that include all HTTP request headers. (The logs are never encrypted, even if the HTTP connection was wrapped by SSL encryption.) Both of these services http://s.apache.org and http://svn.apache.org allow anyone to use them in a read-only manner anonymously, and allow further operations (such as creating shortlinks) to LDAP-authenticated committers. Authentication is usually done by embedding the username and password, encoded in base64, in the "Authorization:" HTTP header, under SSL encryption.
Base64 is a reversible transform. (It is an encoding, not a cipher.)
Consequently, any Apache committer could learn the passwords of any other committer by reading the log files and reversing the base64 encoding.
+ Shutting the barn door
+ The logs archive directory was made readable by the root user only. Forensic logging was disabled, and past forensic logs deleted. ZFS snapshots containing those logs were destroyed, too.
+ Finding the horse
+ We know that several committers had on one occasion or another copied the logs in order to analyse them, so we operated on the assumption that copies of the sensitive forensic logs were circulating on hardware we do not control. We therefore opted to have all passwords changed, or reset.
Several Apache committers whose passwords grant very high access were advised privately to change their passwords. The root@ team ensured the follow-through and, before announcing the vulnerability any further, changed the passwords of those whom had not done so themselves. The root@ team also changed the passwords of all non-human (role) accounts on those services.
The vulnerability was then announced to all Apache committers with the same instructions: 'Your passwords may be compromised; change them "now"; we will explain the problem later.'. This notice was authenticated via a PGP signature and via acknowledging it in a root-owned file on people.apache.org.
Finally, passwords that have not been changed after forensic logs had been disabled and, therefore, were presumed to be contained in compromised forensic logs were changed by the root@ team to random strings.
+ Implications
+ Were some committer to have compromised another Apache account using this vulnerability prior to these steps being taken, note that root access to all apache.org hosts is only available using one-time-passwords (otp) for certain privileged sudo users. Such account holders have been instructed not to use the same password for otp as for LDAP, so this would not have resulted in an attacker gaining root privileges without our knowledge. All of our commit activity is peer-reviewed and logged to various commit lists, and no reports of unusual commit activity have been received during the time frame in which this exposure was effective. In fact no unusual activity has ever been reported regarding any of our LDAP-based services, so there is no reason for us to suspect malicious activity has occurred as a result of this vulnerability.
+ Preventing recurrence
No code changes were needed to the software that s.apache.org and
svn.apache.org run; the software was behaving correctly according to
its configuration, but the configuration itself and the in-house
-log archiving scripts were incorrect.
A member of the infrastructure team will be approaching the Apache HTTPD PMC with a documentation patch for mod_log_forensic.
- Epilogue
+log archiving scripts were incorrect.
A member of the infrastructure team will be approaching the Apache HTTPD PMC with a documentation patch for mod_log_forensic.
+ Epilogue
There were no malicious parties involved here (to our knowledge); we just made a configuration error. The nature of the error meant we had to assume all passwords were compromised, and that was costly to fix.
We hope our disclosure has been as open as possible and true to the ASF spirit. Hopefully others can learn from our mistakes. See our prior incident reports from the Apache Infrastructure Team.
Committers please address questions to root@apache.org only.
Queries from the press should be sent to press@apache.org.
Happy hacking!
diff --git a/content/blog/apache_services_and_sha_1.md b/content/blog/apache_services_and_sha_1.md
index b7c749b42..40155f6a3 100644
--- a/content/blog/apache_services_and_sha_1.md
+++ b/content/blog/apache_services_and_sha_1.md
@@ -4,22 +4,22 @@ permalink: apache_services_and_sha_1
layout: post
-As some of you may have already encountered, certain services within Apache appear to have broken SSL support. While the cert is still valid, there is a part of the cert that both Microsoft and Google have stopped accepting as valid. We are working on fixing this and will use this blogpost to track what services will be updated and when (as well as emails).
-
-
- Services:
-
- - git-wip-us
- - TLP sites
- - SSL terminator (erebus-ssl)
- - svn-master
- - mail-relay
-
- Schedule:
-
- - git-wip-us: Friday May 1, 16:00 UTC
- - TLP sites: Friday May 1, 16:00 UTC
- - SSL terminator (erebus-ssl): Friday May 1, 16:00 UTC
- - svn-master: Friday May 1, 16:00 UTC
+As some of you may have already encountered, certain services within Apache appear to have broken SSL support. While the cert is still valid, there is a part of the cert that both Microsoft and Google have stopped accepting as valid. We are working on fixing this and will use this blogpost to track what services will be updated and when (as well as emails).
+
+
+ Services:
+
+ - git-wip-us
+ - TLP sites
+ - SSL terminator (erebus-ssl)
+ - svn-master
+ - mail-relay
+
+ Schedule:
+
+ - git-wip-us: Friday May 1, 16:00 UTC
+ - TLP sites: Friday May 1, 16:00 UTC
+ - SSL terminator (erebus-ssl): Friday May 1, 16:00 UTC
+ - svn-master: Friday May 1, 16:00 UTC
- mail-relay: Friday May 1, 16:00 UTC
diff --git a/content/blog/appveyor_ci_now_available_for.md b/content/blog/appveyor_ci_now_available_for.md
index 5da633281..23fc06175 100644
--- a/content/blog/appveyor_ci_now_available_for.md
+++ b/content/blog/appveyor_ci_now_available_for.md
@@ -3,13 +3,13 @@ date: '2016-02-12T19:45:06+00:00'
permalink: appveyor_ci_now_available_for
layout: post
-The ASF Infrastructure team is happy to announce that projects can how have AppVeyor CI setup on their GitHub mirrors.
- The only thing you need to do is create an INFRA ticket at issues.apache.org with the following information:
-
- - Repo Name
- - Mailing list to send build notifications to (optional)
-
- There are already a few projects using AppVeyor on their GitHub mirror, and we now have an Organization role account for central management (and I have gone through an updated previous tickets with new links to badges).
-
- If you have any questions, you can ask us in Hipchat or you can email infrastructure@apache.org
+The ASF Infrastructure team is happy to announce that projects can how have AppVeyor CI setup on their GitHub mirrors.
+ The only thing you need to do is create an INFRA ticket at issues.apache.org with the following information:
+
+ - Repo Name
+ - Mailing list to send build notifications to (optional)
+
+ There are already a few projects using AppVeyor on their GitHub mirror, and we now have an Organization role account for central management (and I have gone through an updated previous tickets with new links to badges).
+
+ If you have any questions, you can ask us in Hipchat or you can email infrastructure@apache.org
diff --git a/content/blog/asf_buildbot_svn_setup.md b/content/blog/asf_buildbot_svn_setup.md
index 2282387c7..030995aa7 100644
--- a/content/blog/asf_buildbot_svn_setup.md
+++ b/content/blog/asf_buildbot_svn_setup.md
@@ -58,8 +58,8 @@ permalink: asf_buildbot_svn_setup
split_file = split_file_branches
Next up , the relevant entry in our subversion/hooks/post-commit file looks like this (with constants defined earlier in the file):
-
$SVNLOOK dirs-changed -r "$REV" "$REPOS" | egrep -qf "$BUILDBOT_PROJECT_PATHS" &&
-( $BUILDBOT --repository "$REPOS" --revision "$REV" --bbserver "$BBSERVER" --bbport "$BBPORT"
+ $SVNLOOK dirs-changed -r "$REV" "$REPOS" | egrep -qf "$BUILDBOT_PROJECT_PATHS" &&
+( $BUILDBOT --repository "$REPOS" --revision "$REV" --bbserver "$BBSERVER" --bbport "$BBPORT"
--project-paths "$BUILDBOT_PROJECT_PATHS" >>/var/log/svn_buildbot.log 2>&1 & )
And, last but not least for the svn host side of things, our buildbot_project_paths file which contains entries such as :
diff --git a/content/blog/asf_comments_system_live.md b/content/blog/asf_comments_system_live.md
index 42aa4b96f..d48d6bebe 100644
--- a/content/blog/asf_comments_system_live.md
+++ b/content/blog/asf_comments_system_live.md
@@ -7,6 +7,6 @@ layout: post
**Note**: This service is no longer available from Infra.
-Daniel Gruno has recently developed a comments system for Apache projects to use. The purpose of the system is to enable public commentary on project webpages and is already in production use in the httpd and trafficserver projects. This new system nicely complements the ASF CMS system and trivially integrates with it- see http://comments.apache.org/help.html for details.
- The comment system is now open- enjoy! Please file a jira ticket with INFRA to get started today.
+Daniel Gruno has recently developed a comments system for Apache projects to use. The purpose of the system is to enable public commentary on project webpages and is already in production use in the httpd and trafficserver projects. This new system nicely complements the ASF CMS system and trivially integrates with it- see http://comments.apache.org/help.html for details.
+ The comment system is now open- enjoy! Please file a jira ticket with INFRA to get started today.
diff --git a/content/blog/blogs-a-o-moved-upgraded.md b/content/blog/blogs-a-o-moved-upgraded.md
index 99a11d6f5..5427889ba 100644
--- a/content/blog/blogs-a-o-moved-upgraded.md
+++ b/content/blog/blogs-a-o-moved-upgraded.md
@@ -3,14 +3,14 @@ date: '2017-01-01T08:06:46+00:00'
permalink: blogs-a-o-moved-upgraded
layout: post
-Hi All,
- blogs.apache.org - the site you are reading now! has had a bit of an update.
-
- 1. We moved it from an aged VM Host to the Cloud (thanks LeaseWeb!)
- 2. We puppetised the entire service, from install to deploy (see our GitHub Mirror )
- 3. We upgraded the Apache Roller software from 5.0.3 to the latest 5.1.2
- 4. We enabled LDAP for logins. That's right! Every single ASF Committer can now just login! No more creating an INFRA Jira ticket just to get a Roller account on blogs.apache.org
- Other stuff remains the same - meaning if you are a Blog Administrator you still need to invite committers into your blog, you still need to choose to make them an Author or Admin etc - Roller doesn't support anything more than login auth for LDAP currently - but I bet the project would love to see the LDAP integration extended and improved if you feel the need!.
- Anyhow, our first new year present to our ASF Committers, a shiny updated blog instance,
- Enjoy, and have a great 2017!!
+Hi All,
+ blogs.apache.org - the site you are reading now! has had a bit of an update.
+
+ 1. We moved it from an aged VM Host to the Cloud (thanks LeaseWeb!)
+ 2. We puppetised the entire service, from install to deploy (see our GitHub Mirror )
+ 3. We upgraded the Apache Roller software from 5.0.3 to the latest 5.1.2
+ 4. We enabled LDAP for logins. That's right! Every single ASF Committer can now just login! No more creating an INFRA Jira ticket just to get a Roller account on blogs.apache.org
+ Other stuff remains the same - meaning if you are a Blog Administrator you still need to invite committers into your blog, you still need to choose to make them an Author or Admin etc - Roller doesn't support anything more than login auth for LDAP currently - but I bet the project would love to see the LDAP integration extended and improved if you feel the need!.
+ Anyhow, our first new year present to our ASF Committers, a shiny updated blog instance,
+ Enjoy, and have a great 2017!!
diff --git a/content/blog/bob_thomson_joins_infra.md b/content/blog/bob_thomson_joins_infra.md
index 789a6750b..af3e26117 100644
--- a/content/blog/bob_thomson_joins_infra.md
+++ b/content/blog/bob_thomson_joins_infra.md
@@ -5,7 +5,7 @@ layout: post
The ASF Infrastructure team returned to full strength on September 22, 2025 when **Bob Thomson** joined the team as a systems administrator.
-**Where do you live?**
+**Where do you live?**
The Dordogne, southwest France. I am a Scot, though, from Glasgow, and lived in and around the city for my first 50 years, before we took advantage of the UK’s disappearing EU membership to move to France, after a couple of referendum results that did not go our way!
diff --git a/content/blog/brand-new-selfserve-page.md b/content/blog/brand-new-selfserve-page.md
index 08db24226..dbcfad6a2 100644
--- a/content/blog/brand-new-selfserve-page.md
+++ b/content/blog/brand-new-selfserve-page.md
@@ -3,11 +3,12 @@ date: '2023-03-01'
permalink: brand-new-selfserve-page
layout: post
-Greetings all!
+Greetings all!
We're announcing a new look for selfserve.apache.org today! It's a completely updated site, featuring a new layout which we hope will suit everyone better. The new update also cleans up a some tech debt we've had with the old site, so adding new features or integrations should be easier for us to roll out.
#### New Features
+
One of the new features we've also rolled out on selfserve.apache.org is the ability for someone to request a [public Jira account](https://selfserve.apache.org/jira-account.html) through the page! We've been trying to develop a way to fight spammers and bad actors for a while on Jira and we know based on feedback that turning off the public signup link has caused some new issues. This is a brand new process whereby someone (existing committer or not) can fill out the form, add some detail as to why they are asking for access, and then a mail is sent to the PMC to approve or deny the request. The requester gets updated when their account is approved or denied, with the PMC having the ability to reply with a reason for denial.
[Feel free to check it out](https://selfserve.apache.org), tell your friends, break it and email users@infra.apache.org with any details! Fun for the entire family!
diff --git a/content/blog/bringing-gitpubsub-to-the-apache.md b/content/blog/bringing-gitpubsub-to-the-apache.md
index 045b5bbfd..f9efb7670 100644
--- a/content/blog/bringing-gitpubsub-to-the-apache.md
+++ b/content/blog/bringing-gitpubsub-to-the-apache.md
@@ -5,28 +5,28 @@ layout: post
When it comes to [Jenkins], it has long been known that [polling must die].
-
+
While we could go and create post commit hooks in all the ASF hosted Git repositories, that is something that realistically is just creating an added maintenance burden.
-In any case, we have [GitPubSub].
+In any case, we have [GitPubSub].
The question then becomes, how do we integrate [GitPubSub] with [Jenkins]?
Thankfully, ASF committer stephenc is also an active committer to the [Jenkins] project and created a [plugin] that connects to [GitPubSub] parses the events and passes them through to the Jenkins [SCM API].
-
+
What does this mean?
-
+
* You can turn your Git polling down - way way down - to something like once per day.
This should significantly reduce the load on both the ASF git servers and builds.apache.org
* Your builds will be triggered in seconds rather than having to wait for the next polling run.
* You can try out using Multi-branch projects much like the [Maven] project has been doing for [Maven core] and [Maven Surefire]
-
+
If the reaction to this change proves positive, the next step will be to integrate SvnPubSub with Jenkins and bring the benefits to the Subversion based projects too
-
-
- See also this blog post by Stephen Connolly:
- https://www.cloudbees.com/blog/using-multi-branch-pipelines-apache-maven-project
+
+
+ See also this blog post by Stephen Connolly:
+ https://www.cloudbees.com/blog/using-multi-branch-pipelines-apache-maven-project
[polling must die]: http://kohsuke.org/2011/12/01/polling-must-die-triggering-jenkins-builds-from-a-git-hook/
[GitPubSub]: https://www.apache.org/dev/gitpubsub.html
[Jenkins]: https://jenkins.io/
[plugin]: https://github.com/stephenc/asf-gitpubsub-jenkins-plugin
@@ -35,6 +35,6 @@ If the reaction to this change proves positive, the next step will be to integra
[Maven core]: https://builds.apache.org/job/maven-3.x-jenkinsfile/
[Maven Surefire]: https://builds.apache.org/job/maven-surefire-pipeline/
-
+
Posted on behalf of Committer Stephen Connolly (stephenc)
diff --git a/content/blog/buildbot_master_currently_off_line.md b/content/blog/buildbot_master_currently_off_line.md
index e90396039..caacac4d1 100644
--- a/content/blog/buildbot_master_currently_off_line.md
+++ b/content/blog/buildbot_master_currently_off_line.md
@@ -3,42 +3,42 @@ date: '2015-06-29T21:17:45+00:00'
permalink: buildbot_master_currently_off_line
layout: post
-Update (2015-06-30 ~12.00 UTC):
- The replacement buildbot master is now live. The CMS service and the ci.apache.org website have been restored. The project CI builds are mostly working but builds that upload docs, snapshots etc. to the buildmaster for publishing are likely to fail at the upload stage while we ensure all the necessary directory structures are in place to receive the uploads. Work to resolve these final few issues is ongoing.
- We continue to try and contact the owner of the account where the IRC proxy was running. In case their account has been compromised, it remains locked. In addition, all their commits have been reviewed by other project committers and that review has confirmed that no malicious commits have been made by the account in question.
- The review of aegis.apache.org is ongoing. No evidence of compromise beyond the possible compromise of the single, non-privileged user account has been found.
- Original post (2015-06-29 ~21.00 UTC):
- As per the e-mails to committers@ earlier today, aegis.apache.org is currently offline after a report was received that suspicious network traffic had been observed from that host. This blog post will be updated as more information becomes known.
- What we know:
-
- - At ~16.00 UTC 28 June 2015 a report of suspicious network activity from a buildbot host was reported to the Apache security team.
- - Further information was requested and at ~18.00 UTC 28 June 2015 the Apache Infrastructure team received a copy of network logs that showed a number of suspicious IRC connections originating from aegis.apache.org
- - These IRC connections were traced to a non-privileged user account on aegis.apache.org running an open IRC proxy
- - At ~20.00 UTC 28 June 2015 the user account concerned was locked for all ASF services and the proxy process terminated.
- - At ~10.00 UTC 29 June 2015, after further discussion within the infrastructure team, aegis.apache.org was taken off-line as a precaution.
-
- It remains unclear whether the open IRC proxy was installed by the user that owned the account or whether their account was compromised and the IRC proxy was installed by an unauthorized user.
- It is worth stressing that no further information came to light between 20.00 UTC 28 June 2015 and 10.00 UTC 29 June 2015 that triggered the decision to take the host off-line. The host was taken off-line purely as a precaution while we reviewed the available information. That process is ongoing. So far we have found no evidence to even suggest anything more than a user account being used to run an IRC proxy and plenty of evidence that suggests that this was the only activity this account was used for.
- Risks:
- There is no risk to released source or binaries for any ASF project. There are multiple reasons for this:
-
- - buildbot is a CI system used to build snapshots, not releases
- - no builds are performed on aegis.apache.org
-
- Buildbot is used to build some project web sites and / or project documentation. The risk of compromise here is viewed as very low for the following reasons:
-
- - the builds do not take place on aegis.apache.org
- - diffs of every change are sent to the relevant project team's mailing list for review and an unexpected / malicious change would be spotted
-
- Project impact:
- The following services are currently off-line and will remain so until the buildbot master is restored
-
- - All buildbot builds
- - Projects that use the CMS will be unable to update their web sites (the CMS uses buildbot to build web site updates)
- - the ci.apache.org website
-
- Work in progress:
- Analyzing aegis.apache.org is going to take time and, while we view the chances of a wider compromise of this host as very, very small, we are not willing to bring the host back on line at this point. This host was due for replacement so the decision has been taken to pull this work forward and rebuild the buildbot master on a new host now. We have taken this decision not because we believe aegis.apache.org to be compromised, but because it is possible to complete this work far more quickly than it is possible to confirm our view that aegis.apache.org is not compromised. We currently estimate that the rebuild of the new buildbot master host will be completed by 1 July 2015.
- We continue to analyze the information we have obtained from aegis.apache.org and from other sources and will update this blog post as more information becomes available.
- Questions:
+Update (2015-06-30 ~12.00 UTC):
+ The replacement buildbot master is now live. The CMS service and the ci.apache.org website have been restored. The project CI builds are mostly working but builds that upload docs, snapshots etc. to the buildmaster for publishing are likely to fail at the upload stage while we ensure all the necessary directory structures are in place to receive the uploads. Work to resolve these final few issues is ongoing.
+ We continue to try and contact the owner of the account where the IRC proxy was running. In case their account has been compromised, it remains locked. In addition, all their commits have been reviewed by other project committers and that review has confirmed that no malicious commits have been made by the account in question.
+ The review of aegis.apache.org is ongoing. No evidence of compromise beyond the possible compromise of the single, non-privileged user account has been found.
+ Original post (2015-06-29 ~21.00 UTC):
+ As per the e-mails to committers@ earlier today, aegis.apache.org is currently offline after a report was received that suspicious network traffic had been observed from that host. This blog post will be updated as more information becomes known.
+ What we know:
+
+ - At ~16.00 UTC 28 June 2015 a report of suspicious network activity from a buildbot host was reported to the Apache security team.
+ - Further information was requested and at ~18.00 UTC 28 June 2015 the Apache Infrastructure team received a copy of network logs that showed a number of suspicious IRC connections originating from aegis.apache.org
+ - These IRC connections were traced to a non-privileged user account on aegis.apache.org running an open IRC proxy
+ - At ~20.00 UTC 28 June 2015 the user account concerned was locked for all ASF services and the proxy process terminated.
+ - At ~10.00 UTC 29 June 2015, after further discussion within the infrastructure team, aegis.apache.org was taken off-line as a precaution.
+
+ It remains unclear whether the open IRC proxy was installed by the user that owned the account or whether their account was compromised and the IRC proxy was installed by an unauthorized user.
+ It is worth stressing that no further information came to light between 20.00 UTC 28 June 2015 and 10.00 UTC 29 June 2015 that triggered the decision to take the host off-line. The host was taken off-line purely as a precaution while we reviewed the available information. That process is ongoing. So far we have found no evidence to even suggest anything more than a user account being used to run an IRC proxy and plenty of evidence that suggests that this was the only activity this account was used for.
+ Risks:
+ There is no risk to released source or binaries for any ASF project. There are multiple reasons for this:
+
+ - buildbot is a CI system used to build snapshots, not releases
+ - no builds are performed on aegis.apache.org
+
+ Buildbot is used to build some project web sites and / or project documentation. The risk of compromise here is viewed as very low for the following reasons:
+
+ - the builds do not take place on aegis.apache.org
+ - diffs of every change are sent to the relevant project team's mailing list for review and an unexpected / malicious change would be spotted
+
+ Project impact:
+ The following services are currently off-line and will remain so until the buildbot master is restored
+
+ - All buildbot builds
+ - Projects that use the CMS will be unable to update their web sites (the CMS uses buildbot to build web site updates)
+ - the ci.apache.org website
+
+ Work in progress:
+ Analyzing aegis.apache.org is going to take time and, while we view the chances of a wider compromise of this host as very, very small, we are not willing to bring the host back on line at this point. This host was due for replacement so the decision has been taken to pull this work forward and rebuild the buildbot master on a new host now. We have taken this decision not because we believe aegis.apache.org to be compromised, but because it is possible to complete this work far more quickly than it is possible to confirm our view that aegis.apache.org is not compromised. We currently estimate that the rebuild of the new buildbot master host will be completed by 1 July 2015.
+ We continue to analyze the information we have obtained from aegis.apache.org and from other sources and will update this blog post as more information becomes available.
+ Questions:
Questions, concerns, comments etc. should be directed to infrastructure@apache.org
diff --git a/content/blog/changes_to_email_service_for.md b/content/blog/changes_to_email_service_for.md
index a71b5e7c9..9d028497c 100644
--- a/content/blog/changes_to_email_service_for.md
+++ b/content/blog/changes_to_email_service_for.md
@@ -21,4 +21,3 @@ Historically we have allowed users to choose how to handle their apache.org emai
We are doing this to simplify the email infrastructure, and to help reduce the current level of complexity of maintaining people.apache.org. Also, making LDAP authoritative means we can move some of the work straight out to the MXs, and thus avoid sending it through several mail servers. In the new architecture if someone emails you directly at your apache.org mail address it will only be handled by one apache.org MX.
Of course, we won't delete any email you currently have on people.apache.org. Should you want to edit your LDAP record you should use https://id.apache.org to do this.
-
diff --git a/content/blog/code_signing_service_now_available.md b/content/blog/code_signing_service_now_available.md
index 07a53755b..5c8e6a819 100644
--- a/content/blog/code_signing_service_now_available.md
+++ b/content/blog/code_signing_service_now_available.md
@@ -3,9 +3,9 @@ date: '2014-10-06T16:36:09+00:00'
permalink: code_signing_service_now_available
layout: post
-The ASF Infrastructure team is pleased to announce the availability of a new code signing service for Java, Windows and Android applications. This service is available to any Apache project to use to sign their releases. Traditionally, Apache projects have shipped source code. The code tarballs are signed with a GPG signature to allow users and providers to verify the code's authenticity, but users have either compiled their own applications or some projects have provided convenience binaries. With projects like Apache OpenOffice, users expect to receive binaries that are ready to run. Today's desktop and mobile operating systems expect that binaries will be signed by the vendor -- which had left a gap to be filled for Apache projects.
- After a great deal of research, we have chosen Symantec's Secure App Service offering to provide code signing service. This allows us to granularly permit access; and each PMC will have their own certificate(s) for signing. The per-project nature of certificate issuance allows us to revoke a signature without disrupting other projects.
- This service will permit projects to sign artifacts either via a web GUI or a SOAP API. In addition a Java client and an ant task for signing have been written and a maven plugin is under development.
- This service results in a 'pay for what you use' scenario, so PMCs are asked to use the service responsibly. To that end, projects will have access to a test environment to ensure that they have their process working correctly before consuming actual credits.
- Thus far, we've had two projects who have helped testing this and working out process for which we are very grateful. Those projects, Commons and Tomcat, have successfully released signed artifacts recently. (Commons Daemon 1.0.15 and Tomcat 8.0.14)
+The ASF Infrastructure team is pleased to announce the availability of a new code signing service for Java, Windows and Android applications. This service is available to any Apache project to use to sign their releases. Traditionally, Apache projects have shipped source code. The code tarballs are signed with a GPG signature to allow users and providers to verify the code's authenticity, but users have either compiled their own applications or some projects have provided convenience binaries. With projects like Apache OpenOffice, users expect to receive binaries that are ready to run. Today's desktop and mobile operating systems expect that binaries will be signed by the vendor -- which had left a gap to be filled for Apache projects.
+ After a great deal of research, we have chosen Symantec's Secure App Service offering to provide code signing service. This allows us to granularly permit access; and each PMC will have their own certificate(s) for signing. The per-project nature of certificate issuance allows us to revoke a signature without disrupting other projects.
+ This service will permit projects to sign artifacts either via a web GUI or a SOAP API. In addition a Java client and an ant task for signing have been written and a maven plugin is under development.
+ This service results in a 'pay for what you use' scenario, so PMCs are asked to use the service responsibly. To that end, projects will have access to a test environment to ensure that they have their process working correctly before consuming actual credits.
+ Thus far, we've had two projects who have helped testing this and working out process for which we are very grateful. Those projects, Commons and Tomcat, have successfully released signed artifacts recently. (Commons Daemon 1.0.15 and Tomcat 8.0.14)
Projects that wish to use this service should open an Infra JIRA ticket under the Codesigning component. Further information for projects using the service is also maintained by the infra team
diff --git a/content/blog/committer_shell_access_to_people.md b/content/blog/committer_shell_access_to_people.md
index cc4cf7fc7..8fc8462c2 100644
--- a/content/blog/committer_shell_access_to_people.md
+++ b/content/blog/committer_shell_access_to_people.md
@@ -3,10 +3,10 @@ date: '2014-09-25T23:38:41+00:00'
permalink: committer_shell_access_to_people
layout: post
-Apache committers are granted shell access to a host known as either people.apache.org or minotaur. As you may know, there has been a two year grace period in which we have advertised the upcoming change away from password logins to SSH key only.
- Due to a significant recent increase in security issues, the Infrastructure team has taken steps to complete the implementation of key-only logins to protect ASF computing resources.
- If you can't access the host anymore then it is very likely you do not have your key stored in LDAP. Please check your LDAP data in https://id.apache.org - and add your key(s) if they are not present. If necessary, ensure your keys are loaded locally (for linux see http://linux.die.net/man/1/ssh-add and http://linux.die.net/man/1/ssh-agent)
- The host will pick up this change within 5 minutes of you making your change and you should be able to get in again.
- As always if you have any issues please open a JIRA issue in the INFRA project and we will help you as soon as we can.
+Apache committers are granted shell access to a host known as either people.apache.org or minotaur. As you may know, there has been a two year grace period in which we have advertised the upcoming change away from password logins to SSH key only.
+ Due to a significant recent increase in security issues, the Infrastructure team has taken steps to complete the implementation of key-only logins to protect ASF computing resources.
+ If you can't access the host anymore then it is very likely you do not have your key stored in LDAP. Please check your LDAP data in https://id.apache.org - and add your key(s) if they are not present. If necessary, ensure your keys are loaded locally (for linux see http://linux.die.net/man/1/ssh-add and http://linux.die.net/man/1/ssh-agent)
+ The host will pick up this change within 5 minutes of you making your change and you should be able to get in again.
+ As always if you have any issues please open a JIRA issue in the INFRA project and we will help you as soon as we can.
Update 2024-08: You can't go home again...
diff --git a/content/blog/committers_mail_relay_service.md b/content/blog/committers_mail_relay_service.md
index dedd15aa7..8bdbc4349 100644
--- a/content/blog/committers_mail_relay_service.md
+++ b/content/blog/committers_mail_relay_service.md
@@ -3,11 +3,11 @@ date: '2014-09-25T22:57:44+00:00'
permalink: committers_mail_relay_service
layout: post
-For a very long time now we have allowed committers to send email from their @apache.org email address from any host. 10 years ago this was less of an issue than it is today. In the current world of mass spam and junk flying around, mail server providers are trying to find better ways to implement a sense of safety from this for their users. One such method is SPF [1]. These methodologies check that incoming email actually originated via a valid mail server for the senders domain.
- For example if you send from myuserid@apache.org, but you just send that via your ISP at home, it could be construed as being junk as it never came via an apache.org mail server. Some time ago we setup a service on people.apache.org to cater for this, but it was never enforced and it seems that the SMTP daemon running the service is not 100% RFC compliant and thus some people have been unable to use this service.
- As of today, we have stood up a new service on host mail-relay.apache.org that will allow committers to send their apache.org emails via a daemon that is RFC compliant and uses your LDAP credentials. You can read here [2] what settings you will need to be able to use this service.
- On Friday October 10th, at 13:00 UTC the old service on people.apache.org will be terminated, and the updates to the DNS to enforce sending of all apache.org email to have originated via an ASF mail server will be enabled. This means that as of this time if you do not send your apache.org email via mail-relay it is very likely that the mail will not reach it's destination.
- When we say 'send your apache.org email' - we mean that when you send *from* your userid@apache.org email. Emails sent *to* any apache.org email address will not affected by this.
-
- [1] - http://en.wikipedia.org/wiki/Sender_Policy_Framework
+For a very long time now we have allowed committers to send email from their @apache.org email address from any host. 10 years ago this was less of an issue than it is today. In the current world of mass spam and junk flying around, mail server providers are trying to find better ways to implement a sense of safety from this for their users. One such method is SPF [1]. These methodologies check that incoming email actually originated via a valid mail server for the senders domain.
+ For example if you send from myuserid@apache.org, but you just send that via your ISP at home, it could be construed as being junk as it never came via an apache.org mail server. Some time ago we setup a service on people.apache.org to cater for this, but it was never enforced and it seems that the SMTP daemon running the service is not 100% RFC compliant and thus some people have been unable to use this service.
+ As of today, we have stood up a new service on host mail-relay.apache.org that will allow committers to send their apache.org emails via a daemon that is RFC compliant and uses your LDAP credentials. You can read here [2] what settings you will need to be able to use this service.
+ On Friday October 10th, at 13:00 UTC the old service on people.apache.org will be terminated, and the updates to the DNS to enforce sending of all apache.org email to have originated via an ASF mail server will be enabled. This means that as of this time if you do not send your apache.org email via mail-relay it is very likely that the mail will not reach it's destination.
+ When we say 'send your apache.org email' - we mean that when you send *from* your userid@apache.org email. Emails sent *to* any apache.org email address will not affected by this.
+
+ [1] - http://en.wikipedia.org/wiki/Sender_Policy_Framework
[2] - https://reference.apache.org/committer/email#sendingemailfromyourapacheorgemailaddress
diff --git a/content/blog/continued_outages_for_the_asf.md b/content/blog/continued_outages_for_the_asf.md
index fac84498f..41f36d1d0 100644
--- a/content/blog/continued_outages_for_the_asf.md
+++ b/content/blog/continued_outages_for_the_asf.md
@@ -3,7 +3,7 @@ date: '2016-06-30T16:25:30+00:00'
permalink: continued_outages_for_the_asf
layout: post
-As people have noticed, our JIRA instance (arguably the largest public instance in the world) has been suffering from a yet unknown issue as of late. We are reasonably sure that this is related to specific queries being made against the instance (possibly automated queries from scrapers), but have yet to identify the exact cause of the problem.
- The failure condition arises when the database connection pool is exhausted, despite being configured and sized appropriately. These connections all appear idle, but when the pool is full, no new connections can be established, and the instance falls over, requiring a restart.
- We are working closely with Atlassian, the creator of JIRA, to remedy the situation. Unfortunately, this requires running diagnostics on the production JIRA instance, which in and of itself causes performance degradation and downtime. Over the past several days, we've identified and implemented some changes to the pool parameters which we hope will help stabilize the instance while we continue our diagnostic work.
+As people have noticed, our JIRA instance (arguably the largest public instance in the world) has been suffering from a yet unknown issue as of late. We are reasonably sure that this is related to specific queries being made against the instance (possibly automated queries from scrapers), but have yet to identify the exact cause of the problem.
+ The failure condition arises when the database connection pool is exhausted, despite being configured and sized appropriately. These connections all appear idle, but when the pool is full, no new connections can be established, and the instance falls over, requiring a restart.
+ We are working closely with Atlassian, the creator of JIRA, to remedy the situation. Unfortunately, this requires running diagnostics on the production JIRA instance, which in and of itself causes performance degradation and downtime. Over the past several days, we've identified and implemented some changes to the pool parameters which we hope will help stabilize the instance while we continue our diagnostic work.
We expect that there may still be some moments of downtime and occasional restarts. Any longer duration outages will be announced via Twitter/infrabot and status.apache.org.
diff --git a/content/blog/dmarc_filtering_on_lists_that.md b/content/blog/dmarc_filtering_on_lists_that.md
index ac8af585f..2889afe3f 100644
--- a/content/blog/dmarc_filtering_on_lists_that.md
+++ b/content/blog/dmarc_filtering_on_lists_that.md
@@ -12,7 +12,7 @@ layout: post
**Note**: The solution described below has been incorporated into ezmlm. However, it creates a new problem, generating double 'Reply-To:' headers in the case of lists with a `reply-to` set to something other than the list name. A complete rewrite of this function is under consideration. You can follow the discussion on Jira ticket INFRA-24849.
-Since Yahoo! switched their DMARC policy in mid-April 2014, we've seen an increase in undeliverable messages sent from our mail server for Yahoo! accounts subscribed to our lists. Roughly half of Apache's mailing lists do some form of message munging, whether it be Subject header prefixes, appended message trailers, or removed mime components. Such actions are incompatible with Y!'s policy for its users, which has meant more bounces and more frustration trying to maintain inclusive discussions with Y! users.
- Since Y!'s actions are likely just the beginning of a trend towards strong DMARC policies aimed at eliminating forged emails, we've taken the extraordinary step of munging Y! user's From headers to append a spec-compliant .INVALID marker on their address, and dropping the DKIM-Signature: header for such messages. We are an ezmlm shop and maintain a heavily customized .ezmlmrc file, so carrying this action out was relatively straightforward with a 30-line perl header filter prepended to certain lines in the "editor" block of our .ezmlmrc file. The filter does a dynamic lookup of DMARC "p=reject" policies to inform its actions, so we are prepared for future adopters beyond the early ones like Yahoo!, AOL, Facebook, LinkedIn, and Twitter. Interested parties in our solution may visit this page for details and the Apache-licensed code.
- Of course this filter only applies to half our lists- the remainder that do no munging are perfectly compatible with DMARC rejection policies without modification of our list software or configuration. Apache projects that prefer to avoid munging may file a Jira ticket with infrastructure to ask that their lists be set to "ezmlm-make -+ -TXF" options.
+Since Yahoo! switched their DMARC policy in mid-April 2014, we've seen an increase in undeliverable messages sent from our mail server for Yahoo! accounts subscribed to our lists. Roughly half of Apache's mailing lists do some form of message munging, whether it be Subject header prefixes, appended message trailers, or removed mime components. Such actions are incompatible with Y!'s policy for its users, which has meant more bounces and more frustration trying to maintain inclusive discussions with Y! users.
+ Since Y!'s actions are likely just the beginning of a trend towards strong DMARC policies aimed at eliminating forged emails, we've taken the extraordinary step of munging Y! user's From headers to append a spec-compliant .INVALID marker on their address, and dropping the DKIM-Signature: header for such messages. We are an ezmlm shop and maintain a heavily customized .ezmlmrc file, so carrying this action out was relatively straightforward with a 30-line perl header filter prepended to certain lines in the "editor" block of our .ezmlmrc file. The filter does a dynamic lookup of DMARC "p=reject" policies to inform its actions, so we are prepared for future adopters beyond the early ones like Yahoo!, AOL, Facebook, LinkedIn, and Twitter. Interested parties in our solution may visit this page for details and the Apache-licensed code.
+ Of course this filter only applies to half our lists- the remainder that do no munging are perfectly compatible with DMARC rejection policies without modification of our list software or configuration. Apache projects that prefer to avoid munging may file a Jira ticket with infrastructure to ask that their lists be set to "ezmlm-make -+ -TXF" options.
diff --git a/content/blog/email_from_apache_org_committer.md b/content/blog/email_from_apache_org_committer.md
index db64c2425..59a1ded63 100644
--- a/content/blog/email_from_apache_org_committer.md
+++ b/content/blog/email_from_apache_org_committer.md
@@ -3,7 +3,7 @@ date: '2014-06-15T02:29:06+00:00'
permalink: email_from_apache_org_committer
layout: post
-Good news! We've finally laid the necessary groundwork to extend the bypassing of committer emails sent from their apache.org addresses, from commit lists to now all Apache mailing lists. This feature was activated earlier today and represents a significant benefit for cross-collaboration between Apache mailing lists for committers, relieving moderators of needless burden.
- Also we'd like to remind you of the SSL-enabled SMTP submission service we offer committers listening on people.apache.org port 465. Gmail users in particular can enjoy a convenient way of sending email, to any recipient even outside apache.org, using their apache.org committer address. For more on that please see our website's documentation.
- To complement these features we'd also like to remind committers of the ability to request an "owner file" be added to their email forwarder by filing an appropriate INFRA jira ticket. Owner files alleviate most of the problems associated with outside organizations, who may be running strict SPF policies, attempting to reach you at your apache.org address. Without an owner file those messages will typically bounce back to those organizations instead of successfully reaching you at your target forwarding address. For those familiar with SRS, this is a poor-man's version of that specification's feature set. Please direct your detailed questions about owner files to the infrastructure-dev@apache.org mailing list.
+Good news! We've finally laid the necessary groundwork to extend the bypassing of committer emails sent from their apache.org addresses, from commit lists to now all Apache mailing lists. This feature was activated earlier today and represents a significant benefit for cross-collaboration between Apache mailing lists for committers, relieving moderators of needless burden.
+ Also we'd like to remind you of the SSL-enabled SMTP submission service we offer committers listening on people.apache.org port 465. Gmail users in particular can enjoy a convenient way of sending email, to any recipient even outside apache.org, using their apache.org committer address. For more on that please see our website's documentation.
+ To complement these features we'd also like to remind committers of the ability to request an "owner file" be added to their email forwarder by filing an appropriate INFRA jira ticket. Owner files alleviate most of the problems associated with outside organizations, who may be running strict SPF policies, attempting to reach you at your apache.org address. Without an owner file those messages will typically bounce back to those organizations instead of successfully reaching you at your target forwarding address. For those familiar with SRS, this is a poor-man's version of that specification's feature set. Please direct your detailed questions about owner files to the infrastructure-dev@apache.org mailing list.
NOTE: we've extended this bypass feature to include any committer email addresses listed in their personal LDAP record with Apache.
diff --git a/content/blog/end_of_home.md b/content/blog/end_of_home.md
index 9144ac58c..98fdaefa8 100644
--- a/content/blog/end_of_home.md
+++ b/content/blog/end_of_home.md
@@ -7,4 +7,4 @@ layout: post
Today, there are so many options to host content that it no longer makes sense for the Foundation to perform that function, and we will be turning "home" off around Thursday, **September 12, 2024**. We ask that anyone with content on the service to log in via `sftp` and download the data they want to preserve.
-We also note that members of some projects have been using `home` as a way to share release candidates of project code. This was never the purpose of the `home` service. Please use one of the approved locations for sharing release candidates: `dist.apache.org/dev/` or `nightlies.apache.org`.
+We also note that members of some projects have been using `home` as a way to share release candidates of project code. This was never the purpose of the `home` service. Please use one of the approved locations for sharing release candidates: `dist.apache.org/dev/` or `nightlies.apache.org`.
diff --git a/content/blog/github_pull_request_builds_now.md b/content/blog/github_pull_request_builds_now.md
index 890979a68..7f1e0a4d8 100644
--- a/content/blog/github_pull_request_builds_now.md
+++ b/content/blog/github_pull_request_builds_now.md
@@ -3,19 +3,19 @@ date: '2014-10-02T13:00:00+00:00'
permalink: github_pull_request_builds_now
layout: post
-The ASF Infrastructure team is happy to announce that you can now set up jobs on builds.apache.org to listen for pull requests to github.com/apache repositories, build that pull request’s changes, and then comment on the pull request with the build’s results. This is done using the Jenkins Enterprise GitHub pull request builder plugin, generously provided to the ASF by our friends at CloudBees. We've set up the necessary hooks on all github.com/apache repositories that are up as of Wednesday, Oct 1, 2014, and will be adding the hooks to all new repositories going forward.
Here’s what you need to do to set it up:
-
- - Create a new job, probably copied from an existing job.
- - Make sure you’re not doing any “mvn deploy” or equivalent in the new job - this job shouldn’t be deploying any artifacts to Nexus, etc.
- - Check the "Enable Git validated merge support” box - you can leave the first few fields set to their default, since we’re not actually pushing anything. This is just required to get the pull request builder to register correctly.
- - Set the “GitHub project” field to the HTTP URL for your repository - i.e.,"http://github.com/apache/incubator-brooklyn/"- make sure it ends with that trailing slash and doesn’t include .git, etc.
- - In the Git SCM section of the job configuration, set the repository URL to point to the GitHub git:// URL for your repository - i.e., git://github.com/apache/incubator-brooklyn.git.
- - You should be able to leave the “Branches to build” field as is - this won’t be relevant anyway.
- - Click the “Add” button in “Additional Behaviors” and choose "Strategy for choosing what to build”. Make sure the choosing strategy is set to “Build commits submitted for validated merge”.
- - Uncheck any existing build triggers - this shouldn’t be running on a schedule, polling, running when SNAPSHOT dependencies are built, etc.
- - Check the “Build pull requests to the repository” option in the build triggers.
- - Optionally change anything else in the job that you’d like to be different for a pull request build than for a normal build - i.e., any downstream build triggers should probably be removed, you may want to change email recipients, etc.
- - Save, and you’re done!
-
- Now when a pull request is opened or new changes are pushed to an existing pull request to your repository, this job will be triggered, and it will build the pull request. A link will be added to the pull request in the list of builds for the job, and when the build completes, Jenkins will comment on the pull request with the build result and a link to the build at builds.apache.org.
+The ASF Infrastructure team is happy to announce that you can now set up jobs on builds.apache.org to listen for pull requests to github.com/apache repositories, build that pull request’s changes, and then comment on the pull request with the build’s results. This is done using the Jenkins Enterprise GitHub pull request builder plugin, generously provided to the ASF by our friends at CloudBees. We've set up the necessary hooks on all github.com/apache repositories that are up as of Wednesday, Oct 1, 2014, and will be adding the hooks to all new repositories going forward.
Here’s what you need to do to set it up:
+
+ - Create a new job, probably copied from an existing job.
+ - Make sure you’re not doing any “mvn deploy” or equivalent in the new job - this job shouldn’t be deploying any artifacts to Nexus, etc.
+ - Check the "Enable Git validated merge support” box - you can leave the first few fields set to their default, since we’re not actually pushing anything. This is just required to get the pull request builder to register correctly.
+ - Set the “GitHub project” field to the HTTP URL for your repository - i.e.,"http://github.com/apache/incubator-brooklyn/"- make sure it ends with that trailing slash and doesn’t include .git, etc.
+ - In the Git SCM section of the job configuration, set the repository URL to point to the GitHub git:// URL for your repository - i.e., git://github.com/apache/incubator-brooklyn.git.
+ - You should be able to leave the “Branches to build” field as is - this won’t be relevant anyway.
+ - Click the “Add” button in “Additional Behaviors” and choose "Strategy for choosing what to build”. Make sure the choosing strategy is set to “Build commits submitted for validated merge”.
+ - Uncheck any existing build triggers - this shouldn’t be running on a schedule, polling, running when SNAPSHOT dependencies are built, etc.
+ - Check the “Build pull requests to the repository” option in the build triggers.
+ - Optionally change anything else in the job that you’d like to be different for a pull request build than for a normal build - i.e., any downstream build triggers should probably be removed, you may want to change email recipients, etc.
+ - Save, and you’re done!
+
+ Now when a pull request is opened or new changes are pushed to an existing pull request to your repository, this job will be triggered, and it will build the pull request. A link will be added to the pull request in the list of builds for the job, and when the build completes, Jenkins will comment on the pull request with the build result and a link to the build at builds.apache.org.
In addition, you can also use the "Build when a change is pushed to GitHub" option in the build triggers for non-pull request jobs, instead of polling - Jenkins receives notifications from GitHub whenever one of our repositories has been pushed to. Jenkins can then determine which jobs use that repository and the branch that was pushed to, and trigger the appropriate build.
If you have any questions or problems, please email builds@apache.org or open a BUILDS JIRA at issues.apache.org.
diff --git a/content/blog/gradle_at_the_ASF.md b/content/blog/gradle_at_the_ASF.md
index 98583736c..eb0a6776a 100644
--- a/content/blog/gradle_at_the_ASF.md
+++ b/content/blog/gradle_at_the_ASF.md
@@ -8,20 +8,25 @@ layout: post
Gradle, a longtime leader in developer productivity and build analytics, has become a platinum-level sponsor of the ASF. The ASF instance of Develocity, formerly Gradle Enterprise, is at https://develocity.apache.org.
## But what is it?
+
Develocity is a suite of acceleration and analytics technologies for CI/CD systems to help projects identify and analyze trends while optimizing build resources. The result is faster builds, with fewer failures,
## What does Develocity do?
+
Using a five-fold approach to optimization, Develocity scans, ingests, and caches build data, which it then analyzes. It displays the results in an an easy-to-use interface where project members can identify bottlenecks and roadblocks. You can also leverage cached results to ensure that only changes in each new build are tested.
-This approach results in faster feedback and less use of build resources.
+This approach results in faster feedback and less use of build resources.
## How do projects integrate Develocity into their builds?
-A good resource is Project Onboarding Instructions for Develocity.
+
+A good resource is Project Onboarding Instructions for Develocity.
If your project runs into difficulties or has questions, open a Jira ticket for Infra. If we can't help with your issue ourselves, we can draw on the ASF's community of Gradle users.
## How do projects make use of Develocity?
+
Once a project has integrated Develocity into their build process, scans of each new build are sent to the instance at `develocity.apache.org`. Project members can review the build scan dashboard's graphic analysis.
## How do we expect this to impact us?
+
We hope that, with increased insight into build processes, projects will see build time savings across all jobs, reducing queue times and driving down time spent building serially or dealing with build failures.
diff --git a/content/blog/heartbleed_fallout_for_apache.md b/content/blog/heartbleed_fallout_for_apache.md
index 6d3295ffb..ff8510126 100644
--- a/content/blog/heartbleed_fallout_for_apache.md
+++ b/content/blog/heartbleed_fallout_for_apache.md
@@ -3,20 +3,20 @@ date: '2014-04-11T20:25:44+00:00'
permalink: heartbleed_fallout_for_apache
layout: post
-Remain calm.
- What we've learned about the heartbleed incident is that it is hard, in the sense of perhaps only viable to a well-funded blackhat operation, to steal a private certificate and key from a vulnerable service. Nevertheless, the central role Apache projects play in the modern software development world require us to mitigate against that circumstance. Given the length of time and exposure window for this bug's existence, we have to assume that some/many Apache passwords may have been compromised, and perhaps even our private wildcard cert and key, so we've taken a few steps as of today:
-
-
- - We fixed the vulnerability in our openssl installations to prevent further damage,
- - We've acquired a new wildcard cert for apache.org that we have rolled out prior to this blog entry,
- - We will require that all committers rotate their LDAP passwords (committers visit id.apache.org to reset LDAP passwords once they've been forcibly reset),
- - We are encouraging all service administrators to all non-LDAP service like jira to rotate those passwords as well.
-
-
-
Regarding the cert change for svn users- we'd also like to suggest that you remove your existing apache.org certs from your .subversion cache to prevent potential MITM attacks using the old cert. Fortunately it is relatively painless to do this:
-
% grep -l apache.org ~/.subversion/auth/svn.ssl.server/* | xargs rm
-
-
NOTE: our openoffice wildcard cert was never vulnerable to this issue as it was served from an openssl-1.0.0 host.
-
-
+Remain calm.
+ What we've learned about the heartbleed incident is that it is hard, in the sense of perhaps only viable to a well-funded blackhat operation, to steal a private certificate and key from a vulnerable service. Nevertheless, the central role Apache projects play in the modern software development world require us to mitigate against that circumstance. Given the length of time and exposure window for this bug's existence, we have to assume that some/many Apache passwords may have been compromised, and perhaps even our private wildcard cert and key, so we've taken a few steps as of today:
+
+
+ - We fixed the vulnerability in our openssl installations to prevent further damage,
+ - We've acquired a new wildcard cert for apache.org that we have rolled out prior to this blog entry,
+ - We will require that all committers rotate their LDAP passwords (committers visit id.apache.org to reset LDAP passwords once they've been forcibly reset),
+ - We are encouraging all service administrators to all non-LDAP service like jira to rotate those passwords as well.
+
+
+
Regarding the cert change for svn users- we'd also like to suggest that you remove your existing apache.org certs from your .subversion cache to prevent potential MITM attacks using the old cert. Fortunately it is relatively painless to do this:
+
% grep -l apache.org ~/.subversion/auth/svn.ssl.server/* | xargs rm
+
+
NOTE: our openoffice wildcard cert was never vulnerable to this issue as it was served from an openssl-1.0.0 host.
+
+
diff --git a/content/blog/https_id_apache_org_new.md b/content/blog/https_id_apache_org_new.md
index 1c069fdcd..4c92fcb5f 100644
--- a/content/blog/https_id_apache_org_new.md
+++ b/content/blog/https_id_apache_org_new.md
@@ -5,8 +5,8 @@ layout: post
Folks,
-The infrastructure team are pleased to announce the availability of id.apache.org the new password management tool for all ASF committers and members. This new service will allow users to:
-
+The infrastructure team are pleased to announce the availability of id.apache.org the new password management tool for all ASF committers and members. This new service will allow users to:
+
- Reset forgotten LDAP passwords themselves, no need to contact the Infra team anymore.
- The ability to change their LDAP password.
- The ability to update your LDAP record, i.e. change forename, surname or mail attributes. [1].
diff --git a/content/blog/improved_integration_between_apache_and.md b/content/blog/improved_integration_between_apache_and.md
index b579b526e..c541b7a0b 100644
--- a/content/blog/improved_integration_between_apache_and.md
+++ b/content/blog/improved_integration_between_apache_and.md
@@ -3,14 +3,14 @@ date: '2014-02-12T01:16:30+00:00'
permalink: improved_integration_between_apache_and
layout: post
-After a few weeks of hard work and mind-boggling debugging, we are pleased to announce tighter and smarter integration between GitHub and the Apache Software Foundation's infrastructure.
- These new features mean a much higher level of replication and retention of what goes on on GitHub, which in turns both help projects maintain control over what goes on within their project, as well as keeping a record of everything that's happening in the development of a project, whether it be on ASF hardware or off-site on GitHub.
- To be more precise, these new features allows for the following:
-
- - Any Pull Request that gets opened, closed, reopened or commented on now gets recorded on the project's mailing list
- - If a project has a JIRA instance, any PRs or comments on PRs that include a JIRA ticket ID will trigger an update on that specific ticket
+After a few weeks of hard work and mind-boggling debugging, we are pleased to announce tighter and smarter integration between GitHub and the Apache Software Foundation's infrastructure.
+ These new features mean a much higher level of replication and retention of what goes on on GitHub, which in turns both help projects maintain control over what goes on within their project, as well as keeping a record of everything that's happening in the development of a project, whether it be on ASF hardware or off-site on GitHub.
+ To be more precise, these new features allows for the following:
+
+ - Any Pull Request that gets opened, closed, reopened or commented on now gets recorded on the project's mailing list
+ - If a project has a JIRA instance, any PRs or comments on PRs that include a JIRA ticket ID will trigger an update on that specific ticket
- Replying to a GitHub comment on the dev@ mailing list will trigger a comment being placed on GitHub (yes, it works both ways!)
- - GitHub activity can now be relayed to IRC channels on the Freenode network.
-
- As with most of our things, this is an opt-in feature. If you are in a project that would like to take advantage of these new features, please contact infrastructure, preferably by filing a JIRA ticket with the component set to Git, and specifying which of the new features you would like to see enabled for your project.
+ - GitHub activity can now be relayed to IRC channels on the Freenode network.
+
+ As with most of our things, this is an opt-in feature. If you are in a project that would like to take advantage of these new features, please contact infrastructure, preferably by filing a JIRA ticket with the component set to Git, and specifying which of the new features you would like to see enabled for your project.
On behalf of the Infrastructure Team, I hope you will find these new features useful and be mindful in your use of them.
diff --git a/content/blog/infrastructure_team_adopting_an_on.md b/content/blog/infrastructure_team_adopting_an_on.md
index b2cb824a2..5434b612c 100644
--- a/content/blog/infrastructure_team_adopting_an_on.md
+++ b/content/blog/infrastructure_team_adopting_an_on.md
@@ -3,27 +3,27 @@ date: '2014-08-18T13:00:00+00:00'
permalink: infrastructure_team_adopting_an_on
layout: post
-As the Apache Software Foundation (ASF) has grown, the infrastructure required to support its diverse set of projects has grown as well. To care for the infrastructure that the ASF depends on, the foundation has hired several contractors to supplement the dedicated cadre of volunteers who help maintain the ASFs hardware and services. To best utilize the time of our paid contractors and volunteers, the Infrastructure team will be adopting an on-call rotation to meet requests and resolve outages in a timely fashion.
+As the Apache Software Foundation (ASF) has grown, the infrastructure required to support its diverse set of projects has grown as well. To care for the infrastructure that the ASF depends on, the foundation has hired several contractors to supplement the dedicated cadre of volunteers who help maintain the ASFs hardware and services. To best utilize the time of our paid contractors and volunteers, the Infrastructure team will be adopting an on-call rotation to meet requests and resolve outages in a timely fashion.
Why We're Establishing an On-Call Rotation
-
+
In groups, especially groups that are charged with overlapping duties, there's occasionally a sense of diffusion of responsibility. There tends to be a good number of tasks or incidents that routinely occur that need a clear owner. We've also tried to set expectations around our service levels relative to the importance of a service. In example, a new mailing list can be set up as convenient, but a failing mail service needs to be addressed immediately.
-
+
The technical side of this has been that we have historically alerted via email and/or SMS about any urgent issues that came up. Of course those alerts went to everyone on the team. If the alert occurs at an inconvenient time, either everyone responds, which is likely wasteful, or no one responds thinking someone else will.
-
- At the Infrastructure team's face to face meeting in July we decided we'd adopt an on-call rotation for the contractors so that everyone wasn't responsible for everything all of the time. We then went looking for something to let us sanely (and without building it ourselves) deal with that.
+
+ At the Infrastructure team's face to face meeting in July we decided we'd adopt an on-call rotation for the contractors so that everyone wasn't responsible for everything all of the time. We then went looking for something to let us sanely (and without building it ourselves) deal with that.
-We ended up choosing PagerDuty, which has a number of ways of receiving alerts. More importantly, it allows us to set a schedule, easily override it for holidays or illnesses, and do so programmatically. It also seamlessly integrates with HipChat, which Infrastructure is running a trial of and communicates with our mobile devices.
+We ended up choosing PagerDuty, which has a number of ways of receiving alerts. More importantly, it allows us to set a schedule, easily override it for holidays or illnesses, and do so programmatically. It also seamlessly integrates with HipChat, which Infrastructure is running a trial of and communicates with our mobile devices.
PagerDuty also supports a clear escalation path that begins alerting other people about issues if the person on-call fails to respond in a timely manner. Additionally, PagerDuty's mobile apps are built with Apache Cordova, which is an interesting circle. We've finished our trial and decided to adopt PagerDuty. PagerDuty was especially gracious and made our account gratis.
-
- Adopting an on-call rotation will allow us to provide a better service and response time, while also clearly setting expectations around contractor availability so they can relax on their off weeks.
+
+ Adopting an on-call rotation will allow us to provide a better service and response time, while also clearly setting expectations around contractor availability so they can relax on their off weeks.
-If you have questions or want to get involved, feel free to join us on the infrastructure mailing list infrastructure@apache.org or joining us in our Hipchat room.
+If you have questions or want to get involved, feel free to join us on the infrastructure mailing list infrastructure@apache.org or joining us in our Hipchat room.
diff --git a/content/blog/introducing_jira_service_desk.md b/content/blog/introducing_jira_service_desk.md
index 46632dd3a..f28a9771f 100644
--- a/content/blog/introducing_jira_service_desk.md
+++ b/content/blog/introducing_jira_service_desk.md
@@ -7,8 +7,8 @@ layout: post
Infra no longer offers the Jira Service Desk. You can manage most standard service requests yourself through the Self-Serve service.
-As part of our ongoing efforts to streamline our service offerings, and to make it easier to interact with the Infrastructure team we are launching an instance of JIRA Service Desk.
- This should make it much simpler to submit common JIRA issues, such as SVN->GIT migration, New wiki, New JIRA project, etc. The forms ask for the minimum amount of data we would need to complete the request.
- One common theme we found that delayed resolution was needing additional information to action tickets. Service Desk allows us to request the exact information needed for a specific task.
- We would like to ask everyone to start using this to submit new issues. You can access this new service here: https://helpinfrahelpyou.apache.org or https://infrahelp.apache.org
+As part of our ongoing efforts to streamline our service offerings, and to make it easier to interact with the Infrastructure team we are launching an instance of JIRA Service Desk.
+ This should make it much simpler to submit common JIRA issues, such as SVN->GIT migration, New wiki, New JIRA project, etc. The forms ask for the minimum amount of data we would need to complete the request.
+ One common theme we found that delayed resolution was needing additional information to action tickets. Service Desk allows us to request the exact information needed for a specific task.
+ We would like to ask everyone to start using this to submit new issues. You can access this new service here: https://helpinfrahelpyou.apache.org or https://infrahelp.apache.org
diff --git a/content/blog/ldap_and_password_policy.md b/content/blog/ldap_and_password_policy.md
index 7242641c7..0b1cab046 100644
--- a/content/blog/ldap_and_password_policy.md
+++ b/content/blog/ldap_and_password_policy.md
@@ -6,11 +6,11 @@ layout: post
As of approximately 03:00 (UTC) today the infrastructure team have enabled a password policy for all LDAP accounts.
This policy has been implemented at the LDAP infrastructure level and will affect all users. It has been deployed using OpenLDAP's password policy schema, and overlay.
-At the time of launch we will be enforcing the following policy.
+At the time of launch we will be enforcing the following policy.
- At the time of a given users 10th successive login failure the account will be locked.
-- The account will then be automatically unlocked 24 hours later, or until a member of root@ unlocks it for you.
+- The account will then be automatically unlocked 24 hours later, or until a member of root@ unlocks it for you.
- If the user successfully completes a login before the tally reaches 10, the counter for failed logins is reset back to 0.
diff --git a/content/blog/mail_outage.md b/content/blog/mail_outage.md
index 81ae86a09..dd2440515 100644
--- a/content/blog/mail_outage.md
+++ b/content/blog/mail_outage.md
@@ -3,17 +3,17 @@ date: '2014-05-07T14:48:16+00:00'
permalink: mail_outage
layout: post
-During the afternoon of May 6th we began experiencing delays in mail delivery of 1-2 hours. Initial efforts at remediation seemed to clear this up but on the morning of May 7th the problem worsened and we proactively disabled mail service to deal with the failure. The underlying hardware suffered failures on multiple disks. This outage effects all ASF mailing lists and mail forwarding.
- This service is housed at OSUOSL, and we are currently waiting on smart hands to help with replacing hardware. Our expectation at this point is that we still have multiple hours worth of outage.
- Incoming mail is currently being received and held in queue by our mail exchangers. We also have a copy of the existing queue that hasn't been processed; so we expect no mail or data loss.
- ASF Infra's twitter bot will provide updates as we have them for the duration of the outage. Feel free to follow @infrabot on Twitter. There will be an update on this post as well as the situation progresses.
- UPDATE 7 May 19:27 UTC - Drives have been replaced, array is attempting to rebuild. As indicated earlier on twitter, there likely remains hours of outage.
-
- UPDATE 7 May 20:44 UTC - The disk array is still in the process of repairing. Several hundred mails were processed during a reboot, but more work remains before service is restored. Mail service has been disabled again as the array repair process is CPU-bound. The plan going forward is to allow the disk arrays to finish repairs. Once that is complete, we'll reenable the mail service and flush what is currently in the queue. Finally, once the queue is empty we'll begin receiving mail again.
- UPDATE 8 May 05:00 UTC - The disk array failed to repair itself. The disks have been replaced and a new installation has been completed. Progress continues to be made towards resolution, but nothing firm enough yet for us to predict an time for restoration.
- UPDATE 8 May 15:45 UTC - No material change of status has occurred. Infra worked in shifts around the clock last night and continue to do so to restore service. More updates as they become available.
- UPDATE 9 May 11:20 UTC - We are working on temporarily restoring the most essential email aliases. In the meantime, inquiries may be made to infrastructure@apache.pw or on our IRC channel, #asfinfra on Freenode. The work on restoring the service in full is still ongoing.
- UPDATE 9 May 17:20 UTC - We've successfully restored a host from backups and will be starting testing soon. Based on the progress made in those tests we'll try and provide expectations around restoration of service timeline.
- UPDATE 10 May 15:45 UTC - We've started pushing live mails through the system - you'll begin to see them trickle in as we gradually open the floodgates to restore service. Expect intermittent spurts for a while.
+During the afternoon of May 6th we began experiencing delays in mail delivery of 1-2 hours. Initial efforts at remediation seemed to clear this up but on the morning of May 7th the problem worsened and we proactively disabled mail service to deal with the failure. The underlying hardware suffered failures on multiple disks. This outage effects all ASF mailing lists and mail forwarding.
+ This service is housed at OSUOSL, and we are currently waiting on smart hands to help with replacing hardware. Our expectation at this point is that we still have multiple hours worth of outage.
+ Incoming mail is currently being received and held in queue by our mail exchangers. We also have a copy of the existing queue that hasn't been processed; so we expect no mail or data loss.
+ ASF Infra's twitter bot will provide updates as we have them for the duration of the outage. Feel free to follow @infrabot on Twitter. There will be an update on this post as well as the situation progresses.
+ UPDATE 7 May 19:27 UTC - Drives have been replaced, array is attempting to rebuild. As indicated earlier on twitter, there likely remains hours of outage.
+
+ UPDATE 7 May 20:44 UTC - The disk array is still in the process of repairing. Several hundred mails were processed during a reboot, but more work remains before service is restored. Mail service has been disabled again as the array repair process is CPU-bound. The plan going forward is to allow the disk arrays to finish repairs. Once that is complete, we'll reenable the mail service and flush what is currently in the queue. Finally, once the queue is empty we'll begin receiving mail again.
+ UPDATE 8 May 05:00 UTC - The disk array failed to repair itself. The disks have been replaced and a new installation has been completed. Progress continues to be made towards resolution, but nothing firm enough yet for us to predict an time for restoration.
+ UPDATE 8 May 15:45 UTC - No material change of status has occurred. Infra worked in shifts around the clock last night and continue to do so to restore service. More updates as they become available.
+ UPDATE 9 May 11:20 UTC - We are working on temporarily restoring the most essential email aliases. In the meantime, inquiries may be made to infrastructure@apache.pw or on our IRC channel, #asfinfra on Freenode. The work on restoring the service in full is still ongoing.
+ UPDATE 9 May 17:20 UTC - We've successfully restored a host from backups and will be starting testing soon. Based on the progress made in those tests we'll try and provide expectations around restoration of service timeline.
+ UPDATE 10 May 15:45 UTC - We've started pushing live mails through the system - you'll begin to see them trickle in as we gradually open the floodgates to restore service. Expect intermittent spurts for a while.
UPDATE 10 May 21:55 UTC - The floodgates have been opened. As we have a significant amount of backlog to catch up on, please be patient as the service does this. As always feel free to contact us if you have any questions. In the immediate short term (next day or so, we suggest you continue to use infrastructure@apache.pw and our IRC channel, #asfinfra on Freenode. We would like to thank you for your patience during this extremely busy time.
UPDATE 12 May 16:04 UTC - Clarification - we have opened the floodgates, but have a substantial amount of backlog; and with the sudden rush of mail are being throttled by various mail services. With the addition of mail that's coming through anyway; it may take us from 2-5 days to fully flush the backlog. This time is so wide because of a wide variety of factors that are largely outside of our control, such as new mail coming in and mail services individual throttling policies.
diff --git a/content/blog/mail_outage_post_mortem.md b/content/blog/mail_outage_post_mortem.md
index e0d45a474..911a1a65c 100644
--- a/content/blog/mail_outage_post_mortem.md
+++ b/content/blog/mail_outage_post_mortem.md
@@ -3,17 +3,17 @@ date: '2014-05-28T05:16:39+00:00'
permalink: mail_outage_post_mortem
layout: post
-Overview:
During the afternoon of May 6th we began experiencing delays in mail delivery of 1-2 hours. Initial efforts at remediation seemed to clear this up but on the morning of May 7th the problem worsened and we proactively disabled mail service to deal with the failure. This outage affected all ASF mailing lists and mail forwarding. The service remained unavailable until May 10th, and it took almost 5 additional days to fully flush the backlog of messages.
You can find a timeline here that was kept during the incident: https://blogs.apache.org/infra/entry/mail_outage
This was a catastrophic failure for the Apache Software Foundation as email is core to virtually every operation and is our primary communication medium.
What happened:
The mail service at the ASF is composed of three physical servers. Two of these are external facing mail exchangers that receive mail. The final server handles mailing list expansion, alias forwarding and mail delivery in general. That latter server had two volumes that experienced a disk outage each. This degraded performance substantially and led to the mail delays seen on May 6th and 7th. The service was proactively disabled on May 7th in an attempt to let the arrays rebuild without the significant disk I/O overhead caused by processing the large mail backlog. Ultimately multiple attempts to rebuild the underlying arrays failed and eventually other drives in the array where the data volume was stored failed rendering recovery a hopeless task on May 8th. We began working to restore backups from our offsite backup location to our primary US datacenter. When this began to take longer than expected, additional concurrent efforts began to restore service in one of our secondary datacenters as well as in a public cloud instance. Ultimately we ended up completing the restoration to our primary US datacenter first and were able to bring the service online. When the service resumed, we had an estimated 10 million message backlog in addition to our normal 1.7-2 million ongoing daily message flow. The amount of backlogged mail taxed the existing infrastructure and architecture of the mail service and took almost 5 days to completely clear.
+Overview:
During the afternoon of May 6th we began experiencing delays in mail delivery of 1-2 hours. Initial efforts at remediation seemed to clear this up but on the morning of May 7th the problem worsened and we proactively disabled mail service to deal with the failure. This outage affected all ASF mailing lists and mail forwarding. The service remained unavailable until May 10th, and it took almost 5 additional days to fully flush the backlog of messages.
You can find a timeline here that was kept during the incident: https://blogs.apache.org/infra/entry/mail_outage
This was a catastrophic failure for the Apache Software Foundation as email is core to virtually every operation and is our primary communication medium.
What happened:
The mail service at the ASF is composed of three physical servers. Two of these are external facing mail exchangers that receive mail. The final server handles mailing list expansion, alias forwarding and mail delivery in general. That latter server had two volumes that experienced a disk outage each. This degraded performance substantially and led to the mail delays seen on May 6th and 7th. The service was proactively disabled on May 7th in an attempt to let the arrays rebuild without the significant disk I/O overhead caused by processing the large mail backlog. Ultimately multiple attempts to rebuild the underlying arrays failed and eventually other drives in the array where the data volume was stored failed rendering recovery a hopeless task on May 8th. We began working to restore backups from our offsite backup location to our primary US datacenter. When this began to take longer than expected, additional concurrent efforts began to restore service in one of our secondary datacenters as well as in a public cloud instance. Ultimately we ended up completing the restoration to our primary US datacenter first and were able to bring the service online. When the service resumed, we had an estimated 10 million message backlog in addition to our normal 1.7-2 million ongoing daily message flow. The amount of backlogged mail taxed the existing infrastructure and architecture of the mail service and took almost 5 days to completely clear.
What worked:
Our backups were sufficient to allow us to restore the service in good working order.
Early precautions taken when we discovered the problem combined with our backups resulted in no data loss from the incident.
Our mail exchangers continued to work during the outage and held incoming mail until the service was restored.
What didn't work:
Our monitoring was not sufficient to identify the problem or alert us to the symptoms.
No spare hard drives for this class of machine were on-hand in our primary datacenter.
The restore time from our remote backups took an excessively long time. This was partially due to the large size of the restore data, and partially due to the transport method used for the data.
After the service was restored we had approximately a 10M message backlog that took days to clear.
The primary administrator of the service was on vacation, and the remaining infrastructure contractors were not intimately familiar with the service.
Our documentation was insufficient to easily restore the service in a rapid manner by folks without intimate knowledge.
Remediation plan:
Our immediate action items:
-
- - Update the documentation to be current/diagram mail flow.
- - Improve the monitoring of the mail service itself as well as the hardware.
- - Insure we have adequate spares on hand for the majority of our core services.
- - Place our mail server under configuration management to reduce our MTTR
-
Medium-to-Long term initiatives.
-
- - Crosstraining contractors in all critical services
- - Work on moving to a more fault-tolerant/redundant architecture
- - More fully deploy our config management and automated provisioning across our infrastructure so MTTR is reduced.
-
+
+ - Update the documentation to be current/diagram mail flow.
+ - Improve the monitoring of the mail service itself as well as the hardware.
+ - Insure we have adequate spares on hand for the majority of our core services.
+ - Place our mail server under configuration management to reduce our MTTR
+
Medium-to-Long term initiatives.
+
+ - Crosstraining contractors in all critical services
+ - Work on moving to a more fault-tolerant/redundant architecture
+ - More fully deploy our config management and automated provisioning across our infrastructure so MTTR is reduced.
+
diff --git a/content/blog/mail_service_architecture_changes.md b/content/blog/mail_service_architecture_changes.md
index 498146350..1e98a271d 100644
--- a/content/blog/mail_service_architecture_changes.md
+++ b/content/blog/mail_service_architecture_changes.md
@@ -3,22 +3,22 @@ date: '2015-05-08T21:12:11+00:00'
permalink: mail_service_architecture_changes
layout: post
-For the past few months the Infrastructure team have been working extremely hard to re-design, implement and manage changes to the email service architecture. Today we are proud to announce that phase 1 of this has been completed, and has been running for several days now.
- Phase 1 covers all components of the service except the listserv service, and mail archives. These will be included in phase 2, which we will come onto later. When we started out on this project to review, update and manage our email infrastructure we had a several guiding principals that either the old system must be made to conform too; or any new service would need to meet before being accepted. When we talk about these principals really we are talking about criteria, these are:
-
-
- - The service must be entirely managed (operationally) from our puppet service.
- - The software (packages) must all be packaged - i.e. .deb's, either upstream or packaged locally and in our own repo. Deploying from source is no longer acceptable.
- - All the work carried out by puppet et al must be idempotent
- - We will not allow the service design to restrict our ability to either adapt it, or grow it at will and on demand.
-
- Very early on in the design and testing work it became clear that we needed clear separation of each of the roles in the email service infrastructure. This would allow us, in the future too add more capability of any given type if for some reason it were needed. Lets say for example we needed for SpamAssassin capability this can we scaled sideways and allow us to swallow the load without needing to also make it an MX host or listserv host etc.
-
- The design we have settled upon, with phase 1 complete can be seen in this diagram. http://www.apache.org/dev/mailflow.jpg - This diagram shows that we have deployed several MX hosts (each of which are more than capable of handling our entire inbound mail load comfortably); in differing AWS regions globally. This decision means that while we dont need 3 to cope with capacity we wanted 3 to cope with networking resilience should any of these instances suffer network degradation or outage.
- These MX hosts are simple Postfix instances that run Postfix Postscreen, RBL checks, and Amavisd-new. This simple protection of only performing RBL checks at the edge frees up the internal scanning hosts from having to scan emails needlessly. Amavis is simply used to pass the emails internally for scanning.
- Once the mails have been passed on by the MX (and there is an interesting detail about how exactly the mails are handled by Amavis that might be a blog post in the near future) they are handled by our scanning cluster. This group of hosts utilise SpamAssassin, ClamAV and again Postfix. While these may not be new technologies, again having a dedicated host or hosts in our case allows us to tune the services specifically for the resources dedicated to scanning and not worry about choking other local services. Of course it also means that should we see a marked increase in mail volume we can easily deploy a new node in a matter of minutes and have it join the rotation and start scanning email.
- All of the scanning nodes are being fronted by a HAProxy instance, this allows us to load balance our nodes and not have to reconfigure the MX hosts should we change the number of scanning hosts. It also means we can take a node out of rotation for maintenance and none of the MX hosts need to be reconfigured or modified in anyway.
- As we said earlier this is only phase 1. You will see in the diagram that we are still running our old ezmlm/qmail stack. This will now become the focus of phase 2, to determine what changes, if any best suit our projects and the foundation as a whole. One of the failings of the current system is that if the listserv host goes down, mail basically stops flowing, as this is the authoritative host for all apache addresses. We will also be looking very hard as to how we can run multiple listserv hosts to remove that single point of failure concern.
- The foundation relies on email as it's official internal communication mechanism, this is evident no more than when we say "If it didn't happen on the list, it didn't happen". Moving this service forward will be a significant challenge, one which we hope to deliver as soon as we can.
- As always, if you have any questions please email infrastructure@apache.org and we will do what we can to help.
+For the past few months the Infrastructure team have been working extremely hard to re-design, implement and manage changes to the email service architecture. Today we are proud to announce that phase 1 of this has been completed, and has been running for several days now.
+ Phase 1 covers all components of the service except the listserv service, and mail archives. These will be included in phase 2, which we will come onto later. When we started out on this project to review, update and manage our email infrastructure we had a several guiding principals that either the old system must be made to conform too; or any new service would need to meet before being accepted. When we talk about these principals really we are talking about criteria, these are:
+
+
+ - The service must be entirely managed (operationally) from our puppet service.
+ - The software (packages) must all be packaged - i.e. .deb's, either upstream or packaged locally and in our own repo. Deploying from source is no longer acceptable.
+ - All the work carried out by puppet et al must be idempotent
+ - We will not allow the service design to restrict our ability to either adapt it, or grow it at will and on demand.
+
+ Very early on in the design and testing work it became clear that we needed clear separation of each of the roles in the email service infrastructure. This would allow us, in the future too add more capability of any given type if for some reason it were needed. Lets say for example we needed for SpamAssassin capability this can we scaled sideways and allow us to swallow the load without needing to also make it an MX host or listserv host etc.
+
+ The design we have settled upon, with phase 1 complete can be seen in this diagram. http://www.apache.org/dev/mailflow.jpg - This diagram shows that we have deployed several MX hosts (each of which are more than capable of handling our entire inbound mail load comfortably); in differing AWS regions globally. This decision means that while we dont need 3 to cope with capacity we wanted 3 to cope with networking resilience should any of these instances suffer network degradation or outage.
+ These MX hosts are simple Postfix instances that run Postfix Postscreen, RBL checks, and Amavisd-new. This simple protection of only performing RBL checks at the edge frees up the internal scanning hosts from having to scan emails needlessly. Amavis is simply used to pass the emails internally for scanning.
+ Once the mails have been passed on by the MX (and there is an interesting detail about how exactly the mails are handled by Amavis that might be a blog post in the near future) they are handled by our scanning cluster. This group of hosts utilise SpamAssassin, ClamAV and again Postfix. While these may not be new technologies, again having a dedicated host or hosts in our case allows us to tune the services specifically for the resources dedicated to scanning and not worry about choking other local services. Of course it also means that should we see a marked increase in mail volume we can easily deploy a new node in a matter of minutes and have it join the rotation and start scanning email.
+ All of the scanning nodes are being fronted by a HAProxy instance, this allows us to load balance our nodes and not have to reconfigure the MX hosts should we change the number of scanning hosts. It also means we can take a node out of rotation for maintenance and none of the MX hosts need to be reconfigured or modified in anyway.
+ As we said earlier this is only phase 1. You will see in the diagram that we are still running our old ezmlm/qmail stack. This will now become the focus of phase 2, to determine what changes, if any best suit our projects and the foundation as a whole. One of the failings of the current system is that if the listserv host goes down, mail basically stops flowing, as this is the authoritative host for all apache addresses. We will also be looking very hard as to how we can run multiple listserv hosts to remove that single point of failure concern.
+ The foundation relies on email as it's official internal communication mechanism, this is evident no more than when we say "If it didn't happen on the list, it didn't happen". Moving this service forward will be a significant challenge, one which we hope to deliver as soon as we can.
+ As always, if you have any questions please email infrastructure@apache.org and we will do what we can to help.
On behalf of the Infrastructure Team
--pctony
diff --git a/content/blog/mirroring_to_github_issues.md b/content/blog/mirroring_to_github_issues.md
index f5e7cbc2a..9e562ef75 100644
--- a/content/blog/mirroring_to_github_issues.md
+++ b/content/blog/mirroring_to_github_issues.md
@@ -3,14 +3,14 @@ date: '2015-07-14T16:05:02+00:00'
permalink: mirroring_to_github_issues
layout: post
-As some of you are aware, there have been some issues syncing changes from repositories on https://git-wip-us.apache.org to the mirrors on GitHub.
-
- The issues we are seeing:
-
- - Pull requests not being closed when they should be
- - Changes not being synced to the GitHub mirrors
- - Bots other than asfgit closing PRs on Apache GitHub mirrors.
-
- We are looking into why changes are not being synced, as well as why PRs are not getting closed and why some PRs are being closed by other bots such as hubot.
-
+As some of you are aware, there have been some issues syncing changes from repositories on https://git-wip-us.apache.org to the mirrors on GitHub.
+
+ The issues we are seeing:
+
+ - Pull requests not being closed when they should be
+ - Changes not being synced to the GitHub mirrors
+ - Bots other than asfgit closing PRs on Apache GitHub mirrors.
+
+ We are looking into why changes are not being synced, as well as why PRs are not getting closed and why some PRs are being closed by other bots such as hubot.
+
We will update this blog post as we get more information about the sync issues.
diff --git a/content/blog/new-jenkins-nodes-running-windows.md b/content/blog/new-jenkins-nodes-running-windows.md
index f26d88453..e37f0c7a2 100644
--- a/content/blog/new-jenkins-nodes-running-windows.md
+++ b/content/blog/new-jenkins-nodes-running-windows.md
@@ -4,4 +4,4 @@ permalink: new-jenkins-nodes-running-windows
layout: post
This afternoon, we rolled out two new Shared Jenkins Nodes, jenkins-win-azr-7 and 8. They are both in rotation, using the labels Windows and Windows-Docker. The second label was put in place as the older nodes can't run Docker Desktop. I've also tried setting these up by cloning disks instead of from the ground up.
-Feel free to test them out, all the usual tools are in place (as well as Docker).
+Feel free to test them out, all the usual tools are in place (as well as Docker).
diff --git a/content/blog/new_infra_team_members.md b/content/blog/new_infra_team_members.md
index 75044722c..8860a09d8 100644
--- a/content/blog/new_infra_team_members.md
+++ b/content/blog/new_infra_team_members.md
@@ -5,10 +5,10 @@ layout: post
-Since out last update over a year ago, the Infra Team has expanded by another NINE (9) members!
- Congrats and our warmest thanks go to:
-
Niklas Gustavsson - (ngn)
Jeremy Thomerson - (jrthomerson)
Mark Struberg - (struberg)
Eric Evans - (eevans)
Brandon Williams - (brandonwilliams)
Mohammad Nour El-Din - (mnour)
David Nalley - (ke4qqq)
Yang Shih-Ching - (imacat)
Daniel Gruno - (humbedooh)
- The rest of the Infra team look forward to continuing to work with you all.
-
- There are now a total of 80 infrastructure members with another 36 in the infrastructure-interest group.
+Since out last update over a year ago, the Infra Team has expanded by another NINE (9) members!
+ Congrats and our warmest thanks go to:
+
Niklas Gustavsson - (ngn)
Jeremy Thomerson - (jrthomerson)
Mark Struberg - (struberg)
Eric Evans - (eevans)
Brandon Williams - (brandonwilliams)
Mohammad Nour El-Din - (mnour)
David Nalley - (ke4qqq)
Yang Shih-Ching - (imacat)
Daniel Gruno - (humbedooh)
+ The rest of the Infra team look forward to continuing to work with you all.
+
+ There are now a total of 80 infrastructure members with another 36 in the infrastructure-interest group.
diff --git a/content/blog/new_monitoring_system_nagios_is.md b/content/blog/new_monitoring_system_nagios_is.md
index 47a87ec51..48aeffe41 100644
--- a/content/blog/new_monitoring_system_nagios_is.md
+++ b/content/blog/new_monitoring_system_nagios_is.md
@@ -3,23 +3,23 @@ date: '2014-05-23T22:29:12+00:00'
permalink: new_monitoring_system_nagios_is
layout: post
-23 may 2014 the old monitoring system "nagios" was put to sleep, and "circonus" was given production status.
+23 may 2014 the old monitoring system "nagios" was put to sleep, and "circonus" was given production status.
The new monitoring system is sponsored by circonus and most of the monitoring as well as the central database runs on www.circonus.com. The infrastructure team have built and deployed logic around the standard circonus system:
- A private broker, to monitor internal services without exposing them on internet
- A dedicated broker (inhouse development) that monitor special ASF systems (like svn compare US - EU)
- A configuration system, that are based on svn.
- A new status page status.apache.org
-- A new team structure (all committers with sudo karma on a VM, get an email when something happens with the VM)
-
- The new system is a lot faster and we can therefore offer projects monitoring of project URLs, of course the project also need to have a team that handles the alerts.
- The current version has approx. the same facilities as Nagios, but we are planning (and actively programming) a version.2 that will allow us to better predict problems before they occur.
+- A new team structure (all committers with sudo karma on a VM, get an email when something happens with the VM)
+
+ The new system is a lot faster and we can therefore offer projects monitoring of project URLs, of course the project also need to have a team that handles the alerts.
+ The current version has approx. the same facilities as Nagios, but we are planning (and actively programming) a version.2 that will allow us to better predict problems before they occur.
Some of the upcoming features are:
- disk monitoring
-- vital data statistic from core system (like size of mail queues)
- The change of monitoring system is a vital component in our transition to automate services and thereby enable infra to more effectively secure the stability of the infrastructure as well as make early detection of potential problems.
- The system was presented in Apachecon denver 2014, slides can be found here. We hope to present the live version at apachecon budapest 2014.
- On behalf of the infrastructure team
- jan I.
-
-
-
+- vital data statistic from core system (like size of mail queues)
+ The change of monitoring system is a vital component in our transition to automate services and thereby enable infra to more effectively secure the stability of the infrastructure as well as make early detection of potential problems.
+ The system was presented in Apachecon denver 2014, slides can be found here. We hope to present the live version at apachecon budapest 2014.
+ On behalf of the infrastructure team
+ jan I.
+
+
+
diff --git a/content/blog/new_status_page_for_the.md b/content/blog/new_status_page_for_the.md
index 7de7139f4..19096cee8 100644
--- a/content/blog/new_status_page_for_the.md
+++ b/content/blog/new_status_page_for_the.md
@@ -3,7 +3,7 @@ date: '2014-08-14T13:45:53+00:00'
permalink: new_status_page_for_the
layout: post
-We are pleased to announce that we have a new status page for our infrastructure and the ASF as a whole.
- Where we have previously been focused on reporting the up/down status of our services, we have now begun to look a bit more at the broader picture of the ASF; What's going on, who is committing how much, where are emails going, what's going on on GitHub mirrors and so on, as well as tracking uptime and availability for our public services that power the ASF's online presence.
- The result of this broader scope can be seen on: http://status.apache.org
+We are pleased to announce that we have a new status page for our infrastructure and the ASF as a whole.
+ Where we have previously been focused on reporting the up/down status of our services, we have now begun to look a bit more at the broader picture of the ASF; What's going on, who is committing how much, where are emails going, what's going on on GitHub mirrors and so on, as well as tracking uptime and availability for our public services that power the ASF's online presence.
+ The result of this broader scope can be seen on: http://status.apache.org
It is our hope that you'll find this new status page informative and helpful, both in times of trouble and times where everything is in working condition.
diff --git a/content/blog/newsletter_01_24.md b/content/blog/newsletter_01_24.md
index 6d98f78ea..fd72274d7 100644
--- a/content/blog/newsletter_01_24.md
+++ b/content/blog/newsletter_01_24.md
@@ -12,11 +12,13 @@ The complete text of each month's newsletter appears here on the Infra blog.
Expect to see a new installment of the newsletter toward the end of each month. If you have suggestions, please share them in an email to `users@infra.apache.org`.
## The Infra year-end survey
-As we start 2024, we're using a survey to review infrastructure developments and plans for the ASF. We will compile responses into an anonymized report to share with the whole ASF community and to provide the Infrastructure team with insights that may help us improve our work in the new year.
+
+As we start 2024, we're using a survey to review infrastructure developments and plans for the ASF. We will compile responses into an anonymized report to share with the whole ASF community and to provide the Infrastructure team with insights that may help us improve our work in the new year.
If you have not had a chance to fill out the survey yet, it is here. It will be active until **February 2, 2024**.
## The Infra Roundtable
+
Last year the Infrastructure team started holding monthly **Roundtable** meetings, in response to requests for a way to discuss infrastructure issues and initiatives. In 2023, we held ten such meetings, usually on the first Wednesday of each month. One meeting was face-to-face, as a part of Community Over Code North America.
Although an Infra member generally makes a brief presentation on some topic, this is not the sort of gathering where we talk and talk and you meekly listen. We enjoy hearing insights from all across the ASF universe, and some very good ideas have emerged from Roundtable meetings and become part of Infra's work plan.
@@ -28,9 +30,11 @@ Links to summaries of all meetings are at Keycloak and two factor authentication.
## Infra and conferences in 2024
+
While Infra will be taking part in both **Community over Code** (CoC) **Europe** and **CoC North America** in 2024, we will not be able to send team members to **CoC Asia**. It would be great if anyone attending could pass on to us, by email or through our Slack channel, insights or issues discussed at the conference that are relevant to Infra.
## What's in a name?
+
What should we call this thing? "The Infra Newsletter" is straightforward, but maybe not all that catchy. "Infractions", while being a cute mashup of "Infra" and "actions", may not be clear to readers for whom English is not their best language.
Use this link to vote for a name you prefer for the Infra newsletter: The poll is on Google Drive, but you do not have to log in to use it. The poll will stay open until **February 5, 2024**.
diff --git a/content/blog/newsletter_01_25.md b/content/blog/newsletter_01_25.md
index d8849d326..1585db452 100644
--- a/content/blog/newsletter_01_25.md
+++ b/content/blog/newsletter_01_25.md
@@ -14,12 +14,11 @@ The new version of .asf.yaml should be live by the start of February, 2025.
The next roundtable will be **Wednesday, February 5, 2025, 1700 UTC**. The main topic will be creation, review and management of **custom GitHub Actions** that projects can use in their compile and build processes, and the self-serve way to add custom GitHub Actions to the GHA Allowlist.
-See this page for details about how to join a roundtable, and what happens at it.
-
+See this page for details about how to join a roundtable, and what happens at it.
## Global CSP brownout
-Staring March 1, 2025, the ASF will be enforcing a **Content Security Policy** (CSP) for all project websites.
+Staring March 1, 2025, the ASF will be enforcing a **Content Security Policy** (CSP) for all project websites.
- External trackers from 3rd party providers are NO LONGER allowed
- External resources from providers with which we do not have a Data Processing Agreement (DPA) are NO LONGER allowed
@@ -28,7 +27,6 @@ This policy will bring project websites into alignment with The ASF's security a
The full policy, with links to important resources, is here.
-
## Reminder: Removing Blue Ocean
At the end of February, 2025, ASF Infra will remove all Blue Ocean and related plugins from our Jenkins ci-* controllers.
@@ -37,5 +35,4 @@ Cloudbees have removed the Blue Ocean plugin from their infra.apache.org/roundtable.html for details about how to join a roundtable, and what happens at it.
+See infra.apache.org/roundtable.html for details about how to join a roundtable, and what happens at it.
### Response to survey responses
diff --git a/content/blog/newsletter_02_24.md b/content/blog/newsletter_02_24.md
index f77a477bc..aef5a9b44 100644
--- a/content/blog/newsletter_02_24.md
+++ b/content/blog/newsletter_02_24.md
@@ -7,7 +7,7 @@ _Hello, all!_
## Newsletter name
-Our very unscientific poll showed that "Inside Infra" has the most support as a name for this newsletter, so that is what we shall be.
+Our very unscientific poll showed that "Inside Infra" has the most support as a name for this newsletter, so that is what we shall be.
**Note**: in 2020 the main ASF blog published a series of interviews with Infra team members also called "Inside Infra". Links to the interviews are available at The Infrastructure team.
diff --git a/content/blog/newsletter_02_25.md b/content/blog/newsletter_02_25.md
index 32e53a9f9..18dbed80d 100644
--- a/content/blog/newsletter_02_25.md
+++ b/content/blog/newsletter_02_25.md
@@ -9,10 +9,9 @@ There is now a management committee of subject matter experts who will review cu
We hope this process will fix the current bottleneck that is slowing down review of new GitHubActions, and will provide guidance to help submitters create stronger and more resilient code.
+There will be no roundtable in March, 2025. The next roundtable will be Wednesday, April 2, 2025, 1700 UTC. The main topic will be announced soon.
-There will be no roundtable in March, 2025. The next roundtable will be Wednesday, April 2, 2025, 1700 UTC. The main topic will be announced soon.
-
-See infra.apache.org/roundtable.html for details about how to join a roundtable, and what happens at it.
+See infra.apache.org/roundtable.html for details about how to join a roundtable, and what happens at it.
ASFMM
diff --git a/content/blog/newsletter_02_26.md b/content/blog/newsletter_02_26.md
index 313ca2624..ae3c2bb75 100644
--- a/content/blog/newsletter_02_26.md
+++ b/content/blog/newsletter_02_26.md
@@ -23,12 +23,12 @@ The next Roundtable will be **Wednesday, March 4, 2026, 1800 UTC**. The featured
Atlassian is discontinuing support for the on-premises versions of Jira Issue Tracker and the Confluence Wiki, so The ASF will be migrating to cloud instances of these services in the coming months.
-We need projects that are willing to let Infra copy their ticket and wiki data to a cloud test location, and test how working with the cloud versions of these tools goes. Infra will perform the test migration, so project members only need to engage in testing:
+We need projects that are willing to let Infra copy their ticket and wiki data to a cloud test location, and test how working with the cloud versions of these tools goes. Infra will perform the test migration, so project members only need to engage in testing:
-1. Log in to the Cloud test instance
-2. Browse around your test Jira project / Confluence wiki and ensure all looks as it does in the live, locally-hosted instance
-3. Create some Jira tickets, delete some, go through your usual workflow, etc. Create, edit, move, and delete some wiki pages (go crazy: remember, this is a test environment so you cannot hurt the real pages).
-4. After a few days playing, or in case of problems, report to the Infra team via a (real) Jira ticket (see below).
+1. Log in to the Cloud test instance
+2. Browse around your test Jira project / Confluence wiki and ensure all looks as it does in the live, locally-hosted instance
+3. Create some Jira tickets, delete some, go through your usual workflow, etc. Create, edit, move, and delete some wiki pages (go crazy: remember, this is a test environment so you cannot hurt the real pages).
+4. After a few days playing, or in case of problems, report to the Infra team via a (real) Jira ticket (see below).
The information you provide will be a huge help to the migration effort.
@@ -38,15 +38,12 @@ If you are not sure about something in this testing effort, ask us via `users@in
Testing begins **NOW** - and we need to complete testing by the end of April so we can move to the next phase of the migration
-
## When you need to talk with Infra
Years ago, when the Infra team was largely made up of volunteers, the best way to give or get information was by email to `users@infra.a.o`. That is no longer the case. The best way by far to get help from Infra is by opening a Jira ticket. The best ways to share information or engage with Infra are by the #asfinfra Slack channel, or by taking part in a Roundtable (each roundtable has time after the main presentation when anyone can bring forward an issue that needs attention). Information on joining and taking part in roundtables is at infra.apache.org/roundtable.html.
-
## The end of Reviewboard
Apache Reviewboard is very rarely used these days, and our Reviewboard instance is many years out of date. So Reviewboard at `reviews.apache.org`, which opened for business in October, 2010, will be turned off on March 31, 2026. There will be no direct replacement.
-
**More next month!**
diff --git a/content/blog/newsletter_03_24.md b/content/blog/newsletter_03_24.md
index 892193b59..d2dfc0225 100644
--- a/content/blog/newsletter_03_24.md
+++ b/content/blog/newsletter_03_24.md
@@ -17,7 +17,6 @@ Due to misconfigurations in their builds, some projects have been using unsuppor
The full policy is at https://infra.apache.org/github-actions-policy.html.
-
### Roundtable summary
In the Roundtable of March 3, 2024, Clay Johnson of Gradle outlined the testing features that come with Develocity, focussing on their use with Gradle and Maven. For instance:
@@ -29,7 +28,6 @@ A fuller summary of this discussion, and conversation about GitHub Runners and o
**Note**: There will be **no April 2024 Roundtable**. The series will resume in May.
-
### The end of Apache Paste Bucket?
In 2013 Infra rolled out Apache Paste Bucket (`http://paste.apache.org/`). In a blog entry at the time, we described it as an "ASF-driven site for posting snippets, scripts, logging output, configurations and much more and sharing them with the world."
diff --git a/content/blog/newsletter_03_25.md b/content/blog/newsletter_03_25.md
index 503d7d69b..ef8485af3 100644
--- a/content/blog/newsletter_03_25.md
+++ b/content/blog/newsletter_03_25.md
@@ -10,7 +10,7 @@ For details about how to join a roundtable, and what happens at it, see infra.apache.org/mfa.html.
+The draft of the main MFA policy, with a link to the policy on restoring MFA when someone has lost a key element of it, is available at infra.apache.org/mfa.html.
As we refine the policy and bring the tools to support it online, we will update the policy page. We will make a general announcement when we are close to bringing MFA live for The ASF and its projects.
@@ -23,7 +23,7 @@ As we refine the policy and bring the tools to support it online, we will update
There was no April roundtable.
-The May Roundtable will be on Wednesday, May 8, 2024, 1700 UTC. The topic of the day will be "How PMCs can use the STeVe voting tool", with a live demonstration. There will probably also be time for unstructured discussion about other issues and concerns related to infrastructure.
+The May Roundtable will be on Wednesday, May 8, 2024, 1700 UTC. The topic of the day will be "How PMCs can use the STeVe voting tool", with a live demonstration. There will probably also be time for unstructured discussion about other issues and concerns related to infrastructure.
Info about the roundtables is at infra.apache.org/roundtable.html.
diff --git a/content/blog/newsletter_04_25.md b/content/blog/newsletter_04_25.md
index ce1c61f5a..06cce2f9e 100644
--- a/content/blog/newsletter_04_25.md
+++ b/content/blog/newsletter_04_25.md
@@ -29,7 +29,7 @@ Recent enhancements to .asf.yaml make it easier for projects to manage their dev
- an option to allow deploying from all protected branches
- improvements to the branch and tagging processes
-More details are available in this part of the .asf.yaml README file: [https://github.com/apache/infrastructure-asfyaml?tab=readme-ov-file#environments](github.com/apache/infrastructure-asfyaml?tab=readme-ov-file#environments)
+More details are available in this part of the .asf.yaml README file: [https://github.com/apache/infrastructure-asfyaml?tab=readme-ov-file#environments](github.com/apache/infrastructure-asfyaml?tab=readme-ov-file#environments)
### Removal of Maven integration plugin
@@ -54,7 +54,7 @@ We now have 99,115 Jira accounts that have been inactive for more than three yea
This volume of accounts puts an unnecessary burden on our system, and Infra will be taking steps to reduce the account count:
- We will **delete** accounts that are more than a year old and have never had any activity.
- - We will **disable and anonymize** accounts that have been inactive for the past three years, retaining the record of their activity before that time.
+ - We will **disable and anonymize** accounts that have been inactive for the past three years, retaining the record of their activity before that time.
ASF Members and project committers can help lighten the load by making sure to always use a Jira account with your ASF credentials (username, email address as they appear in the ICLA you submitted) whenever creating or commenting on a ticket for the ASF, or related to any of our projects.
@@ -68,5 +68,4 @@ The Apache Software Foundation (ASF) is seeking an Infrastructure Systems Admini
s.apache.org/infra-hiring-2025
-
**More next month!**
diff --git a/content/blog/newsletter_04_26.md b/content/blog/newsletter_04_26.md
index 4782fed0f..2473ca054 100644
--- a/content/blog/newsletter_04_26.md
+++ b/content/blog/newsletter_04_26.md
@@ -47,7 +47,7 @@ Projects are seeing a large number of phishing attempts in Slack workspaces. The
### Infra 101
-**Your project has a person who isn't a committer that they wish to be able to review pull requests**
+**Your project has a person who isn't a committer that they wish to be able to review pull requests**
The project can assign the Triage (or collaborator) role to a user who is not a committer or ASF Member in the repository's `.asf.yaml` file with an entry like this:
diff --git a/content/blog/newsletter_05_24.md b/content/blog/newsletter_05_24.md
index f4f8fcd92..4c95e446b 100644
--- a/content/blog/newsletter_05_24.md
+++ b/content/blog/newsletter_05_24.md
@@ -7,7 +7,7 @@ Welcome to _Inside Infra_ for May, 2024.
## Roundtable
-The May 2024 Roundtable took place on May 8. The topic of the day was "STeVe for projects: how PMCs can use the STeVe voting tool".
+The May 2024 Roundtable took place on May 8. The topic of the day was "STeVe for projects: how PMCs can use the STeVe voting tool".
Infra member Chris Wells reviewed what Apache STeVe is for, and the many voting situations it can support. Its main use in the ASF is for the election of board members, but any project could easily use STeVe for project-consensus votes, such as the election of a new PMC chair.
@@ -21,7 +21,6 @@ The full notes of the meeting are at asia.communityovercode.org. One Infra team member will be taking part.
- CoC North America, October 7-10, Denver, Colorado USA - communityovercode.org. The full team will be at the conference, and will be presenting a track of four talks.
-
More news coming in the June issue!
diff --git a/content/blog/newsletter_05_26.md b/content/blog/newsletter_05_26.md
index 4a5aee628..4749e3c76 100644
--- a/content/blog/newsletter_05_26.md
+++ b/content/blog/newsletter_05_26.md
@@ -6,9 +6,9 @@ permalink: newsletter0526 layout: post
### Roundtable
-The May 6 Roundtable focused on **AI coding and its implications for ASF infrastructure**.
+The May 6 Roundtable focused on **AI coding and its implications for ASF infrastructure**.
-To start, Andrew Musselman of the Tooling team described a tool he has developed to do a security scan of software in development. The tool inspects a potential release in more than 350 ways at three levels (from most to least critical) and provides recommendations for humans to review.
+To start, Andrew Musselman of the Tooling team described a tool he has developed to do a security scan of software in development. The tool inspects a potential release in more than 350 ways at three levels (from most to least critical) and provides recommendations for humans to review.
Andrew demonstrated samples of the reports the tool produces, using Apache STeVe as the target. The tool found over 300 issues and reported them ranked by severity, plus providing other information. The tool originally focused on submissions to the Apache Trusted Releases platform, but it has now been made more generic so it can focus on any project's product.
@@ -49,7 +49,7 @@ The Infrastructure team will present a full track at Community over Code Glasgow
Additionally, Infra will be hosting Games Night, which was very popular at the 2025 convention.
-More details are at communityovercode.org. We hope to see you there!
+More details are at communityovercode.org. We hope to see you there!
### Infra 101
diff --git a/content/blog/newsletter_06_24.md b/content/blog/newsletter_06_24.md
index 4fe1c7972..d03c1cffd 100644
--- a/content/blog/newsletter_06_24.md
+++ b/content/blog/newsletter_06_24.md
@@ -9,20 +9,18 @@ Welcome to _Inside Infra_ for June, 2024.
Many ASF projects, and the Infrastructure team, have been using the ASF-pelican template and service to build and deploy their websites. Infra has decided to deprecate its customized buildsite offerings in favor of those provided by GitHub Pages. A GitHub Action provides the same Pelican features and workflow as the former service did.
-Infra is offering support to help projects move from the former buildsite tool to the GitHub Action, providing a run-once migration script that adapts the website repository.
+Infra is offering support to help projects move from the former buildsite tool to the GitHub Action, providing a run-once migration script that adapts the website repository.
The documentation about building websites with Pelican that starts at infra.apache.org/asf-pelican.html is being updated.
-To read more about migration methods, please visit: Moving from Infrastructure-pelican to GitHub Actions, and the GHA's README file: github.com/apache/infrastructure-actions/blob/main/pelican/README.md.
+To read more about migration methods, please visit: Moving from Infrastructure-pelican to GitHub Actions, and the GHA's README file: github.com/apache/infrastructure-actions/blob/main/pelican/README.md.
We are expecting to wrap up disabling our Pelican buildsite offerings by the end of 2024. If you have any questions regarding this migration, please email us at private@infra.apache.org or message us on #asfinfra in the-asf Slack space.
-
**Apache and HSTS**
Infra is adding apache.org to Chrome's HTTP Strict Transport Security (HSTS) preload list, upping the security measures for the majority of visitors to our sites. This change will go into effect on July 1st.
-
**Your good ideas for Infrastructure**
Members of the ASF community have lots of good ideas for services Infra could provide, or improvements the team should make to existing services. To this point, there has not been a convenient way to get those ideas to where people can respond to them by supporting them, suggesting tweaks to the original idea, or explaining why they think the service or fix is not necessary.
@@ -39,7 +37,6 @@ Infra has set up "Infrastructure-ideas" (current collection of ideas and issues related to the ADP. Add your thoughts/concerns/insights in the editable pages linked to from that main page. (Note: we have already blue-skied a very complex application. If you suggest another component, we may invite you to help develop it.)
-
-**Note**: the name of the platform may change before it goes live.
+**Note**: the name of the platform may change before it goes live.
**Roundtable summary**
diff --git a/content/blog/newsletter_06_25.md b/content/blog/newsletter_06_25.md
index ced5da394..4d42bf70b 100644
--- a/content/blog/newsletter_06_25.md
+++ b/content/blog/newsletter_06_25.md
@@ -37,6 +37,7 @@ Due to a significant increase in abuse, largely driven by AI scraping, the ASF B
## GitHub Actions compliance deadline
Infra received this message from GitHiub:
+
```
The Windows Server 2019 runner image will be fully unsupported by June 30, 2025.
To raise awareness of the upcoming removal, we will temporarily fail jobs using Windows Server 2019.
@@ -59,6 +60,4 @@ If a build fails, sometimes it does not restart even after you have fixed the is
Infra is working on a new flow of events for builds that will improve stability and observability; we will let the world know when it is in place.
-
-
**More next month!**
diff --git a/content/blog/newsletter_06_26.md b/content/blog/newsletter_06_26.md
index 25bcd922a..1cfcd9239 100644
--- a/content/blog/newsletter_06_26.md
+++ b/content/blog/newsletter_06_26.md
@@ -42,11 +42,11 @@ The Infrastructure team will present a full track at Community over Code Glasgow
Additionally, Infra will be hosting **Games Night**, which was very popular at the 2025 convention.
-More details are at communityovercode.org/. We hope to see you there!
+More details are at communityovercode.org/. We hope to see you there!
### Infra 101: Use of build resources
-The ASF has a limited number of self-hosted runners to support build processes. Processes that run more often than they need to, or for longer than is reasonable, prevent other projects from doing their builds. Committers and ASF Members can see, for the projects they are involved in, use of GitHub Actions resources (times ranging from the past hour to the past 30 days) at infra-reports.apache.org/#ghactions.
+The ASF has a limited number of self-hosted runners to support build processes. Processes that run more often than they need to, or for longer than is reasonable, prevent other projects from doing their builds. Committers and ASF Members can see, for the projects they are involved in, use of GitHub Actions resources (times ranging from the past hour to the past 30 days) at infra-reports.apache.org/#ghactions.
There is on-going community discussion on a Slack channel, `project-workflow-optimisations`, about how projects can optimize GitHub Actions workflows to minimize
diff --git a/content/blog/newsletter_07_24.md b/content/blog/newsletter_07_24.md
index 50b100d53..de2846821 100644
--- a/content/blog/newsletter_07_24.md
+++ b/content/blog/newsletter_07_24.md
@@ -12,6 +12,7 @@ The Infrastructure team's Qbot is a Slack assistant that can simplify both impor
The name references the tool-maker 'Q', who provides weapons and gadgets for Agent 007 in the James Bond movies.
### Qbot has an evolving set of functions:
+
- Providing to the channel notifications related to your project's Jira tickets - new ticket, new comment, ticket resolved.
- Adding people to private channels.
- Starting a question queue in the huddle in a channel workspace (note that this feature is in alpha development).
diff --git a/content/blog/newsletter_07_26.md b/content/blog/newsletter_07_26.md
index 23d3d82f3..26774be1a 100644
--- a/content/blog/newsletter_07_26.md
+++ b/content/blog/newsletter_07_26.md
@@ -7,7 +7,7 @@ Welcome to _Inside Infra_ for July, 2026
## Roundtable
-The July Roundtable featured a presentation by Clay Johnson of Gradle Technologies on **Predictive Test Selection**, which can propose a subset of a project's test to cover only those modules and functions that the most recent commit may affect. This can dramatically reduce build time and the amount of build resources deployed.
+The July Roundtable featured a presentation by Clay Johnson of Gradle Technologies on **Predictive Test Selection**, which can propose a subset of a project's test to cover only those modules and functions that the most recent commit may affect. This can dramatically reduce build time and the amount of build resources deployed.
More details, including a PDF of the presentation slide deck, are on this page: s.apache.org/wjtlv.
diff --git a/content/blog/newsletter_08_25.md b/content/blog/newsletter_08_25.md
index a669f6d4d..28f49e23c 100644
--- a/content/blog/newsletter_08_25.md
+++ b/content/blog/newsletter_08_25.md
@@ -7,7 +7,7 @@ layout: post
### Roundtable
-The August Roundtable discussed the impact of **AI scraping** on The ASF, and what responses to it might be useful.
+The August Roundtable discussed the impact of **AI scraping** on The ASF, and what responses to it might be useful.
The main impacts on ASF infrastructure are:
@@ -48,5 +48,4 @@ _What attracted you to the ASF and to this ASF Infra job?_
"After some time away from professional IT and professional software development, I was curious to see the state of things now. The distributed, collaborative, and technical environment within ASF Infra has a lot in common with jobs I had early in my career, and I’ve sought to replicate elements of that environment repeatedly, where I could, in later roles."
-
**More next month!**
diff --git a/content/blog/newsletter_08_26.md b/content/blog/newsletter_08_26.md
index 353d1de8b..9eba7bd55 100644
--- a/content/blog/newsletter_08_26.md
+++ b/content/blog/newsletter_08_26.md
@@ -3,7 +3,6 @@ date: '2026-08-27'
permalink: newsletter0826
layout: post
-
Welcome to **Inside Infra** for August, 2026
### Roundtable
diff --git a/content/blog/newsletter_09_24.md b/content/blog/newsletter_09_24.md
index e28f94d5d..3c1c03e62 100644
--- a/content/blog/newsletter_09_24.md
+++ b/content/blog/newsletter_09_24.md
@@ -13,31 +13,26 @@ Chris will be at Community over Code in Denver, Colorado, USA, October 7-10, so
Here is a link to an interview with Chris.
-
### Qbot qnews
**1. Jira features**
In the ASF Slack workspace (the-asf.slack.com), ASF Members using channels with Qbot installed can now call up Jira tickets that match various search conditions (unassigned, related to a certain project, and so on). Details on the available commands are on the Qbot page.
-
**2. Lauren marches on**
Slack channels with Qbot installed now also have access to 'Lauren', a member of the Human Resources department of an alternate-world ASF, in which the Foundation has a big office where Committers and Members work. Lauren can provide policy statements, review complaints, point out employee benefits, and make important (to Lauren) announcements. Lauren is very sure her information is accurate and up-to-date; you may have a different opinion. Instructions for contacting Lauren are also on the Qbot page.
-
### Working with lists.apache.org
lists.apache.org lets you search, browse and contribute to the ASF email lists to which you have access, but it is not obvious that, for instance, you can use lists.a.o to create an email in a list to which you have subscribed.
The page Working in lists.apache.org explains what your access is and what options are available, and provides a list of hotkeys you can use to do what you need to do.
-
### Release artifact recommended and maximum sizes
For clarity, Infra has updated the statement in the [Release Distribution Policy](release-distribution.html) on release artifact sizes. The statement now reads: **Infra recommends keeping the size of your release artifacts below 100MB. The ASF will not host release artifacts larger than 1GB.**
-
### Roundtable summary
The September 4, 2024 Roundtable had a focus on what barriers or challenges projects whose members are primarily in Asia or Australia meet in ASF infrastructure. A summary of the conversation is on the CWiki: Infra Roundtable 2024-09-03, 00:00 UTC.
diff --git a/content/blog/newsletter_09_25.md b/content/blog/newsletter_09_25.md
index 829a316a4..0d5118e8b 100644
--- a/content/blog/newsletter_09_25.md
+++ b/content/blog/newsletter_09_25.md
@@ -7,7 +7,7 @@ Welcome to *Inside Infra* for September, 2025
## Infra at Community over Code
-The Infrastructure team was busy at Community over Code in Minneapolis this month. The team gave a track of presentations, had a host of valuable hallway conversations, and even hosted the first-ever Games Night at an ASF convention.
+The Infrastructure team was busy at Community over Code in Minneapolis this month. The team gave a track of presentations, had a host of valuable hallway conversations, and even hosted the first-ever Games Night at an ASF convention.
Games Night looks to be a feature of ASF conventions in the future. And by way of hallway conversations and response and questions during Infra presentations, we have identified many in the ASF community who are willing to help support Infra's work
@@ -28,7 +28,7 @@ Information about how to take part in the online roundtables is at github.com/apache/infrastructure-asfyaml
@@ -50,5 +50,4 @@ SIM swap attack: Someone within your phone company could be bribed or induced to
There are many authentication services available, some based on open-source code, but Infra does not make recommendations of particular services at this time. We encourage you, though, to do your research, compare the usability of two or three good candidates, and settle soon on an MFA option that will help keep you, and us, more safe.
-
**More next month!**
diff --git a/content/blog/newsletter_09_26.md b/content/blog/newsletter_09_26.md
index 6823bb606..1ee6e9955 100644
--- a/content/blog/newsletter_09_26.md
+++ b/content/blog/newsletter_09_26.md
@@ -7,7 +7,7 @@ layout: post
## Roundtable
-September's Roundtable featured a report on the current state of the **Contingent Approval Platform (CAP)**.
+September's Roundtable featured a report on the current state of the **Contingent Approval Platform (CAP)**.
CAP provides a single, uniform workflow for establishing proof of consensus in a project for a given action, whether this is a social/manual thing or an automated task that requires approval.
@@ -39,5 +39,4 @@ The Infrastructure track events at Community Over Code Glasgow will be on Monday
We particularly recommend the workshop on **build efficiency** to help projects cope with the challenge of our having to steward effectively our small reply of GitHub runners.
-
**More next month!**
diff --git a/content/blog/newsletter_10_24.md b/content/blog/newsletter_10_24.md
index 6a4808d54..2f57aec5c 100644
--- a/content/blog/newsletter_10_24.md
+++ b/content/blog/newsletter_10_24.md
@@ -5,6 +5,7 @@ permalink: newsletter1024 layout: post
**Welcome to *Inside Infra* for October, 2024**
### Dealing with phishing attempts
+
We are seeing a sharp increase in 'phishing attempts', fake emails pretending to come from various ASF groups and committees. Infra has some anti-phishing advice to help you avoid falling for these fake messages.
### Infra at Community over Code
@@ -25,6 +26,6 @@ More details are this page for details about how to join a roundtable, and what happens at it.
+See this page for details about how to join a roundtable, and what happens at it.
*More soon!*
diff --git a/content/blog/newsletter_10_25.md b/content/blog/newsletter_10_25.md
index e6b662817..3465c1998 100644
--- a/content/blog/newsletter_10_25.md
+++ b/content/blog/newsletter_10_25.md
@@ -17,6 +17,7 @@ The November Roundtable will be **Wednesday, November 5, 1700 UTC**, on the #rou
Information about how to take part in the online roundtables is at infra.apache.org/roundtable.html.
## Projects to test Wiki and Jira migration
+
Infra is looking for projects to help evaluate test migrations of their projects' documents and tickets to a test instance of Jira / Confluence on the Atlassian Cloud.
Infra will perform the (test) migration of your Jira project and/or Confluence space(s), so there is nothing for you to do except some testing, like:-
@@ -32,10 +33,9 @@ This is opt in, and is Phase 2 of our planned migration to Atlassian Cloud - Ini
Please contact `gmcdonald@apache.org`, or via Infra's Slack channel, #asfinfra, if your project would like to participate - please provide a link to the discussion supporting this decision.
## Back to full strength
+
System Administrator Bob Thomson, a welcome addition, joined the Infra team in September.
We also spoke with Danny Angus, VP-Infra since earlier in 2025: infra.apache.org/blog/Danny_Angus_Infra_VP.html
-
**More next month!**
-
diff --git a/content/blog/newsletter_11_24.md b/content/blog/newsletter_11_24.md
index b13fb0cc5..3301beb9d 100644
--- a/content/blog/newsletter_11_24.md
+++ b/content/blog/newsletter_11_24.md
@@ -19,7 +19,7 @@ Summaries of the conversations are here:
The next roundtable will be **Wednesday, December 4, 1700 UTC**. The main topic will be a deep dive into **asf.yaml**, the Swiss Army Knife of ASF build utilities.
-See this page for details about how to join a roundtable, and what happens at it.
+See this page for details about how to join a roundtable, and what happens at it.
## A message from the VP-Infra
diff --git a/content/blog/newsletter_11_25.md b/content/blog/newsletter_11_25.md
index b18ab51b0..a9cb57737 100644
--- a/content/blog/newsletter_11_25.md
+++ b/content/blog/newsletter_11_25.md
@@ -18,7 +18,6 @@ The minutes of the meeting are at this page for details about how to join a roundtable, and what happens at it.
+See this page for details about how to join a roundtable, and what happens at it.
## Removing Blue Ocean and related plugins
@@ -20,5 +20,4 @@ If you have questions about Blue Ocean replacements, email `users@infra.apache.o
In the past, the names of Git repositories for projects in the Incubator were supposed to start with 'incubator-', and then the project's name. We no longer follow this pattern, so there is no need to request the 'incubator-' prefix for a new Git repository for a project, or when migrating an existing repository to the project.
-
**More in the new year!**
diff --git a/content/blog/newsletter_12_25.md b/content/blog/newsletter_12_25.md
index 258829986..f1b4848bd 100644
--- a/content/blog/newsletter_12_25.md
+++ b/content/blog/newsletter_12_25.md
@@ -12,6 +12,4 @@ The full discussion is available at builds.apache.org to help deal with the at times overwhelming queues of builds waiting for an executor. While this has been improved dramatically by the increase in workers generously provided by Yahoo! on physical hosts, we're always trying to look forward and be prepared for increased usage in the future.
-
- To that end, we've set up worker images on Rackspace, generated using the fantastic tool
Packer. Using the
Apache jclouds plugin for Jenkins, Ubuntu workers will be spun up dynamically on Rackspace using those images when there's a queue of pending builds that are able to run on the “ubuntu” label. Up to five of these workers can be running at a time, and they're automatically removed from Jenkins and destroyed on Rackspace once they've been idle a set period of time. This burst capacity will help us prevent a long wait for builds to run on
builds.apache.org.
-
- We're able to do this thanks to Rackspace generously donating resources to the Apache Software Foundation. We're extremely grateful for this, and if any other public cloud providers are also interested in donating compute cycles to the Foundation, please contact the Infrastructure team.
-
- One thing to note - the worker image we're using is still new and may have bugs in it. If you see your build suddenly failing for mysterious reasons, please take a look at the worker it ran on - if it's a worker named something like “jenkins-ubuntu-1404-4gb-abc”, please open a BUILDS JIRA at
issues.apache.org with a link to the failing build and we'll investigate.
-
+A couple of weeks ago, Apache's Infrastructure team added a new feature to our Jenkins server,
builds.apache.org to help deal with the at times overwhelming queues of builds waiting for an executor. While this has been improved dramatically by the increase in workers generously provided by Yahoo! on physical hosts, we're always trying to look forward and be prepared for increased usage in the future.
+
+ To that end, we've set up worker images on Rackspace, generated using the fantastic tool
Packer. Using the
Apache jclouds plugin for Jenkins, Ubuntu workers will be spun up dynamically on Rackspace using those images when there's a queue of pending builds that are able to run on the “ubuntu” label. Up to five of these workers can be running at a time, and they're automatically removed from Jenkins and destroyed on Rackspace once they've been idle a set period of time. This burst capacity will help us prevent a long wait for builds to run on
builds.apache.org.
+
+ We're able to do this thanks to Rackspace generously donating resources to the Apache Software Foundation. We're extremely grateful for this, and if any other public cloud providers are also interested in donating compute cycles to the Foundation, please contact the Infrastructure team.
+
+ One thing to note - the worker image we're using is still new and may have bugs in it. If you see your build suddenly failing for mysterious reasons, please take a look at the worker it ran on - if it's a worker named something like “jenkins-ubuntu-1404-4gb-abc”, please open a BUILDS JIRA at
issues.apache.org with a link to the failing build and we'll investigate.
+
We've got more improvements for
builds.apache.org planned for the future, and we're looking forward to sharing them with all of you - there'll be a talk at ApacheCon EU this November on the current status of Jenkins at the ASF, what we've done to stabilize and improve the developer experience on
builds.apache.org this year, and what's planned for the future - hope to see you there!
diff --git a/content/blog/parallelputissue.md b/content/blog/parallelputissue.md
index c9a4853f7..09eae97af 100644
--- a/content/blog/parallelputissue.md
+++ b/content/blog/parallelputissue.md
@@ -6,7 +6,7 @@ permalink: parallelputproblem layout: post
Apache Maven 3.9.12 has a change that causes a problem in repository.apache.org (the Sonatype Nexus 2 Pro staging suite): if your build uses **parallel PUT** deployment, the build creates a separate staging repository for each of the requests instead of assembling everything in one repository.
-The Maven team is working on a resolution to this issue. Until the fix is available, they suggest **disabling parallel PUTs**.
+The Maven team is working on a resolution to this issue. Until the fix is available, they suggest **disabling parallel PUTs**.
You can do this in several ways:
diff --git a/content/blog/paste_apache_org_sees_the.md b/content/blog/paste_apache_org_sees_the.md
index acfcaf5eb..fd43d98cd 100644
--- a/content/blog/paste_apache_org_sees_the.md
+++ b/content/blog/paste_apache_org_sees_the.md
@@ -7,17 +7,17 @@ layout: post
Today, the Apache Infrastructure team launched http://paste.apache.org, a new ASF-driven site for posting snippets, scripts, logging output, configurations and much more and sharing them with the world.
-
-
Why yet another paste bin, you ask?
- Well, for starters, this site is different in that is it run by the ASF, for the ASF, in that we fully control what happens to your data when you post it, or perhaps more important, what does NOT happen to it. The site enforces a "from committers to everyone" policy, meaning only committers may post new data on the site, but everyone is invited to watch the result. While this is not a blanket guarantee that the data is accurate or true, it is nonetheless a guarantee that what you see is data posted by an Apache committer.
- Secondly, committers have the option to post something as being "committers only", meaning only committers within the ASF can see the paste. This is much like the "private" pastes offered by many other sites, but with the added benefit that it prevents anyone snooping around from watching whatever you paste, unless they are actually a committer.
-
- Great, so how does it work?
- It works like most other paste sites, in that you go to http://paste.apache.org, paste your data, select which type of highlighting to use, and you get an URL with your paste. For text-only clients, raw data will be displayed, while regular browsers will enjoy a full web page with the ability to download or edit a paste. Currently we have support for httpd configurations, C/C++, Java, Lua, Erlang, XML/HTML, PHP, Shell scripts, Diff/Patch, Python and Perl syntax highlighting. If you want to have any other type of highlighting added, don't hesitate to ask!
- Since this site enforces the "from committers to everyone" policy, you are required to use your LDAP credentials when making a paste. To allow for the use of the service within console applications (shells etc) that might not (or should not) provide authentication credentials (on public machines you'd want to avoid storing your committer credentials for instance!), we have equipped the site with a token generator, that both allows you to pipe any output you may have directly to the site as well as gives you some hints on how you may achieve this.
- Imagine you have a directory listing that you'd only want your fellow committers to see. Publishing this, using the token system, is as easy as doing:
$> ls -la | privpaste
http://paste.apache.org/p/1234
- And there you have it, the command returns a URL ready for sharing with your fellow committers. Had you wanted for everyone to be able to see it, you could have used the pubpaste alias instead (click on "generate token" on the site to get more information about tokens and the useful aliases).
-
- We hope you'll enjoy this new service, and use it wisely as well as often. Should you have any questions or suggestions, we'd be most happy to receive them through any infra channel you want to use.
-
+
+
Why yet another paste bin, you ask?
+ Well, for starters, this site is different in that is it run by the ASF, for the ASF, in that we fully control what happens to your data when you post it, or perhaps more important, what does NOT happen to it. The site enforces a "from committers to everyone" policy, meaning only committers may post new data on the site, but everyone is invited to watch the result. While this is not a blanket guarantee that the data is accurate or true, it is nonetheless a guarantee that what you see is data posted by an Apache committer.
+ Secondly, committers have the option to post something as being "committers only", meaning only committers within the ASF can see the paste. This is much like the "private" pastes offered by many other sites, but with the added benefit that it prevents anyone snooping around from watching whatever you paste, unless they are actually a committer.
+
+ Great, so how does it work?
+ It works like most other paste sites, in that you go to http://paste.apache.org, paste your data, select which type of highlighting to use, and you get an URL with your paste. For text-only clients, raw data will be displayed, while regular browsers will enjoy a full web page with the ability to download or edit a paste. Currently we have support for httpd configurations, C/C++, Java, Lua, Erlang, XML/HTML, PHP, Shell scripts, Diff/Patch, Python and Perl syntax highlighting. If you want to have any other type of highlighting added, don't hesitate to ask!
+ Since this site enforces the "from committers to everyone" policy, you are required to use your LDAP credentials when making a paste. To allow for the use of the service within console applications (shells etc) that might not (or should not) provide authentication credentials (on public machines you'd want to avoid storing your committer credentials for instance!), we have equipped the site with a token generator, that both allows you to pipe any output you may have directly to the site as well as gives you some hints on how you may achieve this.
+ Imagine you have a directory listing that you'd only want your fellow committers to see. Publishing this, using the token system, is as easy as doing:
$> ls -la | privpaste
http://paste.apache.org/p/1234
+ And there you have it, the command returns a URL ready for sharing with your fellow committers. Had you wanted for everyone to be able to see it, you could have used the pubpaste alias instead (click on "generate token" on the site to get more information about tokens and the useful aliases).
+
+ We hope you'll enjoy this new service, and use it wisely as well as often. Should you have any questions or suggestions, we'd be most happy to receive them through any infra channel you want to use.
+
diff --git a/content/blog/pear_package_hosting_available1.md b/content/blog/pear_package_hosting_available1.md
index c4b86a0d8..6036da761 100644
--- a/content/blog/pear_package_hosting_available1.md
+++ b/content/blog/pear_package_hosting_available1.md
@@ -8,5 +8,5 @@ layout: post
-Any projects in the position of being able to release via PEAR packages can now do so hosted officially on ASF servers.
+Any projects in the position of being able to release via PEAR packages can now do so hosted officially on ASF servers.
http://pear.apache.org is now up and running and ready to serve!
diff --git a/content/blog/planned_downtime_for_jira1.md b/content/blog/planned_downtime_for_jira1.md
index 314a998a1..26047dd57 100644
--- a/content/blog/planned_downtime_for_jira1.md
+++ b/content/blog/planned_downtime_for_jira1.md
@@ -3,5 +3,5 @@ date: '2015-08-03T23:07:37+00:00'
permalink: planned_downtime_for_jira1
layout: post
-There will be a planned reboot of Jira on Friday 7th August at 00:00 UTC.
This is 72 hours notice as recommended in our Core Services planned downtime SLA.
Currently, Jira requires a reboot when adding new projects to it. There is an outstanding
ticket with Atlassian about this. They require logs and so these will be gathered at the
time of the planned reboot.
Projects being added to Jira at this time will include:-
INFRA-9713 - Whimsy
and any more that get requested between now and downtime.
Any projects requiring issues to be imported from other issue trackers will NOT be done at
this time.
A tweet via @infrabot will be tweeted 24 hrs and 1 hr before.
A planned maintenance notice will be posted on status.apache.org.
Actual downtime should be no more than 10 minutes all being well.
The next email about this will be after the service has resumed from the planned downtime.
Thanks!
+There will be a planned reboot of Jira on Friday 7th August at 00:00 UTC.
This is 72 hours notice as recommended in our Core Services planned downtime SLA.
Currently, Jira requires a reboot when adding new projects to it. There is an outstanding
ticket with Atlassian about this. They require logs and so these will be gathered at the
time of the planned reboot.
Projects being added to Jira at this time will include:-
INFRA-9713 - Whimsy
and any more that get requested between now and downtime.
Any projects requiring issues to be imported from other issue trackers will NOT be done at
this time.
A tweet via @infrabot will be tweeted 24 hrs and 1 hr before.
A planned maintenance notice will be posted on status.apache.org.
Actual downtime should be no more than 10 minutes all being well.
The next email about this will be after the service has resumed from the planned downtime.
Thanks!
Geoff Corey
diff --git a/content/blog/planned_downtime_for_reviewboard.md b/content/blog/planned_downtime_for_reviewboard.md
index 5804feca2..1207be0c8 100644
--- a/content/blog/planned_downtime_for_reviewboard.md
+++ b/content/blog/planned_downtime_for_reviewboard.md
@@ -3,12 +3,12 @@ date: '2015-08-19T19:19:38+00:00'
permalink: planned_downtime_for_reviewboard
layout: post
-
-
-
The ReviewBoard VM ran out of space and despite our best
-efforts to fix the space issue without restarting the service, that is
-the only option left.
The plan is to restart the VM on
-Thursday August 20th at 21:00 UTC (14:00 PDT), but if it fills up again
-before then, the resize will take place earlier.
-
A tweet via @infrabot will be tweeted 1 hour before the scheduled downtime and a planned maintenance notice will be posted to
status.apache.org.
+
+
+
The ReviewBoard VM ran out of space and despite our best
+efforts to fix the space issue without restarting the service, that is
+the only option left.
The plan is to restart the VM on
+Thursday August 20th at 21:00 UTC (14:00 PDT), but if it fills up again
+before then, the resize will take place earlier.
+
A tweet via @infrabot will be tweeted 1 hour before the scheduled downtime and a planned maintenance notice will be posted to
status.apache.org.
The actual downtime should take no more than 30 minutes.
The next email about this will be after the service has resumed from the
planned downtime.
Thanks!
Geoff Corey
diff --git a/content/blog/position-available-infrastructure-systems-administrator.md b/content/blog/position-available-infrastructure-systems-administrator.md
index 1e4774246..89f751217 100644
--- a/content/blog/position-available-infrastructure-systems-administrator.md
+++ b/content/blog/position-available-infrastructure-systems-administrator.md
@@ -3,5 +3,5 @@ date: '2018-09-17T07:55:22+00:00'
permalink: position-available-infrastructure-systems-administrator
layout: post
-
UPDATE: We have received enough applicants at this time. Thank you all for your interest.
+
UPDATE: We have received enough applicants at this time. Thank you all for your interest.
The Apache Software Foundation (ASF) seeks to fill an Infrastructure Systems Administrator position. You will be responsible for working with the existing technical infrastructure team. The ASF manages a world-wide network of open source software which includes more than 1600 software code repositories, a worldwide distribution and mirroring system for software, change management, issue tracking, and software management for 300+ open source initiatives and over 10,000 contributors around the world.
Applicants should have a strong background in Computer and Information Science, and should be familiar with modern DevOps environments. Applicants must demonstrate the ability to work in a remote team environment alongside others working in diverse locations around the world and in different timezones. The successful applicant will work with the existing Infrastructure team to manage the ASF's critical infrastructure and resources. Infrastructure team members are expected to work a weekly on-call rotation with the rest of the team.
Our infrastructure team also supports our broader community by enabling the creation of self-service tooling. The successful candidate will be able to balance the needs of our critical infrastructure and the needs of our community to self-serve. These two demands can often be in conflict and thus an ability to navigate such complex environments is a distinct advantage.
Familiarity with Puppet (or a similar configuration management tool) Linux (Ubuntu-based), Virtual Machines, Subversion/Git, Python, and full development environment stacks are a requirement. Further, the candidate should possess great documentation skills and should be well versed in not only developing and assisting in technical solutions, but in documenting them.
Daily tasks will include handling of alarms, outages, and security concerns on a timely basis; working with our many communities on their needs and issues; managing tickets on a timely basis; rolling out and upgrading services; reducing our large technical debt; and maintaining a professional and collegial atmosphere. The team coordinates primarily through daily chat usage, weekly meetings, and email. Social skills and ability to integrate closely with the team are expected.
Preferred qualifications include a Bachelor's Degree in Computer Science or similar background from an accredited university, though demonstrable and appropriate on-the-job experience is an acceptable substitute for formal qualifications. Familiarity with how open source communities work is a definite positive.
English as a spoken and written language is required in order to facilitate team collaboration.
This is a remote work position, the ASF does not require nor provide office locations. Travel once per year is required, for a team meetup and will typically be coincident with an Apache conference.
diff --git a/content/blog/position_available_infrastructure_systems_administrator.md b/content/blog/position_available_infrastructure_systems_administrator.md
index 1dcf3c499..a73ae4275 100644
--- a/content/blog/position_available_infrastructure_systems_administrator.md
+++ b/content/blog/position_available_infrastructure_systems_administrator.md
@@ -3,20 +3,20 @@ date: '2016-07-25T20:07:36+00:00'
permalink: position_available_infrastructure_systems_administrator
layout: post
-
UPDATE: We have received enough applicants at this time. Thank you all for your interest.
-
-
The Apache Software Foundation (ASF) seeks to fill an Infrastructure Systems Administrator/Architect position. You will be responsible for working with the existing technical infrastructure team, and VP of Infrastructure at the Apache Software Foundation. The ASF manages a world-wide network of open source software which includes more than 750 software code repositories, a worldwide distribution and mirroring system for software; change management, issue tracking, and software management for 300+ Open Source initiatives and more than 11,000 contributors around the world.
-
-
-
Applicants should have a strong background in Computer and Information Science, and should be familiar with modern Dev/Ops environments. Applicants must demonstrate the ability to work in a remote team environment alongside others working in diverse locations around the world and in different timezones. The successful applicant will work with the existing Infrastructure team and VP, Infrastructure to manage the ASF's critical infrastructure and resources. Infrastructure team members are expected to work an on-call rotation with the rest of the team.
-
-
Our infrastructure team also supports our broader community by enabling the creation of self-service tooling. The successful candidate will be able to balance the needs of our critical infrastructure and the needs of our community to self-serve. These two demands can often be in conflict and thus an ability to navigate such complex environments is a distinct advantage.
-
-
Familiarity with Puppet (or a similar configuration management tool) Linux (Debian-based), Virtual Machines, Subversion/Git and full development environment stacks are a requirement. Further, the candidate should possess great documentation skills and should be well versed in not only developing and assisting in technical solutions, but in documenting them.
-
-
Preferred qualifications include a Bachelor's Degree in Computer Science or similar background from an accredited university, though demonstrable and appropriate on-the-job experience is an acceptable substitute for formal qualifications. Familiarity with how open source communities work is a plus.
-
-
English as a spoken and written language is required in order to facilitate team collaboration.
-
-
This is a remote work position, the ASF does not require nor provide office locations. Travel required for conferences and general team meetups.
+
UPDATE: We have received enough applicants at this time. Thank you all for your interest.
+
+
The Apache Software Foundation (ASF) seeks to fill an Infrastructure Systems Administrator/Architect position. You will be responsible for working with the existing technical infrastructure team, and VP of Infrastructure at the Apache Software Foundation. The ASF manages a world-wide network of open source software which includes more than 750 software code repositories, a worldwide distribution and mirroring system for software; change management, issue tracking, and software management for 300+ Open Source initiatives and more than 11,000 contributors around the world.
+
+
+
Applicants should have a strong background in Computer and Information Science, and should be familiar with modern Dev/Ops environments. Applicants must demonstrate the ability to work in a remote team environment alongside others working in diverse locations around the world and in different timezones. The successful applicant will work with the existing Infrastructure team and VP, Infrastructure to manage the ASF's critical infrastructure and resources. Infrastructure team members are expected to work an on-call rotation with the rest of the team.
+
+
Our infrastructure team also supports our broader community by enabling the creation of self-service tooling. The successful candidate will be able to balance the needs of our critical infrastructure and the needs of our community to self-serve. These two demands can often be in conflict and thus an ability to navigate such complex environments is a distinct advantage.
+
+
Familiarity with Puppet (or a similar configuration management tool) Linux (Debian-based), Virtual Machines, Subversion/Git and full development environment stacks are a requirement. Further, the candidate should possess great documentation skills and should be well versed in not only developing and assisting in technical solutions, but in documenting them.
+
+
Preferred qualifications include a Bachelor's Degree in Computer Science or similar background from an accredited university, though demonstrable and appropriate on-the-job experience is an acceptable substitute for formal qualifications. Familiarity with how open source communities work is a plus.
+
+
English as a spoken and written language is required in order to facilitate team collaboration.
+
+
This is a remote work position, the ASF does not require nor provide office locations. Travel required for conferences and general team meetups.
Contact vp-infra@apache.org with your CV.
diff --git a/content/blog/promoting-podlings.md b/content/blog/promoting-podlings.md
index 8b3c4da1a..c399aa58e 100644
--- a/content/blog/promoting-podlings.md
+++ b/content/blog/promoting-podlings.md
@@ -11,7 +11,7 @@ improve standard processes that almost every project goes through,
the better it is for the whole community.
As an example,
when a project starts out with the ASF, it normally begins as a
“podling” in the ASF incubator. Here it can start to create its
-code, standard practices, and work methods in a development sandbox.
+code, standard practices, and work methods in a development sandbox.
Once the project
develops a large-enough community of committers and contributors, and
seems to be viable, it can request promotion to top-level-project
diff --git a/content/blog/rate-limiting-on-apache-services.md b/content/blog/rate-limiting-on-apache-services.md
index e27389ef6..c86609a7b 100644
--- a/content/blog/rate-limiting-on-apache-services.md
+++ b/content/blog/rate-limiting-on-apache-services.md
@@ -3,19 +3,19 @@ date: '2019-01-27T18:20:54+00:00'
permalink: rate-limiting-on-apache-services
layout: post
-
Over the past few days we have implemented rate limiting on selected services across the ASF.
-
As our foundation grows, so do the number of users and robots utilizing our services. In order to accommodate as many as possible with what resources we have, we have opted to implement rate-limiting to ensure that everyone can get their fair share of use of our services across the globe. The first services to have rate-limiting implemented are:
-
- - JIRA (issues.apache.org)
- - MoinMoin Wiki (wiki.apache.org)
- - BugZilla (bz.apache.org)
-
-
-
If you are a normal user of our services:
This very likely will never affect you, and you can go about your business just like normal :) If you DO experience errors or 429 (rate limited) response codes, please do let us know.
-
If you are a robot or otherwise automated tool:
-
There are now limits in place for how much CPU time you can use, varying from service to service. If you get limited, you will receive a HTTP 429 response instead of the normal 200, and a short text blob will explain that you have crossed our resource limits and have been rate-limited. It will also explain why, and when you can expect to be unblocked again (generally within two minutes time). Scrapers, bots etc using our services should check for a 429 response code and act accordingly (or just slow down the discovery pace in general, as that benefits all of us).
-
-
A general note about the rate limiting system, now and in the future:
-
Rate limits are applied across IP blocks to discourage distributed abuse, thus if you have 1.2.3.4 abusing a service, 1.2.3.5 would potentially also be affected by the rate limits till they expire.
-
Later this year, we will be rolling out rate limits on more services, and we encourage people automating tasks to honor the 429 responses across all ASF services.
+
Over the past few days we have implemented rate limiting on selected services across the ASF.
+
As our foundation grows, so do the number of users and robots utilizing our services. In order to accommodate as many as possible with what resources we have, we have opted to implement rate-limiting to ensure that everyone can get their fair share of use of our services across the globe. The first services to have rate-limiting implemented are:
+
+ - JIRA (issues.apache.org)
+ - MoinMoin Wiki (wiki.apache.org)
+ - BugZilla (bz.apache.org)
+
+
+
If you are a normal user of our services:
This very likely will never affect you, and you can go about your business just like normal :) If you DO experience errors or 429 (rate limited) response codes, please do let us know.
+
If you are a robot or otherwise automated tool:
+
There are now limits in place for how much CPU time you can use, varying from service to service. If you get limited, you will receive a HTTP 429 response instead of the normal 200, and a short text blob will explain that you have crossed our resource limits and have been rate-limited. It will also explain why, and when you can expect to be unblocked again (generally within two minutes time). Scrapers, bots etc using our services should check for a 429 response code and act accordingly (or just slow down the discovery pace in general, as that benefits all of us).
+
+
A general note about the rate limiting system, now and in the future:
+
Rate limits are applied across IP blocks to discourage distributed abuse, thus if you have 1.2.3.4 abusing a service, 1.2.3.5 would potentially also be affected by the rate limits till they expire.
+
Later this year, we will be rolling out rate limits on more services, and we encourage people automating tasks to honor the 429 responses across all ASF services.
We would also like to point out that there are, as before, additional global limits in place regarding the use of our services, which can be found at: https://www.apache.org/dev/infra-ban.html
diff --git a/content/blog/relocation-of-apache-git-repositories.md b/content/blog/relocation-of-apache-git-repositories.md
index 69433b2ef..56853db8f 100644
--- a/content/blog/relocation-of-apache-git-repositories.md
+++ b/content/blog/relocation-of-apache-git-repositories.md
@@ -3,18 +3,18 @@ date: '2018-12-07T17:33:33+00:00'
permalink: relocation-of-apache-git-repositories
layout: post
-
[IF YOUR PROJECT DOES NOT HAVE GIT REPOSITORIES ON GIT-WIP-US PLEASE DISREGARD THIS POST]
Hello Apache projects,
I am writing to you because you may have git repositories on the git-wip-us server, which is slated to be decommissioned in the coming months. All repositories will be moved to the new gitbox service which includes direct write access on GitHub as well as the standard ASF commit access via gitbox.apache.org.
-
Why this move?
The move comes as a result of retiring the git-wip service, as the hardware it runs on is longing for retirement. In lieu of this, we have decided to consolidate the two services (git-wip and gitbox), to ease the management of our repository systems and future-proof the underlying hardware. The move is fully automated, and ideally, nothing will change in your workflow other than added features and access to GitHub.
-
Timeframe for relocation
Initially, we are asking that projects voluntarily request to move their repositories to gitbox. The voluntary time frame is between now and January 9th 2019, during which projects are free to either move over to gitbox or stay put on git-wip. After this phase, we will be requiring the remaining projects to move within one month, after which we will move the remaining projects over.
To have your project moved in this initial phase, you will need:
-
- - Consensus in the project (documented via the mailing list)
- - File a JIRA ticket with INFRA to voluntarily move your project repos over to gitbox (as stated, this is highly automated and will take between a minute and an hour, depending on the size and number of your repositories)
-
-
To sum up the preliminary timeline;
-
- - December 9th 2018 -> January 9th 2019: Voluntary (coordinated) relocation
- - January 9th -> February 6th: Mandated (coordinated) relocation
- - February 7th: All remaining repositories are mass migrated
-
-
This timeline may change to accommodate various scenarios.
+
[IF YOUR PROJECT DOES NOT HAVE GIT REPOSITORIES ON GIT-WIP-US PLEASE DISREGARD THIS POST]
Hello Apache projects,
I am writing to you because you may have git repositories on the git-wip-us server, which is slated to be decommissioned in the coming months. All repositories will be moved to the new gitbox service which includes direct write access on GitHub as well as the standard ASF commit access via gitbox.apache.org.
+
Why this move?
The move comes as a result of retiring the git-wip service, as the hardware it runs on is longing for retirement. In lieu of this, we have decided to consolidate the two services (git-wip and gitbox), to ease the management of our repository systems and future-proof the underlying hardware. The move is fully automated, and ideally, nothing will change in your workflow other than added features and access to GitHub.
+
Timeframe for relocation
Initially, we are asking that projects voluntarily request to move their repositories to gitbox. The voluntary time frame is between now and January 9th 2019, during which projects are free to either move over to gitbox or stay put on git-wip. After this phase, we will be requiring the remaining projects to move within one month, after which we will move the remaining projects over.
To have your project moved in this initial phase, you will need:
+
+ - Consensus in the project (documented via the mailing list)
+ - File a JIRA ticket with INFRA to voluntarily move your project repos over to gitbox (as stated, this is highly automated and will take between a minute and an hour, depending on the size and number of your repositories)
+
+
To sum up the preliminary timeline;
+
+ - December 9th 2018 -> January 9th 2019: Voluntary (coordinated) relocation
+ - January 9th -> February 6th: Mandated (coordinated) relocation
+ - February 7th: All remaining repositories are mass migrated
+
+
This timeline may change to accommodate various scenarios.
Using GitHub with ASF repositories
When your project has moved, you are free to use either the ASF repository system (gitbox.apache.org) OR GitHub for your development and code pushes. To be able to use GitHub, please follow the primer at: https://reference.apache.org/committer/github We appreciate your understanding of this issue, and hope that your project can coordinate voluntarily moving your repositories in a timely manner.
All settings, such as commit mail targets, issue linking, PR notification schemes etc will automatically be migrated to gitbox as well.
diff --git a/content/blog/responding_to_2024_survey.md b/content/blog/responding_to_2024_survey.md
index eba49834c..7f314e471 100644
--- a/content/blog/responding_to_2024_survey.md
+++ b/content/blog/responding_to_2024_survey.md
@@ -5,7 +5,7 @@ layout: post
At the end of 2023, Infra conducted a survey, looking for feedback on how the team and the ASF infrastructure are working. It was good to see that, for instance, 95% of respondents felt that Infra offers adequate technical services for their project. The full report on responses is at [2023 Infra Survey Results](2023%20Infra%20Survey%20Results.html).
-Many respondents took the time to add comments identify areas which needed improvement, and the Infra team never got around to acknowledging and responding to those comments and suggestions, until now. (Note, some comments were a little unclear or too terse for us to figure out how to answer them. Apologies for omitting them in this following list.)
+Many respondents took the time to add comments identify areas which needed improvement, and the Infra team never got around to acknowledging and responding to those comments and suggestions, until now. (Note, some comments were a little unclear or too terse for us to figure out how to answer them. Apologies for omitting them in this following list.)
The comments and suggestions fell into several broad categories:
diff --git a/content/blog/roller-updated-to-5-2.md b/content/blog/roller-updated-to-5-2.md
index 5be2fff34..e7484ac40 100644
--- a/content/blog/roller-updated-to-5-2.md
+++ b/content/blog/roller-updated-to-5-2.md
@@ -6,7 +6,7 @@ layout: post
**Note**: Until June, 2023, the ASF supported using Apache Roller for project blogs. That support has ended. Please visit
Project Blog for more information about blogs for projects.
-
We've updated blogs.a.o to the latest version of Roller, 5.2.2!!
-
-
+
We've updated blogs.a.o to the latest version of Roller, 5.2.2!!
+
+
diff --git a/content/blog/roller_installed_for_use_by.md b/content/blog/roller_installed_for_use_by.md
index c4543896d..19620cbe5 100644
--- a/content/blog/roller_installed_for_use_by.md
+++ b/content/blog/roller_installed_for_use_by.md
@@ -7,7 +7,6 @@ layout: post
**Note**: Until June, 2023, the ASF supported using Apache Roller for project blogs. That support has ended. Please visit
Project Blog for more information about blogs for projects.
-
Roller was installed today for the use of ASF Projects. Those committers with personal blogs should instead add their feed to planet.apache.org.
Still a few things to sort out, but blogs.apache.org is mostly ready.
diff --git a/content/blog/s_apache_org_uri_shortening.md b/content/blog/s_apache_org_uri_shortening.md
index 54b868802..70c5da226 100644
--- a/content/blog/s_apache_org_uri_shortening.md
+++ b/content/blog/s_apache_org_uri_shortening.md
@@ -5,9 +5,9 @@ layout: post
Today we've brought s.apache.org online. It's a URL shortening service that's limited to Apache committers- the people who write all that Apache software! One of the main reasons we're providing this service is to allow committers to use shortened links whose provenance is known to be a trusted source, which is a big improvement over the generic shorteners out there in the wild. It is also meant to provide permanent links suitable for inclusion in board reports, or more generally email sent to our mailing lists - which will be archived, either publicly or privately, for as long as Apache is around.
-
+
The service is easy to use, and being from Apache the source code for the service is readily available. The primary author of the code is Ulrich Stärk (uli). Some of the more interesting features you can pick up from the source is the ability to "display" a link before doing a redirect by tacking on "?action=display" to any shortened url. For the truly paranoid there is the "?action=display;cookie=1" query string to force all shortened urls to display by default before redirecting. That feature may be turned off again with the "?action=display;cookie=" query string. Again, look over the source code for other interesting features you may wish to take advantage of.
-
-
Committers: here's some JavaScript you might consider placing in a bookmark, courtesy of Doug Cutting. To use create a new bookmark and set the link URL to
+
+
Committers: here's some JavaScript you might consider placing in a bookmark, courtesy of Doug Cutting. To use create a new bookmark and set the link URL to
javascript:void(location.href='https://s.apache.org/?action=create&search=ON&uri='+escape(location.href))
diff --git a/content/blog/scaling_down_the_cms_to.md b/content/blog/scaling_down_the_cms_to.md
index a1b699d1d..f3cb32bdd 100644
--- a/content/blog/scaling_down_the_cms_to.md
+++ b/content/blog/scaling_down_the_cms_to.md
@@ -9,7 +9,7 @@ layout: post
Links to suggestions for setting up a project website, and website guidelines, are available under "PMC resources" in the general
Infrastructure documentation page.
-
The original focus of the CMS was to provide the tools necessary for handling http://www.apache.org/ and similar Anakia-based sites. The scope quickly changed when Apache OpenOffice was accepted into the incubator... handling over 9GB of content well was quite an undertaking and will be soon discussed at Apachecon in Denver during Dave Fisher's talk. From there the build system was extended to allow builds using multiple technologies and programming languages.
-
Since that time in late 2012 the CMS codebase has sat still, but recently we've upped the ante and decided to offer features aimed at parity with other site building technologies like jekyll, nanoc and middleman. You can see some of the new additions to the Apache CMS in action at http://thrift.apache.org/. The Apache Thrift website was originally written to use nanoc before being ported to the newly improved Apache CMS. They kept the YAML headers for their markdown pages and converted from a custom preprocessing script used for inserting code snippets to using a fully-supported snippet-fetching feature in the Apache CMS.
-
"The new improvements to the Apache CMS allowed us to quickly standardize the build process and guarantee repeatable results as well as integrate direct code snippets into the website from our source repository."
- Jake Farrell, Apache Thrift PMC Chair
+
The original focus of the CMS was to provide the tools necessary for handling http://www.apache.org/ and similar Anakia-based sites. The scope quickly changed when Apache OpenOffice was accepted into the incubator... handling over 9GB of content well was quite an undertaking and will be soon discussed at Apachecon in Denver during Dave Fisher's talk. From there the build system was extended to allow builds using multiple technologies and programming languages.
+
Since that time in late 2012 the CMS codebase has sat still, but recently we've upped the ante and decided to offer features aimed at parity with other site building technologies like jekyll, nanoc and middleman. You can see some of the new additions to the Apache CMS in action at http://thrift.apache.org/. The Apache Thrift website was originally written to use nanoc before being ported to the newly improved Apache CMS. They kept the YAML headers for their markdown pages and converted from a custom preprocessing script used for inserting code snippets to using a fully-supported snippet-fetching feature in the Apache CMS.
+
"The new improvements to the Apache CMS allowed us to quickly standardize the build process and guarantee repeatable results as well as integrate direct code snippets into the website from our source repository."
- Jake Farrell, Apache Thrift PMC Chair
Check out the Apache Thrift website cms sources for sample uses of the new features found in ASF::View and ASF::Value::Snippet.
diff --git a/content/blog/subversion-to-git-service-git.md b/content/blog/subversion-to-git-service-git.md
index 73b3bf92e..388005307 100644
--- a/content/blog/subversion-to-git-service-git.md
+++ b/content/blog/subversion-to-git-service-git.md
@@ -3,17 +3,17 @@ date: '2019-09-10T21:36:35+00:00'
permalink: subversion-to-git-service-git
layout: post
-
What happened
-
On August 31st 2019, the machine hosting our subversion-to-git mirrors and synchronization process for GitHub suffered a catastrophic drive error due to a power failure at our data center in Virginia. The power failure was, unfortunately, of such a nature, that recovering the disk data was not possible. Four days into the failure, on September 4th 2019, we received confirmation from the data center that the data redundancy had also failed, meaning we had no measure of restoring to a new disk.
-
What this means right now
-
Currently, all GitHub mirrors that originate in subversion, and thus relied on this service, are not being synchronized with their subversion source. As git relies on on-disk subversion meta-data, as opposed to in-repo, we are not able to obtain the meta-data and continue synchronizing unless a full recreation of the mirrors is performed. This means starting from the first revision in any given subversion repository and working towards the most current one, a process that may well take a few days or weeks, depending on the size of the repository (by number of commits) and the number of running jobs at that time.
-
What we intend to do, going forward
-
Our most immediate action has been to revisit off-site backup strategies to ensure that our services are as resilient as possible, as well as re-assess and re-categorize various machines with regards to backup strategies.
-
With backups revisited, and on the more long-term side of things, discussions have been centered around what we want to offer, and how that will shape our design of the system. We want to balance the need for features against robustness and speed at the core of the service, as well as perform some fall cleaning of the service, and as such, the Infrastructure team has decided to restart the service with a blank slate, incorporating features as the needs arise and are discussed. We will also be reaching out to the projects with subversion-to-git mirrors currently on GitHub, and ask for a positive confirmation that they wish to continue with this service, so as to clean up the number of repositories that are no longer in use. We are also redesigning the core service, coupling it tighter with our subversion offerings.
-
We estimate the git mirror service to be revamped and rebooted in a matter of weeks, as cycles allow (this is occurring in tandem with other service upgrades, which puts the timeline somewhat into the future), and will add mirror repositories on an ad-hoc basis as requests come in.
-
Notable changes to service offering
-
As we are starting with a blank slate, please be advised of the following changes to the service as it starts back up:
-
- - There will no longer be a git.apache.org URL for git mirrors, to lessen the confusion with gitbox.apache.org. Projects wishing to point to a git copy of their subversion repository should use their respective GitHub URLs.
- - Repositories are re-created from scratch. As such, it may take days from a recreation is started till the sync process begins to kick in.
+What happened
+ On August 31st 2019, the machine hosting our subversion-to-git mirrors and synchronization process for GitHub suffered a catastrophic drive error due to a power failure at our data center in Virginia. The power failure was, unfortunately, of such a nature, that recovering the disk data was not possible. Four days into the failure, on September 4th 2019, we received confirmation from the data center that the data redundancy had also failed, meaning we had no measure of restoring to a new disk.
+ What this means right now
+ Currently, all GitHub mirrors that originate in subversion, and thus relied on this service, are not being synchronized with their subversion source. As git relies on on-disk subversion meta-data, as opposed to in-repo, we are not able to obtain the meta-data and continue synchronizing unless a full recreation of the mirrors is performed. This means starting from the first revision in any given subversion repository and working towards the most current one, a process that may well take a few days or weeks, depending on the size of the repository (by number of commits) and the number of running jobs at that time.
+ What we intend to do, going forward
+ Our most immediate action has been to revisit off-site backup strategies to ensure that our services are as resilient as possible, as well as re-assess and re-categorize various machines with regards to backup strategies.
+ With backups revisited, and on the more long-term side of things, discussions have been centered around what we want to offer, and how that will shape our design of the system. We want to balance the need for features against robustness and speed at the core of the service, as well as perform some fall cleaning of the service, and as such, the Infrastructure team has decided to restart the service with a blank slate, incorporating features as the needs arise and are discussed. We will also be reaching out to the projects with subversion-to-git mirrors currently on GitHub, and ask for a positive confirmation that they wish to continue with this service, so as to clean up the number of repositories that are no longer in use. We are also redesigning the core service, coupling it tighter with our subversion offerings.
+ We estimate the git mirror service to be revamped and rebooted in a matter of weeks, as cycles allow (this is occurring in tandem with other service upgrades, which puts the timeline somewhat into the future), and will add mirror repositories on an ad-hoc basis as requests come in.
+ Notable changes to service offering
+ As we are starting with a blank slate, please be advised of the following changes to the service as it starts back up:
+
+ - There will no longer be a git.apache.org URL for git mirrors, to lessen the confusion with gitbox.apache.org. Projects wishing to point to a git copy of their subversion repository should use their respective GitHub URLs.
+ - Repositories are re-created from scratch. As such, it may take days from a recreation is started till the sync process begins to kick in.
diff --git a/content/blog/subversion_master_undergoing_emergency_maintenance.md b/content/blog/subversion_master_undergoing_emergency_maintenance.md
index 80c341019..c74a0d471 100644
--- a/content/blog/subversion_master_undergoing_emergency_maintenance.md
+++ b/content/blog/subversion_master_undergoing_emergency_maintenance.md
@@ -7,30 +7,30 @@ layout: post
The primary master machine that hosts the Apache Software Foundation's subversion repositories is currently undergoing some emergency maintenance due to disk errors.
We do not currently have an ETA on when this will be fixed.
In the meantime, there will be no access to commit to SVN.
-The read-only mirror at svn.eu.apache.org is still working.
- UPDATE: 18:30 UTC, 3 December 2014
- The machine that hosts the SVN master suffered root filesystem corruption. This corruption led to a severe degradation of the SVN service, and to repair the issue the service was taken down.
- This filesystem is separate from the filesystem that hosts the SVN repositories. We expect no data loss from this issue. (And we have multiple copies of this data available to us.)
- We'll be keeping this blog post updated with more details as they become available.
- UPDATE: 21:30 UTC, 3 December 2014
- We've removed the master from DNS rotation, so read-only access remains accessible everywhere.
- Commits to SVN remain disabled while we work on restoring the service.
-
- UPDATE: 04:45 UTC, 4 December 2014
- The service remains offline while we work on moving the service to a new host. During the work to resolve the failed disks on eris (the previous host) it became apparent that it would not be the best use of our time to keep working on this (and we had frankly lost faith in the disks).
- We are now several hours into this move. The data has been synchronised to the new host, and now we are working on porting the configuration of the old host into puppet and making it fit the new setup on which it will be run. We don't currently have an exact time when we think it will be finished, but we are hopeful it will be during Thursday 4th December 2014.
- We'd like to apologise the downtime, but we are taking actions that we feel are in the best interests of a key piece of foundation infrastructure. As always you can come and find us in the Hipchat channel #asfinfra - https://www.hipchat.com/gdAiIcNyE if you have any questions.
- --pctony
-
- UPDATE: 11:18 UTC, 4 December 2014
- We are performing sanity checks on the new puppetized configuration. For historical reasons, our svn system has relied on specially crafted versions of svn, which we are attempting to replace with canonical release versions instead, so as to easier set up a new host, should we experience another major outage. This entails a lot of rewriting of scripts, but we expect most of this to have been done now, pending a full system check.
- Once all this is done, we will be performing authorization checks to make sure everything is as it should be, and when satisfied, we will reopen the svn repo for committers.
- The ETA is still uncertain, but remains a hopeful "today" (Thursday, December 4th).
- --humbedooh
- UPDATE: 16:15 UTC, 4 December 2014
- We are nearly there. We are currently putting the finishing touches to the config, and we will begin closed testing within the infrastructure group very soon. Assuming this goes well we will aim to open the service as soon as possible after this.
- The delay will come when we ensure that no data could be lost as a result of re-starting the service. Data security and provenance is our utmost concern.
- More news to follow in the next couple of hours hopefully.
+The read-only mirror at svn.eu.apache.org is still working.
+ UPDATE: 18:30 UTC, 3 December 2014
+ The machine that hosts the SVN master suffered root filesystem corruption. This corruption led to a severe degradation of the SVN service, and to repair the issue the service was taken down.
+ This filesystem is separate from the filesystem that hosts the SVN repositories. We expect no data loss from this issue. (And we have multiple copies of this data available to us.)
+ We'll be keeping this blog post updated with more details as they become available.
+ UPDATE: 21:30 UTC, 3 December 2014
+ We've removed the master from DNS rotation, so read-only access remains accessible everywhere.
+ Commits to SVN remain disabled while we work on restoring the service.
+
+ UPDATE: 04:45 UTC, 4 December 2014
+ The service remains offline while we work on moving the service to a new host. During the work to resolve the failed disks on eris (the previous host) it became apparent that it would not be the best use of our time to keep working on this (and we had frankly lost faith in the disks).
+ We are now several hours into this move. The data has been synchronised to the new host, and now we are working on porting the configuration of the old host into puppet and making it fit the new setup on which it will be run. We don't currently have an exact time when we think it will be finished, but we are hopeful it will be during Thursday 4th December 2014.
+ We'd like to apologise the downtime, but we are taking actions that we feel are in the best interests of a key piece of foundation infrastructure. As always you can come and find us in the Hipchat channel #asfinfra - https://www.hipchat.com/gdAiIcNyE if you have any questions.
+ --pctony
+
+ UPDATE: 11:18 UTC, 4 December 2014
+ We are performing sanity checks on the new puppetized configuration. For historical reasons, our svn system has relied on specially crafted versions of svn, which we are attempting to replace with canonical release versions instead, so as to easier set up a new host, should we experience another major outage. This entails a lot of rewriting of scripts, but we expect most of this to have been done now, pending a full system check.
+ Once all this is done, we will be performing authorization checks to make sure everything is as it should be, and when satisfied, we will reopen the svn repo for committers.
+ The ETA is still uncertain, but remains a hopeful "today" (Thursday, December 4th).
+ --humbedooh
+ UPDATE: 16:15 UTC, 4 December 2014
+ We are nearly there. We are currently putting the finishing touches to the config, and we will begin closed testing within the infrastructure group very soon. Assuming this goes well we will aim to open the service as soon as possible after this.
+ The delay will come when we ensure that no data could be lost as a result of re-starting the service. Data security and provenance is our utmost concern.
+ More news to follow in the next couple of hours hopefully.
--pctony
UPDATE: 03:01 UTC, 5 December 2014 [FINAL UPDATE]
@@ -40,5 +40,5 @@ The read-only mirror at svn.e
We are happy to report that this host is now completely managed with puppet, and is delivering metrics to our instance of Circonus very happily.
Once again thank you for your patience and we hope that the service feels a lot more sprightly on it's new host.
Cheers,
On behalf of the Apache Infrastructure Team
- --pctony
+ --pctony
diff --git a/content/blog/svn_service_outage_postmortem.md b/content/blog/svn_service_outage_postmortem.md
index f8c117870..4dc2aca59 100644
--- a/content/blog/svn_service_outage_postmortem.md
+++ b/content/blog/svn_service_outage_postmortem.md
@@ -3,67 +3,67 @@ date: '2014-12-09T09:58:37+00:00'
permalink: svn_service_outage_postmortem
layout: post
- Summary
On Wednesday December 3rd the main US host for the ASF subversion service fails resulting in loss of service. This loss of subversion service prevent committers from submitting any changes, and whilst we have an EU mirror it is read-only and does not allow for any changes to be submitted whilst the master is offline.
The cause of the outage was a failed disk. This failed disk was part of a mirrored OS pair. Some time prior to this the alternate disk had also been replaced due to a failed state.
Timeline
0401 UTC 2014-10-26 - eris daily run output notes the degraded state of root disk gmirror
1212 UTC 2014-10-30 - INFRA-8551 created to deal with gmirror degradation.
2243 UTC 2014-12-02 - OSUOSL replaced disk in eris
0208 UTC 2013-12-03 - Subversion begins to crawl to a halt
0756 UTC 2013-12-03 - First contractor discovers something awry with subversion service
0834 UTC 2013-12-03 - Infrastructure sends out a notice about the svn issue
0916 UTC 2013-12-03 - Response to issue begins
1010 UTC 2013-12-03 - First complaints about mail being slow/down
1025 UTC 2013-12-03 - Discovery that email queue alerts had been silenced.
1225 UTC 2013-12-03 - Discovery that Eris outage affecting LDAP-based services including Jenkins and mail
1613 UTC 2013-12-03 - First attempt at power cycling eris
1717 UTC 2013-12-03 - Concern emerges that the 'good' disk in the mirror isn't.
1744 UTC 2013-12-03 - OSUOSL staff shows up in the office
1752 UTC 2013-12-03 - Blog post went up.
1906 UTC 2014-12-03 - New hermes/baldr (hades) being set up for replacement of eris
1911 UTC 2014-12-03 - #svnoutage clean room in hipchat began
2040 UTC 2014-12-03 - machine finally comes up and is usable.
2050 UTC 2014-12-03 - confusion arises between which switch is in which rack. Impedance mismatch between what OSUOSL calls racks, and what we called racks.
[Dec-3 5:50 PM] Tony Stevenson: which rack is this
[Dec-3 5:50 PM] Tony Stevenson: 1, 2 or 3
[Dec-3 5:50 PM] Justin Dugger (pwnguin): 19
[Dec-3 5:50 PM] David Nalley: what switch?
[Dec-3 5:50 PM] Justin Dugger (pwnguin): HW type: HP ProCurve 2530-48G OEM S/N 1: CN2BFPG1F5
[Dec-3 5:50 PM] David Nalley: ^^^^^^^^^ points to this impedance mismatch for the postmortem
[Dec-3 5:50 PM] David Nalley: no label on the switch?
2054 UTC 2014-12-03 - Data copy begins
0441 UTC 2014-12-04 - data migration finished
1457 UTC 2014-12-04 - SVN starts working again - testing begins
0647 UTC 2014-12-05 - svn-master is operational again with viewvc
-
Problems
-
- - It took us far too long to spin up replacement machine. This in fact took a few hours due to having to manually build the host from source media and encountering several BIOS/RaidController issues. Our endeavour to have automated provisioning of tin (bare metal) would certainly have improved this time considerably had it been available at the time of the event.
-
-
- - Many machines pointing to eris.a.o for LDAP - not to a service name (such as ldap1-us-west for example) which meant we couldn’t easily restore LDAP services for some US hosts without making them also think SVN services had also moved.
-
-
- - Assigning of issues in JIRA - It has perhaps been a long held understanding that if an issue is assigned to someone in JIRA then they are actively managing that issue. This event clearly shows how fragile that belief is.
-
-
- - DNS (geo) updates were problematic - Daniel will be posting a proposal on Thursday, which will outline our concerns around DNS and a viable way forward that meets our needs and is not reliant on us storing all the data in SVN to be able to effect changes to zones. (This proposal was not created as a tiger of this event, it has been worked on for a number of weeks now).
-
-
- - architectural problems for availability
-
-
To Do
-
- - Daniel to investigate and evaluate multimaster service availability.
-
-
- - Implement an extended SSL check that not only ensures the service is up, but also checks cert validity (expire, revocation status etc), and the certificate chain is valid.
-
-
- - De-couple DNS from SVN
-
-
- - De-couple the SVN authz file from SVN directly. Also breser@ has suggested we use the authz validation tool available from the svn install we have on hades, as part of the template->active file generation process.
-
-
- - Move the ASF status page (http://status.apache.org) outside of our main colos so folks can continue to see it in the event of an outage.
-
-
- - Vendor provided hardware monitoring tools mandatory on all new hardware deployments.
-
-
- - Broader audience for incidents and status reports
-
-
- - More aggressive host replacement before these issues arise
-
Things being considered
-
- - Mandatory use of SNMP for enhanced data gathering.
- - Issue ‘nagging’ - develop some thoughts and ideas around the concept of auto-transitioning un-modified JIRA issues after N hours of in activity and actively nag the group until an update is made. This for example is how Atlassian (and so many others) handle their issues. For example if an end-user doesn’t update the issue within 5 days, it is automatically closed, if we don’t update an open issue within 6 hours for a critical issue then we get nagged about it.
- - Automatically create new JIRA issues (utilising above mentioned auto-transition) to notify of hardware issues (not just relying on hundreds of cron emails a day).
- - Again as part of a wider thinking of how we use issue tracking consider the concept that you only assign an issue to yourself if you are explicitly working on it at that moment, i.e it should not sit in the queue assigned to someone for > N hours and not receive any updates.
-
Things that went well
-
- - The people working on the issue worked extremely well as a team. Communicating with one another via hipchat and helping each other along where required. There was a real sense of camaraderie for the first time in a very long time and this see of team helped greatly.
-
-
- - The team put in a bloody hard shift.
-
-
- - There is now a very solid understanding of the SVN service across at least 4 members of the team, as opposed to 2 x0.5 understandings before.
-
-
- - A much broader insight into the current design of our infrastructure was gained by the newer members of the team.
+ Summary
On Wednesday December 3rd the main US host for the ASF subversion service fails resulting in loss of service. This loss of subversion service prevent committers from submitting any changes, and whilst we have an EU mirror it is read-only and does not allow for any changes to be submitted whilst the master is offline.
The cause of the outage was a failed disk. This failed disk was part of a mirrored OS pair. Some time prior to this the alternate disk had also been replaced due to a failed state.
Timeline
0401 UTC 2014-10-26 - eris daily run output notes the degraded state of root disk gmirror
1212 UTC 2014-10-30 - INFRA-8551 created to deal with gmirror degradation.
2243 UTC 2014-12-02 - OSUOSL replaced disk in eris
0208 UTC 2013-12-03 - Subversion begins to crawl to a halt
0756 UTC 2013-12-03 - First contractor discovers something awry with subversion service
0834 UTC 2013-12-03 - Infrastructure sends out a notice about the svn issue
0916 UTC 2013-12-03 - Response to issue begins
1010 UTC 2013-12-03 - First complaints about mail being slow/down
1025 UTC 2013-12-03 - Discovery that email queue alerts had been silenced.
1225 UTC 2013-12-03 - Discovery that Eris outage affecting LDAP-based services including Jenkins and mail
1613 UTC 2013-12-03 - First attempt at power cycling eris
1717 UTC 2013-12-03 - Concern emerges that the 'good' disk in the mirror isn't.
1744 UTC 2013-12-03 - OSUOSL staff shows up in the office
1752 UTC 2013-12-03 - Blog post went up.
1906 UTC 2014-12-03 - New hermes/baldr (hades) being set up for replacement of eris
1911 UTC 2014-12-03 - #svnoutage clean room in hipchat began
2040 UTC 2014-12-03 - machine finally comes up and is usable.
2050 UTC 2014-12-03 - confusion arises between which switch is in which rack. Impedance mismatch between what OSUOSL calls racks, and what we called racks.
[Dec-3 5:50 PM] Tony Stevenson: which rack is this
[Dec-3 5:50 PM] Tony Stevenson: 1, 2 or 3
[Dec-3 5:50 PM] Justin Dugger (pwnguin): 19
[Dec-3 5:50 PM] David Nalley: what switch?
[Dec-3 5:50 PM] Justin Dugger (pwnguin): HW type: HP ProCurve 2530-48G OEM S/N 1: CN2BFPG1F5
[Dec-3 5:50 PM] David Nalley: ^^^^^^^^^ points to this impedance mismatch for the postmortem
[Dec-3 5:50 PM] David Nalley: no label on the switch?
2054 UTC 2014-12-03 - Data copy begins
0441 UTC 2014-12-04 - data migration finished
1457 UTC 2014-12-04 - SVN starts working again - testing begins
0647 UTC 2014-12-05 - svn-master is operational again with viewvc
+
Problems
+
+ - It took us far too long to spin up replacement machine. This in fact took a few hours due to having to manually build the host from source media and encountering several BIOS/RaidController issues. Our endeavour to have automated provisioning of tin (bare metal) would certainly have improved this time considerably had it been available at the time of the event.
+
+
+ - Many machines pointing to eris.a.o for LDAP - not to a service name (such as ldap1-us-west for example) which meant we couldn’t easily restore LDAP services for some US hosts without making them also think SVN services had also moved.
+
+
+ - Assigning of issues in JIRA - It has perhaps been a long held understanding that if an issue is assigned to someone in JIRA then they are actively managing that issue. This event clearly shows how fragile that belief is.
+
+
+ - DNS (geo) updates were problematic - Daniel will be posting a proposal on Thursday, which will outline our concerns around DNS and a viable way forward that meets our needs and is not reliant on us storing all the data in SVN to be able to effect changes to zones. (This proposal was not created as a tiger of this event, it has been worked on for a number of weeks now).
+
+
+ - architectural problems for availability
+
+
To Do
+
+ - Daniel to investigate and evaluate multimaster service availability.
+
+
+ - Implement an extended SSL check that not only ensures the service is up, but also checks cert validity (expire, revocation status etc), and the certificate chain is valid.
+
+
+ - De-couple DNS from SVN
+
+
+ - De-couple the SVN authz file from SVN directly. Also breser@ has suggested we use the authz validation tool available from the svn install we have on hades, as part of the template->active file generation process.
+
+
+ - Move the ASF status page (http://status.apache.org) outside of our main colos so folks can continue to see it in the event of an outage.
+
+
+ - Vendor provided hardware monitoring tools mandatory on all new hardware deployments.
+
+
+ - Broader audience for incidents and status reports
+
+
+ - More aggressive host replacement before these issues arise
+
Things being considered
+
+ - Mandatory use of SNMP for enhanced data gathering.
+ - Issue ‘nagging’ - develop some thoughts and ideas around the concept of auto-transitioning un-modified JIRA issues after N hours of in activity and actively nag the group until an update is made. This for example is how Atlassian (and so many others) handle their issues. For example if an end-user doesn’t update the issue within 5 days, it is automatically closed, if we don’t update an open issue within 6 hours for a critical issue then we get nagged about it.
+ - Automatically create new JIRA issues (utilising above mentioned auto-transition) to notify of hardware issues (not just relying on hundreds of cron emails a day).
+ - Again as part of a wider thinking of how we use issue tracking consider the concept that you only assign an issue to yourself if you are explicitly working on it at that moment, i.e it should not sit in the queue assigned to someone for > N hours and not receive any updates.
+
Things that went well
+
+ - The people working on the issue worked extremely well as a team. Communicating with one another via hipchat and helping each other along where required. There was a real sense of camaraderie for the first time in a very long time and this see of team helped greatly.
+
+
+ - The team put in a bloody hard shift.
+
+
+ - There is now a very solid understanding of the SVN service across at least 4 members of the team, as opposed to 2 x0.5 understandings before.
+
+
+ - A much broader insight into the current design of our infrastructure was gained by the newer members of the team.
diff --git a/content/blog/the_joy_of_feedback.md b/content/blog/the_joy_of_feedback.md
index f5ab87431..d97fbe40a 100644
--- a/content/blog/the_joy_of_feedback.md
+++ b/content/blog/the_joy_of_feedback.md
@@ -3,21 +3,20 @@ date: '2022-12-01'
permalink: the_joy_of_feedback
layout: post
-In discussions at ApacheCon in New Orleans, we learned that the three standard methods of communicating with Infra:
+In discussions at ApacheCon in New Orleans, we learned that the three standard methods of communicating with Infra:
- * opening a Jira ticket
- * sending an email
+ * opening a Jira ticket
+ * sending an email
* posting a message on the `#asfinfra` Slack channel
are not ideal for many conversations folks would like to have about The ASF's infrastructure.
-
## Roundtable Discussions
Infra is proposing to hold a monthly roundtable of free-flowing discussion.
-Our idea right now is that each roundtable event will take place in a Slack huddle and will last an hour.
-
+Our idea right now is that each roundtable event will take place in a Slack huddle and will last an hour.
+
The first (shorter) part will be Infra talking about a topic of interest, something we are planning, or a problem we are facing.
Then we'll open the floor for everyone to talk about that topic... and about anything else infrastructure-related.
@@ -39,6 +38,4 @@ Surveys will be anonymous and results will be posted on the Infra blog. Dependin
Cheers,
- - ASF Infra
-
-
+ - ASF Infra
diff --git a/content/blog/the_value_of_taint_checks.md b/content/blog/the_value_of_taint_checks.md
index 56c75b369..17582fd87 100644
--- a/content/blog/the_value_of_taint_checks.md
+++ b/content/blog/the_value_of_taint_checks.md
@@ -3,7 +3,7 @@ date: '2012-06-09T21:45:27+00:00'
permalink: the_value_of_taint_checks
layout: post
-Consider the following snippet taken from a live CGI script running on the host that serves www.apache.org:
+Consider the following snippet taken from a live CGI script running on the host that serves www.apache.org:
#!/usr/bin/perl
use strict;
@@ -19,12 +19,12 @@ $artifact =~ s,[^a-zA-Z.[0-9]-],,g;
$artifact =~ s,\.\./,,g;
my $content = `wget -q -O - http://repository.apache.org/snapshots/org/apache/openejb$artifact`;
-...
-
-
-
- Looks pretty good right? Any questionable characters are removed from $artifact before exposing it to the shell via backticks... hmm, well turns out that's not so easy to determine.
- The first warning sign that was given to the author of this script was that he hadn't enabled taint checks- if he had this is how things probably would have looked:
+...
+
+
+
+ Looks pretty good right? Any questionable characters are removed from $artifact before exposing it to the shell via backticks... hmm, well turns out that's not so easy to determine.
+ The first warning sign that was given to the author of this script was that he hadn't enabled taint checks- if he had this is how things probably would have looked:
#!/usr/bin/perl -T
use strict;
@@ -41,9 +41,9 @@ $artifact = $1;
$artifact =~ s,\.\./,,g;
my $content = `wget -q -O - http://repository.apache.org/snapshots/org/apache/openejb$artifact`;
-...
- Which doesn't look like much of a change, but the impact on the actual logic is massive: we've gone from a substitution that strips unwanted chars to a fully-anchored pattern that matches only a string full of wanted chars only, and dies on pattern match failure. Sadly the developer in question did not heed this early advice.
- As it turns out, there is a bug (well several) in the core pattern that renders the original substitution ineffective. However the impact on the taint-checked version causes the detainting match to fail and renders the script harmless! The practical difference is that instead of a script with a working remote shell exploit, we have script that serves no useful purpose. To the Apache sysadmins this is a superior outcome, even though to the developer the original, essentially working script is preferable- worlds are colliding here, but guess who wins?
- At the ASF the sysadmins almost invariably refuse to run perl or ruby CGI scripts without taint-checking enabled, and will always prefer CGI scripts be written in languages that support taint checks as they tend to enforce good practice in dealing with untrusted input. This example, which is in fact one of the first times we've even considered allowing Apache devs to deploy non-download CGI scripts on the www.apache.org server, serves as a useful reminder to Apache devs as to why using languages that support taint checks is an essential component of scripting on the web.
-
+...
+ Which doesn't look like much of a change, but the impact on the actual logic is massive: we've gone from a substitution that strips unwanted chars to a fully-anchored pattern that matches only a string full of wanted chars only, and dies on pattern match failure. Sadly the developer in question did not heed this early advice.
+ As it turns out, there is a bug (well several) in the core pattern that renders the original substitution ineffective. However the impact on the taint-checked version causes the detainting match to fail and renders the script harmless! The practical difference is that instead of a script with a working remote shell exploit, we have script that serves no useful purpose. To the Apache sysadmins this is a superior outcome, even though to the developer the original, essentially working script is preferable- worlds are colliding here, but guess who wins?
+ At the ASF the sysadmins almost invariably refuse to run perl or ruby CGI scripts without taint-checking enabled, and will always prefer CGI scripts be written in languages that support taint checks as they tend to enforce good practice in dealing with untrusted input. This example, which is in fact one of the first times we've even considered allowing Apache devs to deploy non-download CGI scripts on the www.apache.org server, serves as a useful reminder to Apache devs as to why using languages that support taint checks is an essential component of scripting on the web.
+
diff --git a/content/blog/towards_a_redeployable_future_or.md b/content/blog/towards_a_redeployable_future_or.md
index ba2979c56..2491b355d 100644
--- a/content/blog/towards_a_redeployable_future_or.md
+++ b/content/blog/towards_a_redeployable_future_or.md
@@ -3,8 +3,8 @@ date: '2015-02-27T13:08:05+00:00'
permalink: towards_a_redeployable_future_or
layout: post
-Things change, even within the ASF.
- One of these changes is to our infrastructure, and is a move from manually managed and maintained web servers towards re-deployable, configuration managed servers that tend to themselves and rarely, if ever, require manual intervention. As such, we have started moving towards no longer manually fixing bugs that creep up on various project web sites, in particular setting the correct permission on files. This means that all projects are now required to check their download scripts and verify that the executable flag is set on these CGI files. If not, your download page will likely not work.
- Whenever we receive an email from a user of an Apache project about an error on a project web site, we will forward this to the respective project, but we ask that projects take proactive measures and check their download scripts (and any other scripts they may have) to ensure that they have the right permissions set and work.
- Projects using the CMS system will, for the time being, have to commit the execute bit changes directly to the staging repo for their site.
+Things change, even within the ASF.
+ One of these changes is to our infrastructure, and is a move from manually managed and maintained web servers towards re-deployable, configuration managed servers that tend to themselves and rarely, if ever, require manual intervention. As such, we have started moving towards no longer manually fixing bugs that creep up on various project web sites, in particular setting the correct permission on files. This means that all projects are now required to check their download scripts and verify that the executable flag is set on these CGI files. If not, your download page will likely not work.
+ Whenever we receive an email from a user of an Apache project about an error on a project web site, we will forward this to the respective project, but we ask that projects take proactive measures and check their download scripts (and any other scripts they may have) to ensure that they have the right permissions set and work.
+ Projects using the CMS system will, for the time being, have to commit the execute bit changes directly to the staging repo for their site.
With regards,
Daniel on behalf of the Infrastructure Team.
diff --git a/content/blog/trivy_security_incident.md b/content/blog/trivy_security_incident.md
index 10abecb22..c63e93e8b 100644
--- a/content/blog/trivy_security_incident.md
+++ b/content/blog/trivy_security_incident.md
@@ -3,6 +3,7 @@ date: '2026-03-20'
permalink: trivysecurity layout: post
### A security incident
+
Trivy, Agua Security's open-source vulnerability scanner, appears to have experienced a security incident March 19, 2026, based on the details available here: stepsecurity.io/blog/trivy-compromised-a-second-time---malicious-v0-69-4-release
ASF Infrastructure and ASF Security have provided the following summary based on what we believe to be true:
@@ -13,12 +14,15 @@ ASF Infrastructure and ASF Security have provided the following summary based on
On March 21, Trivy published this statement about the event.
### Impact on ASF projects
+
A small number of ASF projects include the trivy GitHub Action in their build workflows.
### Infra response
+
- ASF Infra and ASF Security agreed to disable all previously allowed "verified creator" actions while the incident is being investigated
- This may cause build failures, and require projects request newly-failed actions be added via the Infra GHA approval process: github.com/apache/infrastructure-actions?tab=readme-ov-file#adding-a-new-version-to-the-allow-list
- Infra and the Security team are investigating if any secrets and Git repositories of ASF projects may have been compromised.
### For further information
+
If you are involved in an ASF project that is impacted by this situation, you can open a Jira ticket for Infra. You can also join the conversation in the #asfinfra channel in the the-asf space on Slack, or send an email to `users@infra.apache.org`.
diff --git a/content/blog/welcome_new_members_of_the.md b/content/blog/welcome_new_members_of_the.md
index 83d0123cc..12c4ac346 100644
--- a/content/blog/welcome_new_members_of_the.md
+++ b/content/blog/welcome_new_members_of_the.md
@@ -6,27 +6,27 @@ layout: post
Well, some are not exactly new faces, but since our last blog update of new infra members in 2009 , we have conned with promises of fame, fortune and beer the following new additions to the infra team:
-
-
+
+
- Chris Rhodes: (arreyder)
-
+
- Brian Fox: (brianf)
-
+
- Matt Benson: (mbenson)
-
+
- David Blevins: (dblevins)
-
+
- Rudiger Pluem: (rpluem)
-
+
- Noirin Plunkett: (noirin)
-
+
- Ulrich Stärk: (uli)
-
+
- Daniel Shahaf: (danielsh)
-
+
- Paul Davis: (davisp)
-
-
+
+
Infra work is not your normal volunteer work, and it is greatly appreciated when any of these folks get to help.
diff --git a/content/pages/account-mgmt.md b/content/pages/account-mgmt.md
index 3634175e7..6ed929163 100644
--- a/content/pages/account-mgmt.md
+++ b/content/pages/account-mgmt.md
@@ -13,7 +13,7 @@ Your account includes an Apache email address which is usually `userID@apache.or
Log in to Whimsy and, in the _Available to Committers_ section, click `Your personal details`. You can update any information in blue by double-clicking it and making the necessary changes in the form that appears.
-### Regaining access to your committer account
+### Regaining access to your committer account
If you forgot your password, try...
@@ -30,7 +30,7 @@ This should decrypt the file and display the output in the window.
3. If you have lost access to your registered email address, file an additional ICLA with Secretary. Follow the directions for submitting an ICLA. Include your current Apache ID and mention in your cover email that you are requesting a change to your email address.
4. If that didn't work, email `root@`. In your email, mention the following information:
-
+
- Your username.
- The fact that you have tried a self-service password reset, and why it didn't work. (Was the mail received? Did you decrypt it successfully?)
- Why you need to regain access to your Apache account -- e.g., if it is to work on a foundation project, name that project; or if you are a foundation member, state that.
@@ -45,14 +45,16 @@ This should decrypt the file and display the output in the window.
**Note**: please do not ask other ASF committers or Members to email root@ to vouch for you.
### Multi Factor Authentication
+
Infra will soon provide multi-factor authentication (MFA) for account logins. Documentation related to setting up and using multi-factor authentication will be provided here when the service is ready.
You are welcome to review the draft MFA policy and the related draft policy on resetting MFA if access has been lost.
**Note**: If you are using GitHub, you must also use GitHub's MFA, which is separate from the Apache MFA. If you are having trouble logging in to GitHub (or some other service) or to Apache, make sure you are using the correct entries for the MFA in question.
-## Account removal
-Occasionally we need to remove an account - either by request or because the committer is deceased or, in rare cases, because the ASF is forcibly removing the committer.
+## Account removal
+
+Occasionally we need to remove an account - either by request or because the committer is deceased or, in rare cases, because the ASF is forcibly removing the committer.
In practice, we almost never actually remove an LDAP account; we just remove the committer from all LDAP groups and mailing lists they have belonged to.
diff --git a/content/pages/apache-github.md b/content/pages/apache-github.md
index 0f72614c3..f17a7c78f 100644
--- a/content/pages/apache-github.md
+++ b/content/pages/apache-github.md
@@ -6,9 +6,9 @@ The ASF has a presence on Gi
**Can I write to repositories at GitHub**?
If your project is currently hosted on Gitbox then you can push to GitHub.
-In order to get write access to repositories, you will need to visit our Boxer
-portal, which will guide you through the process of linking your ASF and GitHub accounts. The process only takes
-a minute or two, and will automatically grant you access to all the repositories owned by the projects
+In order to get write access to repositories, you will need to visit our Boxer
+portal, which will guide you through the process of linking your ASF and GitHub accounts. The process only takes
+a minute or two, and will automatically grant you access to all the repositories owned by the projects
you are active on.
**To move to GitHub as master follow the steps below:**
diff --git a/content/pages/app-upgrade-policy.md b/content/pages/app-upgrade-policy.md
index b3ecb8577..947a24ca2 100644
--- a/content/pages/app-upgrade-policy.md
+++ b/content/pages/app-upgrade-policy.md
@@ -10,7 +10,7 @@ This policy encompasses Infra's approach to upgrades of Jenkins, Confluence and
**Main Jenkins instance**
_Upgrades once a quarter_
-Infra follows the LTS line of releases, which the Jenkins Project releases on a 12 week cycle. Once every three months, on the last Saturday or Sunday of the month following the Jenkins LTS release, ASF Infra upgrades the main instance.
+Infra follows the LTS line of releases, which the Jenkins Project releases on a 12 week cycle. Once every three months, on the last Saturday or Sunday of the month following the Jenkins LTS release, ASF Infra upgrades the main instance.
**Jenkins plugins**
_Upgrades once a month_
@@ -27,7 +27,7 @@ Jira gets a new release every two to six weeks, far too often (and unpredictable
**Jira plugins**
_Upgrades every two months_
-We upgrade Jira plugins before or after each main instance upgrade, as appropriate, and once every two months between main instance upgrades.
+We upgrade Jira plugins before or after each main instance upgrade, as appropriate, and once every two months between main instance upgrades.
### Confluence
@@ -37,7 +37,7 @@ _Upgrades every six months_
Our goal is to upgrade Confluence to the latest version twice a year.
**Confluence plugins**
-_Upgrades every two months_
+_Upgrades every two months_
Every two months we perform upgrades to plugins that are compatible with the version of the main Confluence instance we are running.
diff --git a/content/pages/apple-dev-program.md b/content/pages/apple-dev-program.md
index 48a7b896f..7ce3e056b 100644
--- a/content/pages/apple-dev-program.md
+++ b/content/pages/apple-dev-program.md
@@ -11,6 +11,5 @@ To join the Apple Developer Program as part of the ASF, committers must:
- create a Jira ticket for Infra under the code-signing component to request that Infra add them to the list of ASF participants
- read the latest Apple Developer Program Agreement
- confirm, once Infra has added their name to the participants' list, that they have read, understood and agree to abide by the terms of the Apple Developer Program Agreement
-
-The file that tracks participants' confirmations, with additional information for updating it, is here.
+The file that tracks participants' confirmations, with additional information for updating it, is here.
diff --git a/content/pages/asf-pelican-branches.md b/content/pages/asf-pelican-branches.md
index 64ca2c061..f534eb8a3 100644
--- a/content/pages/asf-pelican-branches.md
+++ b/content/pages/asf-pelican-branches.md
@@ -29,7 +29,7 @@ A successful build will be found at `https://www-feature.staged.apache.org/`.
Once your feature is complete, submit a pull request (PR) from `preview/feature` to `main`. Once the PR is merged the site updates to include the updated features.
-GitHub has further information on merging branches.
+GitHub has further information on merging branches.
## Example
diff --git a/content/pages/asf-pelican-build.md b/content/pages/asf-pelican-build.md
index cc03cf6b1..1aa765ea4 100644
--- a/content/pages/asf-pelican-build.md
+++ b/content/pages/asf-pelican-build.md
@@ -62,7 +62,7 @@ IGNORE_FILES = ['README.md','interviews','include']
# Process
-Pelican uses signals as it goes through the process of reading and generating content. It processes pages in no particular order.
+Pelican uses signals as it goes through the process of reading and generating content. It processes pages in no particular order.
Our plugins provide the following activity:
@@ -281,7 +281,7 @@ ASF-Pelican uses a version of github.com/apache/template-site to inspect a full `pelicanconf.yaml` file.
-These are the sections to configure in `pelicanconf.yaml` for your website:
+These are the sections to configure in `pelicanconf.yaml` for your website:
## Required
diff --git a/content/pages/asf-pelican-data.md b/content/pages/asf-pelican-data.md
index 28fbf51ee..54973355f 100644
--- a/content/pages/asf-pelican-data.md
+++ b/content/pages/asf-pelican-data.md
@@ -102,7 +102,6 @@ foundation:
The site is only interested in the most recent post's title and id/url.
-
```python
# retrieve blog posts from an Atom feed.
def process_blog(feed, count, debug):
@@ -391,7 +390,6 @@ Committees / PMC Chairs. Roster and Reporting is omitted.
Here are the directives that create metadata models from the above data.
-
```yaml
officers:
description: 'Foundation Officers sequence'
@@ -475,7 +473,7 @@ The `ci` data model is a dictionary we need to improve the display of officers o
### Projects / PMCs
-For sequences about projects we first derive a project list from the committee list. We supplement it with each project's initial letter to provide an alphabetical project index.
+For sequences about projects we first derive a project list from the committee list. We supplement it with each project's initial letter to provide an alphabetical project index.
```yaml
projects:
@@ -604,7 +602,7 @@ At the bottom of the main page of the ASF site we display a project index that i
split: 6
```
-This code derives the sequences for the six columns in the display. The output metadata is `pl_0`, `pl_1`, `pl_2`, `pl_3`, `pl_4`, and `pl_5`:
+This code derives the sequences for the six columns in the display. The output metadata is `pl_0`, `pl_1`, `pl_2`, `pl_3`, `pl_4`, and `pl_5`:
```python
# split a list into equal sized columns. Adds letter breaks in the alphabetical sequence.
diff --git a/content/pages/asf-pelican-gettingstarted.md b/content/pages/asf-pelican-gettingstarted.md
index 02d50f803..5ca2cb392 100644
--- a/content/pages/asf-pelican-gettingstarted.md
+++ b/content/pages/asf-pelican-gettingstarted.md
@@ -50,7 +50,7 @@ staging:
13. When you are ready to publish the site, create a pull request to merge the content in staging into the trunk of the repo. That will trigger a build of the live site.
14. Visit `YourProject.apache.org` after every update to make sure it displays and functions correctly.
-**Note**: we strongly suggest that you do your site development in a [branch](apache-pelican-branches.html) rather than the trunk of the repository, and then merge the branch into the trunk when you are sure that everything is working as you would like it. Each commit to the trunk triggers an automatic build to update your live site; this is great for trivial changes like correcting typos, but more of a challenge if you are making major changes and it turns out that there is an error in your code that disables your live site.
+**Note**: we strongly suggest that you do your site development in a [branch](apache-pelican-branches.html) rather than the trunk of the repository, and then merge the branch into the trunk when you are sure that everything is working as you would like it. Each commit to the trunk triggers an automatic build to update your live site; this is great for trivial changes like correcting typos, but more of a challenge if you are making major changes and it turns out that there is an error in your code that disables your live site.
### Frameworks
@@ -73,6 +73,7 @@ Determine whether your site requires a [data model](asf-pelican-data.html).
The `.ezmd` files in the template's `content` directory show examples, and asfdata.yaml has many examples.
Remove the following if you do not need a data model:
+
- `asfdata.yaml`
- `data/eccn` directory
diff --git a/content/pages/asf-pelican-local.md b/content/pages/asf-pelican-local.md
index e338312aa..0a586de12 100644
--- a/content/pages/asf-pelican-local.md
+++ b/content/pages/asf-pelican-local.md
@@ -16,11 +16,12 @@ Once your infrastructure-pelican site is deployed to GitHub, you can easily edit
## Preparation
Make sure you have installed:
+
- cmake
- python3 or greater
- pip3
-Download the [automatic build tool](https://raw.githubusercontent.com/apache/infrastructure-pelican/master/bin/local-pelican-site.sh), and run it, providing the name of your GitHub website repo.
+Download the [automatic build tool](https://raw.githubusercontent.com/apache/infrastructure-pelican/master/bin/local-pelican-site.sh), and run it, providing the name of your GitHub website repo.
Example:
diff --git a/content/pages/asf-pelican-plugins.md b/content/pages/asf-pelican-plugins.md
index 3689b33b9..1929cdd26 100644
--- a/content/pages/asf-pelican-plugins.md
+++ b/content/pages/asf-pelican-plugins.md
@@ -11,6 +11,7 @@ The following material is correct for both ASF-Pelican and its replacement.
# Plugins
+
You can find the available plugins for a site using the ASF-Pelican template in the `themes/plugins` folder of your website's project repository.
# Plugin architecture
@@ -68,7 +69,7 @@ The system sets two important readers at this point. Readers are responsible for
providing a metadata dictionary.
- GFMReader by the pelican-gfm plugin. This code is in a private repository - ask Infra. Transforms GitHub Flavored Markdown(GFM) to HTML.
-
+
* .md
* .markdown
* .mkd
@@ -91,6 +92,6 @@ This is signaled after a reader has processed the site's content. At this point
## Apache CMS
-Many projects had their websites served by the Apache CMS from 2010. It was deprecated in 2021. The CMS was written in Perl. We have a new approach that fits Pelican.
+Many projects had their websites served by the Apache CMS from 2010. It was deprecated in 2021. The CMS was written in Perl. We have a new approach that fits Pelican.
If you want to look into the old CMS process, its Subversion repository and history remain available.
diff --git a/content/pages/asf-pelican-theme.md b/content/pages/asf-pelican-theme.md
index 74aee1871..6e2ae5780 100644
--- a/content/pages/asf-pelican-theme.md
+++ b/content/pages/asf-pelican-theme.md
@@ -47,7 +47,7 @@ This theme uses the following metadata:
- bodytag. This adds attributes to the `` element.
This allows the main `index.ezmd` to have the same template, but with a different layout.
- ``
+ ``
## Pelican settings
@@ -67,12 +67,10 @@ site:
```
-
## Pelican theme
This is a [custom theme][1] Pelican templates use [Jinja][2].
-
### Pelican variables set in pelicanconf.py
@@ -90,6 +88,5 @@ TRADEMARKS = u'Apache, the Apache logo, and are trademarks or registered t
CURRENTYEAR = date.today().year
~~~
-
[1]: https://docs.getpelican.com/en/latest/themes.html
[2]: https://jinja.palletsprojects.com/en/3.0.x/
diff --git a/content/pages/asfbot.md b/content/pages/asfbot.md
index 8f9a70173..105329b1e 100644
--- a/content/pages/asfbot.md
+++ b/content/pages/asfbot.md
@@ -24,10 +24,9 @@ You can subscribe to any repository you like, and get reports on any specific ch
Reporting on changes to Jira tickets
-If your channel is set up for Jira reporting, ASFBot keeps track of the latest changes to a Jira ticket. To view, for instance, the most recent comment pertaining to `INFRA-1234`, type:
-
-`ASFBot: comment INFRA-1234`
+If your channel is set up for Jira reporting, ASFBot keeps track of the latest changes to a Jira ticket. To view, for instance, the most recent comment pertaining to `INFRA-1234`, type:
+`ASFBot: comment INFRA-1234`
Fetching issue information
@@ -39,7 +38,7 @@ ASFBot returns a link to that Jira ticket or Bugzilla issue and, if available, a
Secretary feature
-ASFBot provides a simple secretary feature. To leave a message for an absent person, write:
+ASFBot provides a simple secretary feature. To leave a message for an absent person, write:
`ASFBot: tell [recipient] [message]`
@@ -59,7 +58,7 @@ Record keeping works as follows:
- To end a meeting and save a summary of it, type `ASFBot: meeting end`. This will end the record keeping and produce an HTML document containing the summary of the meeting and a log of everything participants wrote.
- To send an IRC meeting summary as an email to a recipient, type `ASFBot: meeting send your@domain.tld`. You will need to have been granted karma by Infra to perform this task.
- ASFBot understands most meetbot commands, so
+ ASFBot understands most meetbot commands, so
`#meetingstart` and `#meetingend` will also start and end a recording of a meeting.
For an example of what a meeting summary may look like, check out this record of a CouchDB meeting.
diff --git a/content/pages/asfquart.md b/content/pages/asfquart.md
index e6428c100..ff642264d 100644
--- a/content/pages/asfquart.md
+++ b/content/pages/asfquart.md
@@ -1,7 +1,7 @@
Title: ASFQuart
license: https://www.apache.org/licenses/LICENSE-2.0
-ASFQuart is an asynchronous Python web microframework, a customization of Quart, which is built on the principles of the Flask microsystem.
+ASFQuart is an asynchronous Python web microframework, a customization of Quart, which is built on the principles of the Flask microsystem.
ASFQuart supports
diff --git a/content/pages/asfyaml-mkdocs.md b/content/pages/asfyaml-mkdocs.md
index 288d68597..0b9864d39 100644
--- a/content/pages/asfyaml-mkdocs.md
+++ b/content/pages/asfyaml-mkdocs.md
@@ -7,7 +7,7 @@ As of August 2021, you need to use a special MKDocs build command sequence so it
The command `mkdocs gh-deploy` removes the site, rebuilds it, and then deploys the updated contents to the given remote branch. This removes, but does not replace, the `.asf.yaml` file.
-To prevent the new build from removing the `.asf.yaml` file, use this build command sequence:
+To prevent the new build from removing the `.asf.yaml` file, use this build command sequence:
```
rm -r site
diff --git a/content/pages/backup-policy.md b/content/pages/backup-policy.md
index b51cd2a60..89b1b6678 100644
--- a/content/pages/backup-policy.md
+++ b/content/pages/backup-policy.md
@@ -10,18 +10,22 @@ Project VM backups: Automated backups via BackupPC are provided as a courtesy, h
Foundation Critical systems receive additional nightly rsync/zfs based snapshots which are retained for approximately 30 days in most cases.
#### Databases ####
+
- MySQL and Postgres databases are backed up nightly using a puppet managed tool to /x1/db_dump
- /x1/db_dump is picked up by the rsync or backuppc process
#### Software repositories ####
+
- gitbox.a.o (rsync, backuppc, GitHub mirrors).
- svn.a.o (rsync, backuppc, azure DR replica).
- archive.a.o (backuppc).
#### Server logs ####
+
- Ephemeral. retained in Elasticsearch for approximately 90 days, but not guaranteed. Not available outside Infra.
- Compiled statistics available in some cases.
#### Email ####
+
- Raw archives (mbox-vm) (rsync/backuppc)
- qmail source (hermes) (rsync backup + rsync replica)
diff --git a/content/pages/bug-writing-guide.md b/content/pages/bug-writing-guide.md
index 0a001f022..55be66430 100644
--- a/content/pages/bug-writing-guide.md
+++ b/content/pages/bug-writing-guide.md
@@ -8,7 +8,6 @@ license: https://www.apache.org/licenses/LICENSE-2.0
- If your report or comment gets blocked
- Following up
-
Bug reporting
When you run into an issue with ASF instrastructure, with the software one of the ASF projects produces, or with an ASF-related website, you may be the first person to have noticed the issue. If so, you should report it. The people responsible for the thing that has a bug or other issue will be happy to know about the problem so they can fix it before more people run into it.
@@ -66,7 +65,7 @@ Make sure you provide a useful **title** for the report:
- Useful: "PCMCIA install fails on Tosh Tecra 780DVD w/ 3c589"
- Not useful: "Browser crashes" or "Install problem"
-
+
Review [Creating a Jira ticket](jira-guidelines.html) for specifics about Jira bug reports.
### What not to include ###
diff --git a/content/pages/build-supported-services.md b/content/pages/build-supported-services.md
index 15c605097..f6ebe0d50 100644
--- a/content/pages/build-supported-services.md
+++ b/content/pages/build-supported-services.md
@@ -2,6 +2,7 @@ Title: ASF Build and Supported Services
license: https://www.apache.org/licenses/LICENSE-2.0
## Introduction
+
Here is a summary of The ASF's 'build' (CI/CD) and related services, those hosted at The ASF and those supported externally, directly or via integration.
Note that 'supported' means that Infra provides the service or provides access to the service. It does not mean that a particular service is considered
@@ -23,14 +24,17 @@ an official 'release channel'.
Infra operates a Cloudbees Core cluster comprising a single Operations Center and several Controllers. These comprise a shared Controller ci-builds instance which many projects share, and some individual project Controllers (listed on the main Operations Center Controllers page).
#### Access control
+
Jenkins is LDAP enabled and so all ASF Committers have login access. Project level access is then applied at a Controller level for the project Controllers and at a
Folder level for the shared ci-builds shared instance. If your project has a Folder here, you already have access there to edit/create builds. If you are
a project without a Folder then an Infra Jira ticket will get you the Folder you need.
#### Integrations
+
Jenkins has integrations with GitHub Actions (GHA), nightlies.apache.org, and Nexus for snapshot deployments. More information on this will appear here soon.
#### More information
+
The Infra Confluence wiki space has more information about Jenkins.
Buildbot
@@ -38,10 +42,11 @@ The Infra Confluence wiki space has Subversion
- - Git/GitHub
+ - Subversion
+ - Git/GitHub
Use the standard naming `$projectname.py` for your config file. You may place multiple build jobs in this file.
@@ -49,14 +54,17 @@ Once committed, changes should be picked up automatically.
If this does not happen, please contact Infrastructure.
#### Access control
+
Log in to ci2.apache.org with your LDAP creds. Use `$username@apache.org` for the user and your LDAP password.
#### Integrations
+
Buildbot integrates with `nightlies.apache.org` and Nexus for snapshot deployments.
IRC: Currently irc integration is disabled. We have an open Jira ticket tracking this.
#### More Information
+
The Infra Confluence wiki has more about Buildbot.
Apache Gump
@@ -72,22 +80,25 @@ Use Gump if you want to know when a change in your dependencies breaks your proj
Gump is written in Python and supports several build tools (including shell scripts, GNU make, Ant, Maven and NAnt) and version control systems
(svn, CVS, git, bzr, hg, darcs and Perforce). The Apache installation of Gump builds many ASF projects and their dependencies.
-Gump started in the Java part of the Foundation but also builds projects like APR, HTTPd and log4net.
+Gump started in the Java part of the Foundation but also builds projects like APR, HTTPd and log4net.
GitHub Actions
The ASF supports and recommends the use of GitHub Actions (GHA).
#### Integrations
+
Infra makes use of an 'allow' list to allow Marketplace actions for your workflows. File an Infra Jira ticket if you need to have one added
to the list.
GHA integrates with nightlies.apache.org, Dockerhub, Artifactory, Jenkins and more via credentials supplied as GitHub Secrets.
#### Access control
+
All Committers have access to GHA and their workflows via `commit` using their LDAP credentials.
#### More information
+
In addition to the official GitHub documentation, Infra maintains:
- [GitHub Actions and Secrets](github-actions-secrets.html), for handling credentials in workflows.
@@ -100,12 +111,15 @@ In addition to the official GitHub documentation, Infra maintains:
The folks at Jfrog provide us an instance of Artifactory for all ASF projects to use. Projects are free to publish debs, rpms, Helm Charts and more. Use a Jira ticket to ask Infra to set up the project's initial repository type.
#### Access Control
+
Access is via LDAP credentials. Infra needs to set up the project's initial repository/group access.
#### Integrations
+
Many possibilities here for upload/download via the use of a PAT token.
#### More information
+
A Confluence wiki page will soon contain some more Artifactory information.
Nexus
@@ -113,16 +127,19 @@ A repository.apache.org , maintained by the Maven community in conjunction with people from Sonatype.
#### Access control
+
The instance has committer-only access to push to staging and to snapshots via their LDAP credentials, and promotion from staging to release. Once released, the artifacts get synced over to Maven Central.
Snapshots and staged artifacts do not get synced.
#### Integrations
+
Pushing snapshots can be done via GHA, Buildbot and Jenkins.
Experimental signing and push to Staging (in readiness for a manual promotion to release) is being tested.
#### More information
+
See Publishing Maven artifacts.
Nightlies
@@ -133,6 +150,7 @@ Infra runs a server at n
The ASF has an 'apache' account at DockerHub for all projects to use.
#### Access control
+
Committers need to sign up for a personal account, then create a Jira ticket asking Infra to set up their access. The ticket should state
- dockerhub_id : asf_id
@@ -143,6 +161,7 @@ Committers need to sign up for a personal account, then create a Jira ticket ask
Infra adds DockerHub user IDs to a project 'team', which has read/write access to the project repositories.
#### Integrations
+
The ASF has tokens/credentials in GHA, Jenkins and Buildbot for projects to use when pushing to Dockerhub using a role account. If you want to make use of this option, open a Jira ticket for Infra, to request they enable it for your project's repository.
#### More information
@@ -159,11 +178,14 @@ More information is available at the [Gradle page](gradle.html).
The ASF has an 'apache' account at sonarcloud.io where projects can have their code analyzed.
#### Access control
+
Committers must log in to Sonarcloud with their GitHub ID. In addition you must have your ASF account and your GitHub accounts linked so that you then
appear as a member of the ASF organization on GitHub. That is how Sonarcloud identifies you as belonging to the 'apache' organization on their system.
#### Integrations
+
The ASF has auth tokens available under a role account for use via GHA and Jenkins.
#### More information
+
SonarCloud for ASF projects
diff --git a/content/pages/code-signing-use.md b/content/pages/code-signing-use.md
index 4d51a986c..09a1c94d8 100644
--- a/content/pages/code-signing-use.md
+++ b/content/pages/code-signing-use.md
@@ -2,6 +2,7 @@ Title: Using the ssl.com eSigner code signing service
license: https://www.apache.org/licenses/LICENSE-2.0
## Transition to ssl.com
+
The ASF used Symantec's Secure App Service to provide Windows and JAR code signing functionality from 2014 to 2019 and DigiCert ONE from 2019 to 2024.
In 2024 the ASF moved to the ssl.com eSigner service.
All new signing must be via the ssl.com eSigner service.
@@ -9,8 +10,9 @@ All new signing must be via the ssl.com eSigner service.
If you require assistance migrating to the ssl.com eSigner service, please open an INFRA Jira ticket and select code signing as the component.
## ssl.com eSigner
+
ssl.com's eSigner service supports a range of signing tools and formats.
-For the full details see the [eSigner documentation](https://www.ssl.com/guide/remote-ev-code-signing-with-esigner).
+For the full details see the [eSigner documentation](https://www.ssl.com/guide/remote-ev-code-signing-with-esigner).
Whichever signing option you choose, you will need to complete four steps:
1. Obtain an ssl.com account
@@ -58,11 +60,10 @@ To sign Windows binaries with the ASF code signing certificate using signtool.ex
There are two configuration options for eSigner CKA: manual code signing and automated code signing.
For manual code signing you must configure an authenticator app for 2FA for eSigner using the QR code and you will be required to provide your ssl.com username and password along with a OTP from your authenticator app every time you sign a file.
-For automated code signing you create a local file that contains you ssl.com username and password along with the 2FA secret code (not the PIN) and code signing will not require any additional input when you sign a file.
+For automated code signing you create a local file that contains you ssl.com username and password along with the 2FA secret code (not the PIN) and code signing will not require any additional input when you sign a file.
The eSigner documentation provides step by step instructions on configuring both [manual code signing](https://www.ssl.com/how-to/automate-ev-code-signing-with-signtool-or-certutil-esigner/#manual-code-signing) and [automated code signing](https://www.ssl.com/how-to/automate-ev-code-signing-with-signtool-or-certutil-esigner/#automated-code-signing).
-
#### Linux integration
1. TBD.
@@ -71,7 +72,6 @@ The eSigner documentation provides step by step instructions on configuring both
1. TBD
-
### Step 4: Configure your chosen signing tool
#### Signing on Windows binaries on Windows or Linux with JSign 4.0+ Ant task
diff --git a/content/pages/committer-email.md b/content/pages/committer-email.md
index 4abf8391e..87bce28bf 100644
--- a/content/pages/committer-email.md
+++ b/content/pages/committer-email.md
@@ -7,7 +7,7 @@ You cannot work **directly** with your Apache email address. You must set up **f
## Configuring your Apache email address ##
-When Infra creates your committer account, it sets the forwarding email address, or alias, to the address you provided in the account request and, typically, in the Independent Contributor Licensing Agreement (ICLA) you provided. Keep your forwarding address (or addresses) up to date.
+When Infra creates your committer account, it sets the forwarding email address, or alias, to the address you provided in the account request and, typically, in the Independent Contributor Licensing Agreement (ICLA) you provided. Keep your forwarding address (or addresses) up to date.
To review and update your forwarding addresses:
@@ -33,7 +33,6 @@ The following Microsoft domains are all affected (as of September 2021):
- live.com
- live.cn
-
### Registering an email alias ###
To register an email alias, you can:
@@ -41,18 +40,16 @@ To register an email alias, you can:
- Use the Selfserve app.
- Use Whimsy. Double-click the green "Email addresses (alt)" label.
-You can register multiple email aliases with your committer account. Apache inspects registered e-mail aliases when you subscribe to a restricted mailing list with an email other than your apache.org e-mail address. If you are allowed to subscribe to a restricted Apache mailing list and use an address other than your Apache email address, the Apache system approves the request if you have registered the email as one of your aliases.
+You can register multiple email aliases with your committer account. Apache inspects registered e-mail aliases when you subscribe to a restricted mailing list with an email other than your apache.org e-mail address. If you are allowed to subscribe to a restricted Apache mailing list and use an address other than your Apache email address, the Apache system approves the request if you have registered the email as one of your aliases.
### Sending email from your Apache address ###
Since you can't use your Apache mailbox directly, send email using your apache.org email address from the committer mail-relay service. Configure this in your email environment:
-``Server: mail-relay.apache.org
-Port: 587 (STARTTLS), 465 (SSL)
+``Server: mail-relay.apache.org
+Port: 587 (STARTTLS), 465 (SSL)
User/Pass: {Your LDAP credentials}``
Your email provider may have a simple form for this in its "Settings" area.
Note: If you are using Gmail with your apache.org email address, there is a way to configure it to take advantage of this service. See Gmail's feature to allow outbound mail from your apache.org address to be directed to the mail-relay service, instead of to a Gmail server, for delivery.
-
-
diff --git a/content/pages/committer-outreach.md b/content/pages/committer-outreach.md
index 44be69f98..90978e928 100644
--- a/content/pages/committer-outreach.md
+++ b/content/pages/committer-outreach.md
@@ -2,6 +2,7 @@ Title: Policy for Outreach to Committers
license: https://www.apache.org/licenses/LICENSE-2.0
# Outreach
+
There are many situations where the Foundation, or groups within,
want to reach out to the many Committers who volunteer their time
to our many efforts.
@@ -9,7 +10,6 @@ to our many efforts.
This policy covers all
channels for reaching the Foundation's Committers.
-
# Coverage
- For general communications, it is easiest to reach Committers via the `committers@`
diff --git a/content/pages/committers.md b/content/pages/committers.md
index c2bd30707..7568a22c1 100644
--- a/content/pages/committers.md
+++ b/content/pages/committers.md
@@ -17,7 +17,6 @@ If you are not an Apache committer, but wish to become one, see Legal and organizational
-
General
What is Community Over Code?
diff --git a/content/pages/contact.md b/content/pages/contact.md
index 1a7ec74cd..1fe6285c4 100644
--- a/content/pages/contact.md
+++ b/content/pages/contact.md
@@ -1,15 +1,18 @@
Title: Contact the Infrastructure Team
license: https://www.apache.org/licenses/LICENSE-2.0
-
### Request a change to the main ASF website
+
The Marketing and Publicity (M&P) committee is responsible for the main ASF website. The source for the website is at
github.com/apache/www-site. You can create an Issue there to state what you think should change, and what you propose the change to be.
### Request a change to the Infrastructure website
+
The source for this website is at
github.com/apache/infrastructure-website. You can create an Issue there to state what you think should change, and what you propose the change to be.
### Email lists
+
Infra monitors and participates in these email addresses:
+
- `users@infra.apache.org` is for general infrastructure discussions and suggestions, and for questions related to ASF infrastructure and the Infra team that do **not** rise to the level of a Jira ticket; so if your question requires guidance or action by Infra, please open a Jira ticket. See the `security@infra` note below if your problem relates to your ASF account in a way that prevents you from opening a Jira ticket. Only committers and ASF members can subscribe to the list.
- `private@infra.apache.org` is for communications that may involve PII, personnel issues, or other information that should not be widely shared. Only ASF Members and Board Members can subscribe to the list.
- Use `security@infra.apache.org` to report **infrastructure-related** security issues (you cannot subscribe to this list) or if your problem prevents you from opening a Jira ticket. See the third entry on
Contacting Infra if you are reporting a security issue specific to an ASF project or a project's product.
@@ -18,16 +21,21 @@ Infra monitors and participates in these email addresses:
In the past there was the `infrastructure@apache.org` mailing list. This address is no longer in use.
### You think your IP address has been blocked
+
If you cannot access one or more ASF repositories or services, your IP address may have been blocked. Before contacting Infra, review
Abuse and Connectivity Issues at the ASF (ABC). The page lists the common overuse (or abuse) issues that affect our site's work and cause an automatic IP address block, and recommends steps to get such a block removed. ABC also provides a channel to contact Infra if you need more information than the page provides.
+
### Chat
+
Join us on [Slack](https://the-asf.slack.com/) in the #asfinfra channel for direct messaging!
### Request resources/tasks/projects
-Please create a [Jira](https://issues.apache.org/jira/) ticket for your request.
+
+Please create a [Jira](https://issues.apache.org/jira/) ticket for your request.
Review the [guidelines for creating a Jira ticket](jira-guidelines).
### Suggest a service, or an enhancement to an existing service
+
Visit the
Infra suggestion box.
### What we need to know ###
@@ -37,6 +45,7 @@ Here's a [guide to what to tell us](infra-contact.html) so we can respond to you
### In case of emergency ###
If there is an absolutely urgent problem that must be handled **at once**, such as a malicious hacker having an active root through shell on `archive.apache.org`, members of the ASF community can follow this escalation path:
+
1. (anyone) Send an email to `security@infra` describing the issue. If you get no response within fifteen minutes...
2. (anyone who has a presence on ASF Slack) Create a message on the `#asfinfra` channel in the Slack Apache space (link is at the top of the page). If you get no response within ten minutes...
3. (anyone with an ASF Jira account) Open a Jira ticket (link is higher in the page) for INFRA, with a priority of **blocker**.
diff --git a/content/pages/content-moderation.md b/content/pages/content-moderation.md
index 2687ca902..0722d8393 100644
--- a/content/pages/content-moderation.md
+++ b/content/pages/content-moderation.md
@@ -1,7 +1,7 @@
Title: Content Moderation Policies
license: https://www.apache.org/licenses/LICENSE-2.0
-This page lists the most common questions and answers surrounding content moderation
+This page lists the most common questions and answers surrounding content moderation
policies at ASF Infrastructure, including, but not limited to:
- Data Privacy (GDPR, CCPA, CPPA/PIPEDA, etc.)
@@ -13,23 +13,24 @@ The content the Infrastructure team can moderate includes text on ASF web pages,
See also the guidelines for
mailing list moderation.
## Personal Data Privacy Requests
-Requests regarding exposure of PII (Personal Identifiable Information) **MUST** be sent to our
-Data Privacy Officer at `privacy@apache.org`. For more information on personal data privacy,
+
+Requests regarding exposure of PII (Personal Identifiable Information) **MUST** be sent to our
+Data Privacy Officer at `privacy@apache.org`. For more information on personal data privacy,
see https://privacy.apache.org/.
## Accidental exposure of credentials or company-sensitive data
-**TL;DR:** If you or your company experience accidental exposure of sensitive data or credentials in one of the types of content listed above,
+**TL;DR:** If you or your company experience accidental exposure of sensitive data or credentials in one of the types of content listed above,
you should always assume that the data is now public, and immediately invalidate those credentials.
-Depending on the context and circumstances of your request, we _may_ be able to remove the
+Depending on the context and circumstances of your request, we _may_ be able to remove the
following items:
- Specific emails from our mailing list archives*
- Public comments on PRs/issues*
- Web pages or packages with compromised data
-`*`Removing emails from public archives is not likely to be approved, as propagation of email to multiple hosts and locations makes it
+`*`Removing emails from public archives is not likely to be approved, as propagation of email to multiple hosts and locations makes it
virtually impossible to enact.
We are **not** able to, and will not spend time with the following:
@@ -43,7 +44,7 @@ If you are a **mailing list moderator**, see this
this guidance on possible spam.
+ - Review
this guidance on possible spam.
- If you still have an issue, report it to `users@infra.apache.org`.
If you seem to be receiving spam from an ASF email account, report the issue to `abuse@infra.apache.org`.
diff --git a/content/pages/contributors.md b/content/pages/contributors.md
index bd9e1a3d2..324dc1aa8 100644
--- a/content/pages/contributors.md
+++ b/content/pages/contributors.md
@@ -15,7 +15,6 @@ More information is available in the [guide](new-committers-guide.html) and [FAQ
-
Source code repositories
-
Providing feedback to Apache projects
-
Community Development is here to help!
Apache values "Community over code", and is full of volunteers who want to help you. Guideposts and helpful information and mentors for newcomers to Apache can be found at
Community Development.
@@ -53,7 +52,7 @@ projects have different preferences about how you should submit feedback. Check
A vital part of the ASF projects are the project mailing lists. Most projects have a users' list named `users@${project}.apache.org` or `user@${project}.apache.org`. Subscribe to it by sending an e-mail to `users-subscribe@${project}.apache.org`, then follow the instructions. We have many
tips on asking questions in a way that gets answers.
-Tell the developer and user community about your use of the software product, your experiences in setting it up, issues you encountered, and any general feedback you may have. Don't forget to include any positive observations that will show you appreciate the effort the team is making. Your story will likely be very welcome if you write it clearly, in a friendly tone, and Read The Manual before asking for answers that you could find there. You'll probably receive enthusiastic responses from some of the developers and other users (although responses may not appear right away: everybody is busy).
+Tell the developer and user community about your use of the software product, your experiences in setting it up, issues you encountered, and any general feedback you may have. Don't forget to include any positive observations that will show you appreciate the effort the team is making. Your story will likely be very welcome if you write it clearly, in a friendly tone, and Read The Manual before asking for answers that you could find there. You'll probably receive enthusiastic responses from some of the developers and other users (although responses may not appear right away: everybody is busy).
If you found specific issues or have an idea about how things should work, the project may ask you to submit a detailed bug report or patch to improve things.
@@ -74,7 +73,7 @@ A patch is a computer-generated file that describes differences between differen
See [How to submit a patch for project code](patch.html) for further details.
How to suggest changes to project websites
-
One of the simplest ways to contribute to Apache projects is by suggesting improvements to the project's website or product documentation. If something doesn't make
+
One of the simplest ways to contribute to Apache projects is by suggesting improvements to the project's website or product documentation. If something doesn't make
sense to you, or if you have a better way to explain something, send the project a patch!
Projects use many different content management systems for their websites. Some systems have a web-based editor that makes it relatively simple to provide improvements, once you have access rights. Ask the PMC for such rights, explaining how you would like to help, or simply provide your suggestions in an email.
diff --git a/content/pages/crypto.md b/content/pages/crypto.md
index 6f3b482c4..3147c289b 100644
--- a/content/pages/crypto.md
+++ b/content/pages/crypto.md
@@ -5,7 +5,7 @@ This page provides PMC members with the information they need to ensure U.S. exp
**This page is not intended for users of Apache products**. Users should consult the export control status of our products.
-**Note**: The regulations covering US export control laws for encryption are continuously changing, and the latest modification of this page, to describe the current state of regulations, was May 24, 2019.
+**Note**: The regulations covering US export control laws for encryption are continuously changing, and the latest modification of this page, to describe the current state of regulations, was May 24, 2019.
This page describes the process which should be continued until the Apache VP Legal Affairs approves an updated version.
diff --git a/content/pages/csp.md b/content/pages/csp.md
index 200de8f76..2e4e43280 100644
--- a/content/pages/csp.md
+++ b/content/pages/csp.md
@@ -1,7 +1,7 @@
Title: Content Security Policy for project websites
license: https://www.apache.org/licenses/LICENSE-2.0
-This policy became effective **March 1, 2025**.
+This policy became effective **March 1, 2025**.
For your project's website:
@@ -9,7 +9,7 @@ For your project's website:
- External resources, such as videos or PDFs, from providers with which we do not have a Data Processing Agreement (DPA) are **not allowed** to be embedded in the project's website. If you have a DPA request or inquiry, contact `privacy@apache.org`. They can also tell you if a provider whose content you want to embed in your website has already signed a DPA.
- Links that lead to downloadable external resources **are allowed** if the site visitor must give explicit consent in order to see or use the content (such as by clicking a button or a link). This consent cannot be opt-out, and there must be a clear way for the visitor to retract consent at a later time.
-This policy brings project websites into alignment with the security and privacy parameters defined by the VP, Data Privacy and as requested by The ASF Security Committee. We ask that projects do not circumvent them without express permission from our VP, Data Privacy.
+This policy brings project websites into alignment with the security and privacy parameters defined by the VP, Data Privacy and as requested by The ASF Security Committee. We ask that projects do not circumvent them without express permission from our VP, Data Privacy.
The instructions on this page can help you update the CSP policy for your project's website.
diff --git a/content/pages/cwiki.md b/content/pages/cwiki.md
index 50e735ce7..69b0b20a0 100644
--- a/content/pages/cwiki.md
+++ b/content/pages/cwiki.md
@@ -31,19 +31,19 @@ When Infra creates the space, it sets up a $project-committer group (or equivale
- You can create user groups in addition to the standard groups:
Watching a cwiki page
-Cwiki users, including those not involved in a project, can 'watch' pages in a project's space to receive update notices when information on that page changes.
+Cwiki users, including those not involved in a project, can 'watch' pages in a project's space to receive update notices when information on that page changes.
-To watch a page:
+To watch a page:
- Log in in to the ASF cwiki.
- Locate the page you want to watch.
- - Click **Watch** on the top menu bar.
+ - Click **Watch** on the top menu bar.
To stop watching a page:
- Log in in to the ASF cwiki.
- Click your profile icon at the top right of the wiki page.
- - From the dropdown menu that appears, select **Watches**.
+ - From the dropdown menu that appears, select **Watches**.
- The list of pages you are watching appears, and you can remove those you no longer want to watch.
Infra can help you set up a role account that can watch for any changes in your space and send notices about them to an email list. This can lead to a large amount of traffic, so you can choose a digest option that provides a daily summary of changes.
diff --git a/content/pages/digicert-use.md b/content/pages/digicert-use.md
index d3afc8763..97cec737d 100644
--- a/content/pages/digicert-use.md
+++ b/content/pages/digicert-use.md
@@ -2,11 +2,13 @@ Title: Using the Digicert code signing service
license: https://www.apache.org/licenses/LICENSE-2.0
## Transition to DigiCert
+
The ASF used Symantec's Secure App Service to provide Windows and JAR code signing functionality from 2014 to 2019. In 2019 the ASF moved from the Symantec service to DigiCert ONE. All new signing must be via the DigiCert service.
If you require assistance migrating to the DigiCert service, please open an
INFRA Jira ticket and select code signing as the component.
## DigiCert Secure Software
+
DigiCert Secure Software supports a range of signing tools and formats. For the full list see the [client user guide](https://digicert.github.io/snowbird-doc/#/administration-guides/secure-software-manager/index). Whichever signing option you choose, you will need to complete four steps:
1. Obtain a DigiCert ONE account
@@ -20,7 +22,7 @@ DigiCert Secure Software supports a range of signing tools and formats. For the
Adding a new PMC or a new user to an existing PMC needs to be performed by the infrastructure team. Please open an
INFRA Jira ticket and select code signing as the component.
-When the infrastructure team creates your account you will receive a password reset email. The link in that email is only valid for 12 hours. If you are unable to complete the creation of your account in that time you can request a new password reset email by going to
DigiCert ONE and clicking the password reset link. Your username is your ASF email address. You should then receive a new password reset email you can use to set your password.
+When the infrastructure team creates your account you will receive a password reset email. The link in that email is only valid for 12 hours. If you are unable to complete the creation of your account in that time you can request a new password reset email by going to
DigiCert ONE and clicking the password reset link. Your username is your ASF email address. You should then receive a new password reset email you can use to set your password.
You also need to configure your OTP token. Officially, only Google authenticator is supported but any similar tool should also work.
@@ -66,7 +68,6 @@ If you use JSign 4.0, you can skip this step.
The DigiCert ONE client tools are not available for MacOS. Use JSign 4.0 so you can skip this step.
-
### Step 4: Configure your chosen signing tool
#### Signing Windows binaries on Windows using signtool.exe
@@ -87,7 +88,6 @@ To sign a file with SHA-256 rather than SHA-512 use `... /fd sha256...` rather t
alias="
"
tsaurl="http://timestamp.digicert.com"
-
#### Signing Windows binaries on Linux with JSign 4.0+
1. Download jsign `wget https://github.com/ebourg/jsign/releases/download/4.0/jsign_4.0_all.deb`.
diff --git a/content/pages/doc.md b/content/pages/doc.md
index 17de6657a..72ea953ad 100644
--- a/content/pages/doc.md
+++ b/content/pages/doc.md
@@ -19,6 +19,7 @@ Infra provides a library of resources that is constantly evolving to reflect the
### PMC resources ###
#### Source code ####
+
- [Project source code repositories](version-control.html)
- [Repositories for Maven releases and snapshots](repository-faq.html)
- .asf.yaml features for Git repositories
@@ -28,6 +29,7 @@ Infra provides a library of resources that is constantly evolving to reflect the
- [Dependabot for dependency management](dependabot.html)
#### Build and release ####
+
- [Release creation process](release-publishing.html)
- Creating optional [Maven releases](publishing-maven-artifacts.html)
- [Signing releases](release-signing.html)
@@ -40,6 +42,7 @@ Infra provides a library of resources that is constantly evolving to reflect the
- [Deploying a self-hosted runner](self-hosted-runners.html)
#### Website, blog and wiki ####
+
- [Project website guidelines](website-guidelines.html). **Note**: No new projects can use the Apache CMS, which has reached end-of-life. Any projects still using the CMS must migrate to another resource to maintain their websites. Projects that have not migrated their site may find that they are no longer able to update it.
- Here is how one project did the migration.
- A [project site template](asf-pelican.html) written in Pelican is available to smooth migration away from the CMS, and to support creation of new project sites.
@@ -48,11 +51,11 @@ Infra provides a library of resources that is constantly evolving to reflect the
- Managing permissions on your project's Confluence space.
#### Other ####
+
- [Managing project committers](managing-committers.html)
- [Virtual machine for your project](vm-policy.html)
- [Mailing list moderation](mailing-list-moderation.html)
-
### Committer resources ###
- [New committer's guide](new-committers-guide.html)
diff --git a/content/pages/docker-hub-policy.md b/content/pages/docker-hub-policy.md
index fb234944d..83b6dac91 100644
--- a/content/pages/docker-hub-policy.md
+++ b/content/pages/docker-hub-policy.md
@@ -1,8 +1,7 @@
Title: Docker Hub use policy
license: https://www.apache.org/licenses/LICENSE-2.0
-
-**Docker** is an open source containerization platform. Developers can package applications in **containers**, components combining application source code with the operating system (OS) libraries and dependencies required to run that code in any environment.
+**Docker** is an open source containerization platform. Developers can package applications in **containers**, components combining application source code with the operating system (OS) libraries and dependencies required to run that code in any environment.
Docker Hub is the world's largest public registry for hosting Docker images. It is the default download source when you are working with Docker.
diff --git a/content/pages/email_lists.md b/content/pages/email_lists.md
index 165c2fc66..1bdec22a5 100644
--- a/content/pages/email_lists.md
+++ b/content/pages/email_lists.md
@@ -7,7 +7,7 @@ In `lists.apache.org` you can browse, search for, and read emails on mailing lis
- If you have logged in:
- if you are an ASF Member, you can access all ASF mailing lists.
- if you are not an ASF Member but are on the PMC of a project, you can access, in addition to the public lists, the private lists of that project.
-
+
If you have logged in, and depending on your status as noted above, you can respond to email threads and create new messages in the email list you are currently viewing. The user interface does not have controls for these actions; instead, there are shortcut keys:
- `H`: Display the help window.
@@ -20,6 +20,7 @@ If you have logged in, and depending on your status as noted above, you can resp
- `left arrow`: Move up the current list to display the next-newer bunch of emails.
## Searching
+
To display your search options, click the down-arrow at the right of the `search` field.
- Opt to search in
@@ -34,7 +35,8 @@ To display your search options, click the down-arrow at the right of the `search
- a keyword within the body of the email
## If the email you sent does not appear
-The email system does not use what is in the `From` field; instead it looks at the envelope `sender`, so it is important to make sure you are using an account that appears in your LDAP record when you compose email intended for an ASF list.
+
+The email system does not use what is in the `From` field; instead it looks at the envelope `sender`, so it is important to make sure you are using an account that appears in your LDAP record when you compose email intended for an ASF list.
You can review and update your LDAP record at selfserve.apache.org/identity.html.
diff --git a/content/pages/gfm.md b/content/pages/gfm.md
index c61e6dd25..aa2450c13 100644
--- a/content/pages/gfm.md
+++ b/content/pages/gfm.md
@@ -25,7 +25,7 @@ Sites built with the ASF-Pelican template use a version of [cmark-gfm][1] by [Gi
- [email][11]
- [Disallowed html][12] the tagfilter extension disables certain HTML tags. The asfgenid plugin reenables `script`, `style`, and `iframe` HTML tags.
-
+
- [Examples][13]
- ID and Class annotations
@@ -64,7 +64,6 @@ If you are moving a project site of the Apache CMS and will be using the ASF-Pel
- Only one {#id} or {.class} annotation is allowed on a tag.
- {.class} annotations are seldom used.
-
[1]: https://github.com/github/cmark-gfm
[2]: https://github.blog/2017-03-14-a-formal-spec-for-github-markdown/
[3]: https://guides.github.com/features/mastering-markdown/
@@ -78,4 +77,3 @@ If you are moving a project site of the Apache CMS and will be using the ASF-Pel
[11]: https://github.github.com/gfm/#extended-email-autolink
[12]: https://github.github.com/gfm/#disallowed-raw-html-extension-
[13]: https://sindresorhus.com/github-markdown-css/
-
diff --git a/content/pages/git-primer.md b/content/pages/git-primer.md
index c9ce240ab..e122ee560 100644
--- a/content/pages/git-primer.md
+++ b/content/pages/git-primer.md
@@ -26,7 +26,7 @@ This document is chiefly about the read/write repositories.
Public and private repositories
-Projects can set up as many **public repositories** as their development work requires, using SelfServe.
+Projects can set up as many **public repositories** as their development work requires, using SelfServe.
Each project can also have a **private repository** space for working on sensitive issues such as:
@@ -40,7 +40,7 @@ In particular, the resources available to run **GitHub Actions** against private
See the [Project Code Repository Policy](project-repo-policy.html) for further details.
-Open a Jira ticket for Infra to request a private repository.
+Open a Jira ticket for Infra to request a private repository.
Repository checkout
@@ -55,7 +55,6 @@ https://gitbox.apache.org/repos/asf/reponame.git
- **Committers**: `$ git clone https://gitbox.apache.org/repos/asf/reponame.git`
- **Non-Committers**: `$ git clone http://gitbox.apache.org/repos/asf/reponame.git`
-
Using .asf.yaml
`.asf.yaml` is a branch-specific YAML configuration file that a project may create (using a text editor of your choice) and put in the root of a Git repository to control features such as
@@ -125,7 +124,7 @@ Instead of setting up a `~/.netrc` file you need to:
In general, you should normalize line endings in the Git repository and set them to be platform specific on checkout.
- - The `msysgit` installer on **Windows** will prompt you to set the `core.autocrlf` setting to `true` by default.
+ - The `msysgit` installer on **Windows** will prompt you to set the `core.autocrlf` setting to `true` by default.
- On **Mac OS X or Linux**, use this setting: `$ git config --global core.autocrlf input`
Further details and attributes for handling line endings differently per file type are available at Configuring Git to handle line endings.
diff --git a/content/pages/git.md b/content/pages/git.md
index f56cf4a90..147041e60 100644
--- a/content/pages/git.md
+++ b/content/pages/git.md
@@ -3,7 +3,6 @@ license: https://www.apache.org/licenses/LICENSE-2.0
The Apache Software Foundation projects use Subversion (SVN) or Git for [version control](version-control.html) of their software and documentation assets. This page is about _read-only_ Git mirrors of Apache SVN codebases. [Writable Git repositories](project-repo-policy.html) are also available.
-
Read-only Git mirrors
We maintain read-only Git mirrors of many Apache codebases at https://git.apache.org/. These mirrors contain the full version histories (including all branches and tags) of the mirrored codebases and are updated in near real time based on the latest svn commits.
@@ -40,6 +39,6 @@ Once you're ready to share your changes with the rest of the project team, you c
`git format-patch origin/trunk`
-The sooner you share your work, the better.
+The sooner you share your work, the better.
You can repeat the steps of this workflow as often as you like, producing more patches to be attached to the issue tracker. Once some of your patches are accepted and committed to svn, you can rebase your work against the latest trunk. Alternatively, if you're asked to make some changes, you can go back to the original Git commit and modify it until the project team accepts your changes.
diff --git a/content/pages/github-actions-policy.md b/content/pages/github-actions-policy.md
index bc80964c3..5607f57fe 100644
--- a/content/pages/github-actions-policy.md
+++ b/content/pages/github-actions-policy.md
@@ -8,13 +8,16 @@ For details on the use of requirement level terms, see the GitHub Actions Security.
### Dependabot
+
All repositories using GitHub Actions **must** have automatic dependency management in place using one of these tools:
+
* GitHub Dependabot for the `github-actions` ecosystem
* Forking Renovate using the GitHub actions manager
See the [Dependabot](dependabot.html) page for how to configure it, including [grouping security updates](dependabot.html#group-security-updates) so that a burst of advisories does not turn into a burst of CI runs.
-
+
### Resource use
+
Due to misconfigurations in their builds, some projects have been using unsupportable numbers of [GitHub Actions](github-actions-secrets.html). As part of fixing this situation, Infra has established a policy for GitHub Actions use:
- All workflows **MUST** have a job concurrency level less than or equal to 20. This means a workflow cannot have more than 20 jobs running at the same time across all matrices.
@@ -118,7 +121,7 @@ Automated services **MUST NOT** push data to a repository or branch that is subj
### Non-committer contributors and GitHub Actions
-GitHub provides an option to allow a non-committer contributor to use GitHub Actions if a previous pull request by that person has been approved. This raises security concerns, and could cause issues with overall use of GitHub Actions.
+GitHub provides an option to allow a non-committer contributor to use GitHub Actions if a previous pull request by that person has been approved. This raises security concerns, and could cause issues with overall use of GitHub Actions.
The default for this option is to “always require approval for external contributors”.
@@ -129,4 +132,5 @@ Projects that have a strong desire to use the “only require approval first tim
* A link to a mailing list discussion showing a consensus vote by the PMC noting, that they affirm that they will actively monitor their workflows for abuse, and that they will act accordingly if and when abuse is detected. Failure to carry out such monitoring and addressing of abuse may result in the workflow settings being switched back to "always require approval for external contributors".
### Details on submitting a GitHub Action for approval
+
The README file at github.com/apache/infrastructure-actions has a detailed guide for how to add or update a GitHub Action.
diff --git a/content/pages/github-actions-secrets.md b/content/pages/github-actions-secrets.md
index bec4f1ca4..88d4041f0 100644
--- a/content/pages/github-actions-secrets.md
+++ b/content/pages/github-actions-secrets.md
@@ -3,7 +3,7 @@ license: https://www.apache.org/licenses/LICENSE-2.0
**GitHub Actions** help you automate your software development workflows in the same place you store code and collaborate on pull requests and issues. You can write individual tasks, called actions, and combine them to create a custom workflow. Workflows are custom automated processes that you can set up in your repository to build, test, package, release, or deploy any code project on GitHub.
-***A note on testing***: Some projects would like to use GitHub Actions for complex processes, such as automating their tests of software builds.
+***A note on testing***: Some projects would like to use GitHub Actions for complex processes, such as automating their tests of software builds.
The _time_ runners are in use (measured in minutes) is unlimited for public repositories so how long a test takes isn't the issue. The issue is tying up limited 'runners' (nodes) while those minutes are running. Apache has a limited number of runners for over 1200 repositories, so the concern would be how many runners the test requires, which are then unavailable to other projects for the duration of the test.
@@ -53,7 +53,7 @@ To extend the validity of the token, adjust the `develocity-token-expiry` action
required: false
```
-Further information is at these pages:
+Further information is at these pages:
- Managing Develocity access keys
- Short-lived access tokens
diff --git a/content/pages/github-pages.md b/content/pages/github-pages.md
index 37477b5ca..ae93a45f3 100644
--- a/content/pages/github-pages.md
+++ b/content/pages/github-pages.md
@@ -1,7 +1,7 @@
Title: GitHub Pages for projects
license: https://www.apache.org/licenses/LICENSE-2.0
-Projects with a Git repository can use GitHub Pages (gh-pages) to host and deploy the project website.
+Projects with a Git repository can use GitHub Pages (gh-pages) to host and deploy the project website.
### Using gh-pages for staging a website, product preview, or documentation
diff --git a/content/pages/github-roles.md b/content/pages/github-roles.md
index c4a395290..f31c47d83 100644
--- a/content/pages/github-roles.md
+++ b/content/pages/github-roles.md
@@ -11,9 +11,9 @@ See Permission levels for repositories.
-
diff --git a/content/pages/glossary.md b/content/pages/glossary.md
index 15667d8fe..bbcac32e0 100644
--- a/content/pages/glossary.md
+++ b/content/pages/glossary.md
@@ -1,7 +1,6 @@
Title: Glossary
license: https://www.apache.org/licenses/LICENSE-2.0
-
_This page will hold definitions of frequently-used technical terms._
- **checksum** - definition coming
diff --git a/content/pages/gradle.md b/content/pages/gradle.md
index c1a1e50ed..2984e770a 100644
--- a/content/pages/gradle.md
+++ b/content/pages/gradle.md
@@ -5,14 +5,16 @@ Gradle, a longtime a leader in developer productivity and build analytics, has b
Gradle provides **Develocity** (formerely Gradle Enterprise), a suite of acceleration and analytics technologies for CI/CD systems to help projects identify and analyze trends while optimizing build resources. The result is faster builds, with fewer failures,
-Develocity scans, ingests, and caches build data, which it then analyzes. It displays the results in an an easy-to-use interface where project members can identify bottlenecks and roadblocks. Projects can also leverage cached results to ensure that only changes in each new build are tested. This approach results in faster feedback and less use of build resources.
+Develocity scans, ingests, and caches build data, which it then analyzes. It displays the results in an an easy-to-use interface where project members can identify bottlenecks and roadblocks. Projects can also leverage cached results to ensure that only changes in each new build are tested. This approach results in faster feedback and less use of build resources.
### Integrating Develocity into project builds
-See Project Onboarding Instructions for Develocity.
+
+See Project Onboarding Instructions for Develocity.
If your project runs into difficulties or has questions, open a Jira ticket for Infra. If we can't help with your issue ourselves, we can draw on the ASF's community of Gradle users.
Once a project has integrated Develocity into their build process, scans of each new build are sent to the instance at develocity.apache.org. Project members can review the build scan dashboard for graphic analysis.
### Impact
+
We hope that, with increased insight into build processes, projects will see build time savings across all jobs, reducing queue times and driving down time spent building serially or dealing with build failures.
diff --git a/content/pages/hosting-external-agent.md b/content/pages/hosting-external-agent.md
index 147a1cf8b..49724f436 100644
--- a/content/pages/hosting-external-agent.md
+++ b/content/pages/hosting-external-agent.md
@@ -3,7 +3,8 @@ license: https://www.apache.org/licenses/LICENSE-2.0
Individuals and organizations can support the work of the ASF and its projects by hosting Jenkins or Buildbot agents on virtual machines in their own systems. Donors often provide this service to make available extra build resources for a project that needs more than Infra can easily provide.
-**Notes**
+**Notes**
+
- Ubuntu is a core supported OS at the ASF and we do not need any external hosting by individuals at this time.
- Organizations wanting to donate multiple VMs for Jenkins and/or Buildbot use should email `private@infra.apache.org` to start discussions.
@@ -12,9 +13,9 @@ Individuals and organizations can support the work of the ASF and its projects b
There are a few things you'll need to know and to adhere to.
- Keep up to date with security patches etc,, the obvious stuff; we may want to be added to root alias for security reporting etc.
- - Spec requirements:
+ - Spec requirements:
- minimum 16GB RAM
- - 500GB Hard disk
+ - 500GB Hard disk
- A permanent static IP address
- You must be an ASF Committer.
- You must subscribe to the `builds@a.o` email list.
diff --git a/content/pages/how-to-mirror.md b/content/pages/how-to-mirror.md
index 2a7606fd5..544c5b68a 100644
--- a/content/pages/how-to-mirror.md
+++ b/content/pages/how-to-mirror.md
@@ -3,7 +3,7 @@ license: https://www.apache.org/licenses/LICENSE-2.0
**NOTE - as of August, 2021, the ASF itself is not accepting further mirror site applications.**
-Organizations may wish to create a download mirror that includes the releases of most or all of the Apache Software Foundation's projects. You may mirror either the full distributions tree, or a reduced tree that excludes a few very resource-intensive (disk-wise and bandwidth-wise) projects (see Mirroring techniques).
+Organizations may wish to create a download mirror that includes the releases of most or all of the Apache Software Foundation's projects. You may mirror either the full distributions tree, or a reduced tree that excludes a few very resource-intensive (disk-wise and bandwidth-wise) projects (see Mirroring techniques).
Here is how to set up such a mirror.
@@ -22,7 +22,7 @@ Hosting a mirror has a few requirements:
- You should not trim or abridge the mirrored tree in any way.
- You should not modify the mirrored tree in any way. In particular, you should not alter or remove HEADER.html or README.html files. See below for adding information about the mirror host.
-We encourage you to
+We encourage you to
- do an **update-check** at least four times a day a day. You may sync a maximum of six times per day, but only if you have a slow or poor connection that causes timeouts.
- run the Apache HTTP Server version 2.2 or later and use the following configuration for your web mirror to allow all the features of our download site to function optimally:
@@ -93,7 +93,7 @@ Here is how to add information explaining who is hosting the private download mi
The contents of README.html appear near the bottom of your mirror's home page.
- - Only customize the home-page (top-level) README.html. Do not change any other README.html files.
+ - Only customize the home-page (top-level) README.html. Do not change any other README.html files.
- Don't omit the '/' in `"/README.html"`.
Please limit the contents of the README.html to something like:
@@ -110,7 +110,7 @@ If your mirror is not working properly, check the following:
- Page headers and footers display correctly.
- All top-level directories and files on the ASF mirror are present on your mirror.
- - Download a couple of files to check that the process works.
+ - Download a couple of files to check that the process works.
- Trying to download a missing file should generate a `404 Not Found` error. You can verify this by modifying one of the valid URLs that you tested above.
Verifying the download
diff --git a/content/pages/infra-contact.md b/content/pages/infra-contact.md
index 889381abb..cc9967037 100644
--- a/content/pages/infra-contact.md
+++ b/content/pages/infra-contact.md
@@ -11,17 +11,17 @@ That depends on your role and what you want to do. If this chart doesn't help, I
- | If you... | and want to... | then contact... | Notes |
+ If you... | and want to... | then contact... | Notes |
| are anyone |
- report a security vulnerability in a service that runs on apache.org infrastructure |
- security@infra.apache.org |
+ report a security vulnerability in a service that runs on apache.org infrastructure |
+ security@infra.apache.org |
You may also encrypt the email to this set of keys. For those using Linux, we have a shell script which might come in handy. See Infra Tools for more details. |
- | share sensitive information with Infra |
- root@apache.org |
+ share sensitive information with Infra |
+ root@apache.org |
See the Infra policy on sharing sensitive information. |
@@ -32,7 +32,7 @@ That depends on your role and what you want to do. If this chart doesn't help, I
| report that a service is down and status.apache.org doesn't show it |
Infra's Slack channel |
- Email to users@infra.apache.org is an acceptable alternative. |
+ Email to users@infra.apache.org is an acceptable alternative. |
| unsubscribe from a mailing list |
@@ -42,12 +42,12 @@ That depends on your role and what you want to do. If this chart doesn't help, I
| discuss something publicly with Infra, or ask Infra a question |
The #asfinfra Slack channel, or by taking part in a Roundtable (the end of each Roundtable session is an open-mic opportunity for your comments or questions). See https://infra.apache.org/roundtable.html.
- | Consider these semi-public forums which are not suitable for confidential information. |
+ Consider these semi-public forums which are not suitable for confidential information. |
| get your IP unblocked |
abuse@infra.apache.org |
- |
+ |
| edit the mail archives of a mailing list you posted to |
@@ -125,12 +125,11 @@ That depends on your role and what you want to do. If this chart doesn't help, I
-
What we need to know
- | If you ask us to... | we need to know... | Notes |
+ If you ask us to... | we need to know... | Notes |
| create a podling |
@@ -199,7 +198,7 @@ See the list of [Services and tools](https://infra.apache.org/services.html) Inf
Where should I submit my request?
-If there is a dedicated app, use it. If not, file a Jira ticket for Infra.
+If there is a dedicated app, use it. If not, file a Jira ticket for Infra.
Please review the tables above before filing a ticket - often you or someone in your PMC can effect the change without involving infra at all.
@@ -215,7 +214,6 @@ Please review the tables above before filing a ticket - often you or someone in
**Thanks**. Making requests following these guidelines might require a little effort, but saves time for all involved.
-
My issue got closed with a request to reopen it
The closed ticket may have a note indicating why we closed it. For instance, the ticket may have lacked information required to confirm or address the issue.
diff --git a/content/pages/infra-incubator.md b/content/pages/infra-incubator.md
index 9ffdfe8f4..d8ccc106f 100644
--- a/content/pages/infra-incubator.md
+++ b/content/pages/infra-incubator.md
@@ -55,14 +55,12 @@ Moving existing repositories into ASF version control generally requires a githu
If you wish to copy existing code without transferring GitHub stars, etc., your mentor can request **new repositories** for the project via SelfServe.
-
**Bug tracking**
-You can enable GitHub issues (and wikis) via our (.asf.yaml service, a configuration file that controls features such as notification schemes, website staging, GitHub settings, and Pelican builds. This is a per-repo feature.
+You can enable GitHub issues (and wikis) via our (.asf.yaml service, a configuration file that controls features such as notification schemes, website staging, GitHub settings, and Pelican builds. This is a per-repo feature.
The project can request a Jira instance for issue tracking via SelfServe.
-
**Confluence Wiki**
Every project can have a dedicated space on the Apache Confluence wiki. Project participants can use the space to develop documentation, share planning and process documents, and work collaboratively. They can opt to make some pages in their space available to the public. Request a Confluence wiki space for the project via SelfServe.
diff --git a/content/pages/infra-mail.md b/content/pages/infra-mail.md
index 6cc513fb3..754a13a76 100644
--- a/content/pages/infra-mail.md
+++ b/content/pages/infra-mail.md
@@ -1,7 +1,6 @@
Title: Apache Infrastructure mailing lists
license: https://www.apache.org/licenses/LICENSE-2.0
-
Participation in the Infra mailing lists is only available to ASF committers.
You can subscribe in the normal way. The moderators will verify that you are an ASF committer, so please either use your `@apache.org` address or its forwarding address. There are public archives for issues@ and site-dev@; all other infra@ lists are private. (We often call it "infra@" because that is less typing, but there is no such list.)
@@ -13,7 +12,7 @@ You can subscribe in the normal way. The moderators will verify that you are an
- `users@infra`: Infra uses the general discussion list to discuss issues concerning the operation of the Apache Software Foundation systems, and for committers to report problems or issues. This is not the address for questions about
the ASF or any of its projects. It is for communication between ASF committers only to support the infrastructure. Anyone may send mail to report problems with ASF systems, but check the status page before mailing to see whether Infra already knows about what you have noticed.
- `private@infra`: For the core infra@ team only. It focuses on the infrastructure team working directly on pressing issues. Infra moderates subscriptions, which are restricted to ASF members and current infra [volunteers](infra-volunteer.html). Only
-subscribers can post.
+subscribers can post.
- `commits@infra`: SVN commit messages for the ASF Infrastructure trunk, and Git commit messages for ASF Infra.
- `issues@infra`: Messages from the INFRA Issue Tracker. Only ASF committers and people invited by the infra@ team can join. To "post" to this list, file a Jira comment which Jira sends to the list.
- `site-cvs@`: Private lists for SVN commit messages for the ASF Infrastructure website.
diff --git a/content/pages/infra-news.md b/content/pages/infra-news.md
index 91478ff1a..644360f0a 100644
--- a/content/pages/infra-news.md
+++ b/content/pages/infra-news.md
@@ -11,4 +11,4 @@ license: https://www.apache.org/licenses/LICENSE-2.0
The Maven team is working on a resolution to this issue. Until the fix is available, they suggest **disabling parallel PUTs**.
-For details on disabling parallel PUTs, and what to do if you have already run into this problem in a build, see this article in the Infra blog: Parallel PUT problem in repository.apache.org with Apache Maven 3.9.12.
+For details on disabling parallel PUTs, and what to do if you have already run into this problem in a build, see this article in the Infra blog: Parallel PUT problem in repository.apache.org with Apache Maven 3.9.12.
diff --git a/content/pages/infra-reports.md b/content/pages/infra-reports.md
index 05d5c80df..3f0f905a8 100644
--- a/content/pages/infra-reports.md
+++ b/content/pages/infra-reports.md
@@ -3,7 +3,7 @@ license: https://www.apache.org/licenses/LICENSE-2.0
The dashboard, at infra-reports.apache.org, provides a collection of reports on the overall health and activity of the infrastructure at the ASF. These reports can be helpful in understanding the status of all the ASF 'under the hood' resources, and in assessing the resource cost of some activities, like build processes.
-Some of the reports are open to the public, while others are restricted to those who genuinely need them.
+Some of the reports are open to the public, while others are restricted to those who genuinely need them.
## Reports available to all
@@ -16,6 +16,6 @@ Some of the reports are open to the public, while others are restricted to those
- **Jira tickets**: Infra uses this dashboard to track resolution of Jira tickets related to infrastructure work. Gauges and charts cover how quickly issues are resolved and whether the number of open tickets for Jira is increasing or decreasing, and provides a drive-by view of all open Jira tickets.
- **Mail Transport Statistics**: This screen, for the Infrastructure team, gives a visualization of how the system is handling ASF and project email.
- **Real-time Download Stats**: On this screen, an ASF Member or Committer can select a project to which they belong and get a series of informative charts (over time, by country, by artifact) of downloads of the project's released artifacts.
- - **GitHub Actions Usage**: This screen displays the use of GitHub Actions for projects you belong to. The chart can be configured for project (if you belong to more than one), time range and other options.
+ - **GitHub Actions Usage**: This screen displays the use of GitHub Actions for projects you belong to. The chart can be configured for project (if you belong to more than one), time range and other options.
Send questions or suggestions about the dashboard to `users@infra.apache.org`.
diff --git a/content/pages/infra-volunteer.md b/content/pages/infra-volunteer.md
index d35c5452a..614077f2c 100644
--- a/content/pages/infra-volunteer.md
+++ b/content/pages/infra-volunteer.md
@@ -1,7 +1,6 @@
Title: Volunteering for Apache Infrastructure
license: https://www.apache.org/licenses/LICENSE-2.0
-
There are plenty of opportunities for you to help out with the small tasks Infra does every day to keep the ASF infrastructure alive. Some are self-explanatory or involve following the steps in an established checklist; others require a bit of knowledge of server technology. The best volunteers bring a willingness to learn and a good supply of patience in responding to questions from ASF committers and contributors.
There are some basic things you could do if you're going to help out with the ASF Infrastructure team. You probably do some or all of these tasks already in your ASF project.
@@ -17,4 +16,3 @@ There are some basic things you could do if you're going to help out with the AS
**Visit** this Wiki page for details about all the lovely infrastructure tasks waiting for volunteers.
**Come talk to us on [Slack](https://the-asf.slack.com/) in the #asfinfra channel!**
-
diff --git a/content/pages/jira-account-retention-policy.md b/content/pages/jira-account-retention-policy.md
index 926549c2a..5d0758296 100644
--- a/content/pages/jira-account-retention-policy.md
+++ b/content/pages/jira-account-retention-policy.md
@@ -8,6 +8,6 @@ As of April, 2025, the ASF had 99,115 Jira accounts that had been inactive for m
This volume of accounts puts an unnecessary burden on our system, and Infra will be taking steps to:
- delete accounts that are more than a year old and have never had any activity.
- - disable and anonymize accounts that have been inactive for the past three years, retaining the record of their activity before that time.
+ - disable and anonymize accounts that have been inactive for the past three years, retaining the record of their activity before that time.
ASF Members and project committers can help lighten the load by making sure to always use a Jira account with your ASF credentials (username, email address as they appear in the ICLA you submitted) whenever creating or commenting on a ticket for The ASF, or related to any of our projects.
diff --git a/content/pages/jira-approve-account.md b/content/pages/jira-approve-account.md
index 216b1104a..81c67a87d 100644
--- a/content/pages/jira-approve-account.md
+++ b/content/pages/jira-approve-account.md
@@ -9,15 +9,18 @@ The ASF uses Jira as one of its main systems for receiving and tracking bug repo
**Note**: a person does not need a Jira account to view existing issue reports and enhancement requests.
## Why we use this pattern
+
The ASF put the requirement to have an ASF Jira account in place for two reasons:
1. Our system was being swamped with a flood of bot-created spammy tickets. Requiring an account in order to submit a ticket has largely resolved this issue.
2. We currently host our Jira system on an ASF server. We intend to move it to a hosted cloud solution. However, that solution has a hard maximum to the number of accounts it can support, and we are trying to reduce the number of ASF Jira accounts to below that maximum.
## Approving account requests
+
In general, if the request seems valid--all fields are filled in with appropriate information, the reason for the account does not seem suspicious (or machine-written), and the reason given is not about a security vulnerability (see above)--approve it. Do not worry too much about increasing the number of ASF Jira accounts, as Infra is working on addressing that issue in other ways than rejecting valid requests.
If you are in doubt, consult with colleagues on your PMC.
## Inactive accounts
+
Infra may disable or remove accounts that show no activity over a long period of time. See [Jira acccount retention policy](jira-account-retention-policy.html).
diff --git a/content/pages/jira-for-infra.md b/content/pages/jira-for-infra.md
index 74b1e3324..96e3de2c0 100644
--- a/content/pages/jira-for-infra.md
+++ b/content/pages/jira-for-infra.md
@@ -3,7 +3,7 @@ license: https://www.apache.org/licenses/LICENSE-2.0
**Note**: this page is specifically about Jira tickets assigned to the Infrastructure team. General information about Jira and the ASF is at [Jira tickets](jira-guidelines.html).
-# Jira tickets for Infra
+# Jira tickets for Infra
The largest group of Jira tickets assigned to Infra are requests for Infra to perform a task of one sort or another. The next largest category is reports of possible issues in the Infrastructure system.
@@ -12,6 +12,7 @@ The largest group of Jira tickets assigned to Infra are requests for Infra to pe
We need the right information to respond to your work request or bug report. In addition to the [Writing a good Jira ticket](jira-guidelines.html#writing) advice, see Infra's [What we need to know](infra-contact.html#what-we-need-to-know) list.
## How Infra will respond
+
Infra may respond in a number of ways, including:
- Closing the ticket as **invalid**. Review [Before you create a ticket](jira-guidelines.html#before) for reasons that may generate this response.
diff --git a/content/pages/jira-guidelines.md b/content/pages/jira-guidelines.md
index 4ca0556f7..c0740e36f 100644
--- a/content/pages/jira-guidelines.md
+++ b/content/pages/jira-guidelines.md
@@ -3,14 +3,12 @@ license: https://www.apache.org/licenses/LICENSE-2.0
## Jira tickets
-
Jira is a proprietary issue tracking product developed by Atlassian that allows bug tracking and agile project management. Atlassian provides Jira services to Apache projects. The tool's name is a short form of the name of the Japanese movie monster, Godzilla, and was an early developer nickname for the application.
Anyone can review existing Jira tickets, or issues. You must register and log in if you want to create, comment or vote on, upload attachments to, or watch issues. Only committers can edit, prioritize, schedule and resolve issues.
The ASF and many of its projects use Jira to keep track of work to be done. The largest group of tickets assigned to Infra are requests for Infra to perform a task of one sort or another. The next largest category is reports of possible bugs in the Infrastructure system.
-
- Who can create a ticket
- Creating an account for a non-ASF reporter
@@ -51,18 +49,23 @@ If there is nothing in Jira already that covers what's on your mind, and the top
The form is pretty clear, so the focus here is on a couple of key fields.
#### Project
+
This is the group you want to take a look at the ticket. Select "Infra" for an infrastructure issue or request. Select a specific project if the issue is something like a problem in the project's documentation or website.
#### Issue type
+
There's a good list of issue types to choose from. Make sure you select the most appropriate one.
#### Project (again)
+
For an Infra ticket, if you want Infra to look at a problem with the Apache Widget project, in this field select `Widget`. Most of the time, for an Infra ticket, select `Infra`.
#### Summary
+
This is your quick statement of your problem or request. "Things are broken!" would not be a useful statement. Something like "Self-serve site hangs, then crashes" is more likely to get the right person's attention and a prompt resolution to the problem.
#### Priority
+
Make your best guess at how urgent this thing is. Infra, and many projects, triage Jira tickets by their priorities, and may adjust the priority of a ticket if its current setting seems too high or too low.
The options are
@@ -74,23 +77,29 @@ The options are
- **Trivial**: this issue is minimal and has no time constraints. ( _"The copyright year on Infra web page bla.html is incorrect."_)
#### Component/s
+
Select one or more components that this issue or request relates to. If you cannot figure out what to pick, select `Other/misc`.
#### Fix Version/s
+
This an optional field, useful if your issue concerns a specific Infra tool or service and you know the version you are using.
#### Assignee
+
If you specify someone here, that person receives an alert about the issue. You can accept the default (Automatic) to put the issue in the queue for the Infra or project team's attention.
#### Environment
+
This is an optional field where you can describe your operating system, software platform and/or hardware specifications if they are relevant to the bug, task, or feature request.
#### Description
+
Provide the juicy details here. For example, for an infrastructure bug report, Infra needs to know how to reproduce the thing you ran into. Describe what you were doing ("I was logged in to bla.html using Firefox"), what you wanted to do ("I wanted to do xxx"), what you expected to happen, and what you actually experienced.
For a feature request, it helps if you can not only describe the feature, but explain why the ASF or the specific project needs it.
#### Other fields
+
There are many optional fields that you can probably skip.
When you have completed entering the useful information, click **Create** to create the ticket.
@@ -98,4 +107,3 @@ When you have completed entering the useful information, click **Create** to cre
Jira tickets for Infra
See [Jira tickets for Infra](jira-for-infra.html)
-
diff --git a/content/pages/key-transition.md b/content/pages/key-transition.md
index c47bb7eed..f7f4d5132 100644
--- a/content/pages/key-transition.md
+++ b/content/pages/key-transition.md
@@ -220,7 +220,7 @@ Read this [Guide to Apache use](openpgp.html#wot) of the [web of trust](release-
Exporting both new and old keys
-During the transition period, use a single export containing both new and old public keys whenever you need an export.
+During the transition period, use a single export containing both new and old public keys whenever you need an export.
To create a suitable export, supply both key IDs on the command line. For example, to export keys AD741727 (old) and E2B054B8 (new) to FILENAME use:
diff --git a/content/pages/licensing-howto.md b/content/pages/licensing-howto.md
index d44151098..fd1f27bda 100644
--- a/content/pages/licensing-howto.md
+++ b/content/pages/licensing-howto.md
@@ -56,6 +56,7 @@ In `LICENSE`, add a pointerASF Translation Service provides the **Pootle** localization tool to help projects that want to provide documentation and user-interface text in multiple languages. *NOTE*: While several ASF projects continue to use Pootle, AFS is not approving new Pootle use.
+The ASF Translation Service provides the **Pootle** localization tool to help projects that want to provide documentation and user-interface text in multiple languages. *NOTE*: While several ASF projects continue to use Pootle, AFS is not approving new Pootle use.
Apache Tomcat uses POEditor to localize its log messages and other text. POEditor provides free, unlimited licenses to open-source projects. PMC member Mark Thomas provided a description of the Tomcat localization process.
-
-
diff --git a/content/pages/mail-migration-faq.md b/content/pages/mail-migration-faq.md
index 965860d21..13499696c 100644
--- a/content/pages/mail-migration-faq.md
+++ b/content/pages/mail-migration-faq.md
@@ -7,7 +7,7 @@ As part of the Apache Infrastructure team's goals of modernization and
service improvement, we are pleased to announce the general availability
of "mailgw", the long-awaited replacement for hermes.
-This document addresses common questions related to the migration of mail
+This document addresses common questions related to the migration of mail
and mailing lists to the new server.
Frequently Asked Questions
@@ -18,37 +18,37 @@ Hermes and mailgw are hostnames for the servers that process mail to
@apache.org email addresses. They also process mailing list traffic
for all ASF projects, e.g. "users@httpd.apache.org".
-Hermes is a nearly 10 year old legacy server that pre-dates Infra's modern
-configuration management strategy, and pre-dates many modern email
+Hermes is a nearly 10 year old legacy server that pre-dates Infra's modern
+configuration management strategy, and pre-dates many modern email
technologies like TLS encryption.
Mailgw is a modern server using currently available technology, and
under full configuration management, greatly improving reliability and
reproducibility of the service in case of failures.
-The migration process moves @apache.org and @$project.apache.org email
-services from hermes onto mailgw, ensuring that email services remain
+The migration process moves @apache.org and @$project.apache.org email
+services from hermes onto mailgw, ensuring that email services remain
compliant with modern standards to the greatest extent possible.
Will we lose any email?
-No. Despite a list being migrated from hermes to mailgw, mail which was
-'in flight' to hermes will still be delivered to the list subscribers on
-hermes. Once the list is fully migrated, we will reroute email to mailgw
+No. Despite a list being migrated from hermes to mailgw, mail which was
+'in flight' to hermes will still be delivered to the list subscribers on
+hermes. Once the list is fully migrated, we will reroute email to mailgw
automatically. This process is transparent to users.
Will this affect official archives?
-No. We manage archives through mailing list subscriptions to the PonEE
+No. We manage archives through mailing list subscriptions to the PonEE
archival service and list subscriptions to the mbox-vm archiver. Mail
delivered via either hermes or mailgw will make it to the official archives.
What about unofficial mbox archives?
-hermes-based ~apmail/lists/project.a.o/archives accessible via ezmlm's
-archive commands (get/index/thread/etc) will not be transferred to mailgw.
-They will be archived for posterity and we can provide them upon
-Member request. Access all mailing list archives via the
+hermes-based ~apmail/lists/project.a.o/archives accessible via ezmlm's
+archive commands (get/index/thread/etc) will not be transferred to mailgw.
+They will be archived for posterity and we can provide them upon
+Member request. Access all mailing list archives via the
official URL https://lists.apache.org.
Will the system preserve queued moderation mail?
@@ -78,13 +78,13 @@ mailgw-he-de.apache.org
#### How do we know if a list has been migrated?
-The list will exist on mailgw-he-de.apache.org, and the list directory
+The list will exist on mailgw-he-de.apache.org, and the list directory
on hermes will contain a flag file called 'migrated-to-mailgw'.
#### Do apmail processes remain the same?
-For the most part, tools in ~apmail/bin will perform as expected, and
-ezmlm commands (subscriptions, moderation, etc.,) work as expected.
+For the most part, tools in ~apmail/bin will perform as expected, and
+ezmlm commands (subscriptions, moderation, etc.,) work as expected.
Contact Infra if anything doesn't work as expected.
#### Has my project been migrated?
diff --git a/content/pages/mail-rejection.md b/content/pages/mail-rejection.md
index fe987ce9b..65032eae2 100644
--- a/content/pages/mail-rejection.md
+++ b/content/pages/mail-rejection.md
@@ -3,7 +3,7 @@ license: https://www.apache.org/licenses/LICENSE-2.0
### "Not authorized" message
-People emailing ASF addresses may see this message:
+People emailing ASF addresses may see this message:
``Recipient address rejected: ASF gnomes rejected your message: SPF fail - not authorized. See https://infra.apache.org/mail-rejection.html``
@@ -11,7 +11,7 @@ The apache.org MX servers reject messages under many of the following circumstan
- SPF (Sender Policy Framework) hard fail for domains which have it configured (-all)
- SPF hard fail for major spam targets despite ~all (gmail.com, yahoo.com)
-- SPF hard fail for inbound mail from apache.org addresses which do NOT originate from apache.org servers
+- SPF hard fail for inbound mail from apache.org addresses which do NOT originate from apache.org servers
- Various RBL provider match
- Invalid HELO hostname (hostname does not exist)
- Invalid HELO domain (domain does not exist)
diff --git a/content/pages/mailing-list-moderation.md b/content/pages/mailing-list-moderation.md
index ca4d1cdc1..37ca4dbee 100644
--- a/content/pages/mailing-list-moderation.md
+++ b/content/pages/mailing-list-moderation.md
@@ -15,7 +15,7 @@ Dealing with
- problem posts
- reports of missing mail
- reports of message bounces
-
+
See also Infra's general guidelines on content moderation.
How do we create a new mailing list?
@@ -37,8 +37,8 @@ You can manage the list of moderators for a project's email list if you are:
- a Foundation member and on the PMC of the project
- chair of the project
- an existing moderator of the list
-
- - Log in to WebMod with your ASF credentials.
+
+ - Log in to WebMod with your ASF credentials.
- Select the 'List moderator management' tab.
- In the dropdown list, select the project which has the email list in question.
- In the list of email lists that appears, select the list whose moderators you want to manage.
@@ -72,7 +72,7 @@ However, most committers do not have access to apmail. See the notes in the "com
You can review and manage email that is waiting for moderation in two ways:
-#### WebMod
+#### WebMod
WebMod simplifies reviewing and responding to emails that require moderation.
@@ -82,6 +82,7 @@ You can review and manage email that is waiting for moderation in two ways:
- You have many options for reviewing each individual email, including displaying just the text body or viewing the source. The options appear as links to the right of the email title.
#### Manual moderation
+
Review the mail to see if it is spam (or other severely misguided mail). If it is spam, just ignore the mail to have it silently dropped after 5 days.
To bounce non-spam with a notice to the sender, reply to the `-reject` address in the mail header. If you wish to include a comment with the rejection, the body of the message should look like this:
@@ -132,7 +133,6 @@ badposter=menace.com
If this address contains random alphanumerics, it is probably a short-lived address, in which case there is no point trying to use the deny list.
-
Allowing posts from non-subscribers
Most lists require people to subscribe in order to post messages. However, subscribers receive copies of all mails (or digests). This is obviously unsuitable for bots, or for private lists which need to accept posts from non-subscribers.
@@ -211,7 +211,7 @@ Here are the message numbers:
```
-This can occur if the recipient's mail system has strict SPAM detection rules.
+This can occur if the recipient's mail system has strict SPAM detection rules.
One way to find such emails is to request an index listing from ezmlm, for example
by sending an email to `dev-index-12345@tlp.apache.org`. This will show the subject, timestamp and sender of the email. That may be sufficient to identify it as spam.
diff --git a/content/pages/managing-committers.md b/content/pages/managing-committers.md
index 2ccb0e85d..1952577da 100644
--- a/content/pages/managing-committers.md
+++ b/content/pages/managing-committers.md
@@ -5,7 +5,7 @@ The PMC of each project encourages and guides their new committers, ensures that
### Account creation ###
-Make sure the new committer fills out the appropriate forms, including the Contributior License Agreement, or CLA. A committer account cannot be processed until the ASF secretary or a board member acknowledges receipt of the CLA.
+Make sure the new committer fills out the appropriate forms, including the Contributior License Agreement, or CLA. A committer account cannot be processed until the ASF secretary or a board member acknowledges receipt of the CLA.
Work with your new committer to ensure that their CLA is received and recorded properly; monitor the file iclas.txt in the `foundation/officers` repository. Only ASF members and officers (including PMC chairs) have access. The page Apache Committers has a link to "Unlisted CLAs". This list is generated daily from the iclas.txt file, so recently received CLAs appear there.
diff --git a/content/pages/matomo.md b/content/pages/matomo.md
index 2846782e2..21319a2ea 100644
--- a/content/pages/matomo.md
+++ b/content/pages/matomo.md
@@ -3,15 +3,12 @@ license: https://www.apache.org/licenses/LICENSE-2.0
Matomo, formerly known as Piwik, is a free (GPL licensed) web analytics software platform. It provides detailed reports on your website and its visitors, including the search engines and keywords they used, the language they speak, which pages they like, and the files they download. Matomo is an open source alternative to Google Analytics, and is GDPR compliant.
-
-
## Why use Matomo?
_what a project would get out of it_
_include negatives? For example, 'Projects should be aware that there are a number of bug reports that suggest Matomo sometimes delivers inaccurate data.'_ (https://www.trustradius.com/products/matomo/reviews?qs=pros-and-cons#overview).
-
## Installing and running Matomo
### Getting and using the license key
diff --git a/content/pages/mfa-reset.md b/content/pages/mfa-reset.md
index 029d5e3b9..19cb26d05 100644
--- a/content/pages/mfa-reset.md
+++ b/content/pages/mfa-reset.md
@@ -8,9 +8,9 @@ A committer may need to reset their ASF multi-factor authentication (MFA) if the
There are two paths to recovery if you have lost your MFA token(s):
1. **Self-service with a recovery code** established during initial MFA setup.
- - Visit https://mfa.apache.org and use a recovery token by clicking "Select another authentication method."
+ - Visit https://mfa.apache.org and use a recovery token by clicking "Select another authentication method."
- 2. **Identity validation by Infra.**
+ 2. **Identity validation by Infra.**
- Have someone from your PMC or Department open an Infra Jira ticket, or email security@infra.apache.org. Infra will validate your identity against factors that you previously registered with the ASF.
To keep this process low-friction, we strongly encourage committers to register multiple factors in advance:
diff --git a/content/pages/mfa.md b/content/pages/mfa.md
index 64b9174e7..66c5a2a1f 100644
--- a/content/pages/mfa.md
+++ b/content/pages/mfa.md
@@ -4,6 +4,7 @@ license: https://www.apache.org/licenses/LICENSE-2.0
Multi-factor authentication (MFA; also referred to as two-factor authentication, or 2FA) lets a user gain access to a website or application by presenting two or more pieces (or factors) of evidence of their identity which a mechanism can successfully authenticate. As well as protecting general access to the site or application, MFA protects users' and others' personally identifiable information, or PII, better than systems that only require presentation of a user name and password.
## MFA at the ASF
+
ASF project committers will encounter MFA when they set up their accounts to work with GitHub repositories, or access an ASF service which is protected by ASF MFA. These are two distinct MFA systems, and one does not affect the other.
The Infra team is expanding its use of ASF MFA to cover ASF applications and processes. Committers will be prompted to enroll in ASF MFA when accessing a service which uses that system. The method for setting up ASF MFA is similar to the current GitHub experience. To ensure smooth enrollment in The ASF's MFA system, committers can prepare by:
diff --git a/content/pages/new-committers-guide.md b/content/pages/new-committers-guide.md
index b5e8bbcd6..9bab4250f 100644
--- a/content/pages/new-committers-guide.md
+++ b/content/pages/new-committers-guide.md
@@ -101,9 +101,11 @@ To use GitHub, you need to integrate your GitHub ID with your Apache account, so
3. After about two to five minutes, you should have access to your project's repositories on GitHub.
#### Using Gitbox
+
To connect to Git repositories through Gitbox, visit Gitbox and follow the onscreen instructions.
### Your first commit to a Git repository
+
If your project has a page for its developers and committers on its website, add your name and information to it. This is a great way to make your first commit, and helps your team get to know you.
It also serves another purpose: you will learn how to add documentation to your project's website and the technology used to build it. Documentation is vital, and being able to improve the project's web site is a skill that you will need. If your project has not documented how to rebuild the website, then ask on your `dev@` mailing list and use the answer to create a document describing how to do that. It will be gratefully received!
diff --git a/content/pages/nexus101.md b/content/pages/nexus101.md
index 2010663b9..377d1c340 100644
--- a/content/pages/nexus101.md
+++ b/content/pages/nexus101.md
@@ -8,5 +8,3 @@ The ASF service https://repository.apache.org (sometimes referred to as `RAO` or
_links to existing resources_
_frequently asked questions_
-
-
diff --git a/content/pages/nightlies.md b/content/pages/nightlies.md
index 39fc2e3b6..da03c027f 100644
--- a/content/pages/nightlies.md
+++ b/content/pages/nightlies.md
@@ -4,10 +4,12 @@ license: https://www.apache.org/licenses/LICENSE-2.0
This document explains `nightlies.apache.org`: how to use the service and how much data data you can store there for how long, and what Infra expects of users of the service.
## History
+
The service was created to replace previous storage services at `ci.apache.org/projects` (Buildbot) and is also a replacement for artifacts and logs that
were otherwise kept on `ci-builds.apache.org` (was `builds.apache.org`) along with the other Controllers (ci-hbase, ci-hadoop etc.).
## Usage
+
nightlies, as implied by its name, is designed as a 'short term' storage solution. Examples of how projects use the service are:
- Nightly Snapshots of trunk/main builds for developer-only testing.
@@ -23,6 +25,7 @@ nightlies, as implied by its name, is designed as a 'short term' storage solutio
There are various ways to get your data to nightlies.apache.org and this is covered on `https://nightlies.apache.org` itself.
## Data Retention
+
Data of previous jobs, including artifacts and logs, should only be kept for around 30 days as a general guide.
Keeping multiple website versions is fine; and we expect you would want to have a trunk/main version and perhaps
a version of the current release / previous release. Rotate as your releases occur. Release artifacts would obviously be kept
@@ -33,6 +36,7 @@ the need for seeing how builds perform over time, but please note that, again, t
could be lost. If it is important to your project, you should back it up off-site.
## Expectations
+
All data placed on nightlies should be considered 'ephemeral'. Infra does NOT back up nightlies.apache.org.
Ideally, build data/results are reproducible from any previous commit and should be replayed if needed. The
same applies here to your website versions and apidocs / javadocs.
@@ -42,6 +46,7 @@ $previous etc. so that if the data underneath needs to be regenerated, incoming
Infra will ensure the longevity of project level URIs such as `nightlies.apache.org/$project`.
## Summary
+
nightlies.apache.org is a service provided by Infra for all projects to use. Infra will maintain this service for as long as it sees
it is of benefit to projects. It will guarantee project level urls. Anything underneath `nightlies.apache.org/$project/*` is not
guaranteed. Data is ephemeral, should be considered volatile and is not backed up. Projects should utilize off site
diff --git a/content/pages/open-access-svn.md b/content/pages/open-access-svn.md
index e8d4d0f6e..cd73a30ce 100644
--- a/content/pages/open-access-svn.md
+++ b/content/pages/open-access-svn.md
@@ -24,7 +24,7 @@ ability (but not the social privilege) to make commits against any part of the `
- Increases leverage for abusive behavior, though this is mitigated by the relative ease by which bad commits can be reverted via reverse-merging, or, for more invasive changes, plastering over them by deleting the entire tree and copying the last known good revision to HEAD. This only starts getting complicated when good commits start being mingled with bad ones.
- One hacked account can damage all of `/repos/asf` (disregard for basic tenet of security: provide access only to those who require it and only to the bare minimum of what they need).
- May lead to confusion about the distinction between technical and social privileges.
- - No single usable accounting of who on a PMC has commit permissions. Impact on non SVN-related resources for PMC and foundation (example: `https://people.apache.org/committer-index.html`).
+ - No single usable accounting of who on a PMC has commit permissions. Impact on non SVN-related resources for PMC and foundation (example: `https://people.apache.org/committer-index.html`).
- Increases workload on PMCs and volunteer committers.
- Creates a precedent where the foundation imposes its will on PMCs for no clearly defined or overwhelming reason (also technically untrue as allowances will be made for grandfathering projects).
@@ -64,7 +64,7 @@ If you request and receive commit access, you are expected to read, understand,
If you abuse this, we will remove your access.
```
-(Of course, this could be weakened to mention Foundation membership or committer status on other projects.)
+(Of course, this could be weakened to mention Foundation membership or committer status on other projects.)
In any case, the eager would-be contributor with an existing ICLA would merely need to wait for the PMC chair to type a command in response to a request. Is this really much of a barrier? I submit that the cultural posture that accompanies the tight ACL on many projects today is a much stronger barrier.
diff --git a/content/pages/openpgp.md b/content/pages/openpgp.md
index 42a2b440e..ff0ebbeb8 100644
--- a/content/pages/openpgp.md
+++ b/content/pages/openpgp.md
@@ -7,9 +7,9 @@ license: https://www.apache.org/licenses/LICENSE-2.0
- Gnu Privacy Guard
- How to generate a strong key
- Private keyring management
-
+
How to...
-
+
- find a key ID
- back up keys
- export a key
@@ -20,7 +20,6 @@ license: https://www.apache.org/licenses/LICENSE-2.0
- update Apache documents with details of a new key
- use the Web of Trust
-
Introduction
OpenPGP is encryption software. The program provides cryptographic privacy and authentication for data communication, covering signing, encrypting, and decrypting texts, e-mails, files, directories, and whole disk partitions and increasing the security of e-mail communications.
@@ -85,8 +84,8 @@ clients lack `SHA512` support, we recommend switching to `SHA512` if possible.
To configure `gpg` to avoid SHA-1, edit the options in [`gpg.conf`](#configuration). Options need to be added or given the correct values for:
- - `cert-digest-algo` - the certificate digest used when linking into the [web of trust](release-signing.html#link-into-wot)
- - `personal-digest-preferences` - the digest used for [signing messages](release-signing.html#detach-sig)
+ - `cert-digest-algo` - the certificate digest used when linking into the [web of trust](release-signing.html#link-into-wot)
+ - `personal-digest-preferences` - the digest used for [signing messages](release-signing.html#detach-sig)
- `default-preference-list` - the default algorithm preferences for [new keys](release-signing.html#generate) (this does not affect existing keys: see next paragraph)
To use `SHA512` (recommended):
@@ -104,7 +103,7 @@ To use SHA256:
cert-digest-algo SHA256
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
```
-
+
Setting preferences for keys
The digest preferences for each key (from the [configuration defaults](#sha-defaults) ) are set when the key is generated. Once the
@@ -175,7 +174,7 @@ than 4096 bits, install it. You only need this version to generate keys, so you do not need to replace the version distributed with your platform. You can install the new version into a working directory.
@@ -378,9 +377,9 @@ If you are generating a key for use in a [transition](release-signing.html#trans
If this is a new code signing key not involved with a transition:
1. [Upload](release-signing.html#keyserver-upload) the new [public key](release-signing.html#public-private) to a public
-[keyserver](release-signing.html#keyserver)
+[keyserver](release-signing.html#keyserver)
- 1. Create backups by following these [instructions](#backup)
+ 1. Create backups by following these [instructions](#backup)
1. Follow these [instructions](#revocation-certs) to create and securely store generic [revocation
certificates](release-signing.html#revocation-cert) for the new key
@@ -670,10 +669,10 @@ Revocation certificates include a small amount of additional information"
One of four machine readable reason types:
- - No reason specified - *a catch-all category*
- - Key has been compromised - *also use this if you believe that the key may have been compromised (for example, when a storage device containing the private key has been lost)*
- - Key is superseded - *the comment should suggest the replacement key*
- - Key is no longer used - *useful when the key has been destroyed and so a generic revocation prepared earlier must be used*
+ - No reason specified - *a catch-all category*
+ - Key has been compromised - *also use this if you believe that the key may have been compromised (for example, when a storage device containing the private key has been lost)*
+ - Key is superseded - *the comment should suggest the replacement key*
+ - Key is no longer used - *useful when the key has been destroyed and so a generic revocation prepared earlier must be used*
The certificate also includes a human-readable *comment*. Explain here the reason why you are revoking the key. This lets those affected by the revocation to formulate an appropriate response.
@@ -717,7 +716,7 @@ ease of handling) revocation certificate for key `AD741727` like this:
```
When preparing generic certificates (for use if the [private key](release-signing.html#public-private) is unavailable), the comment
-cannot include the specifics and so should indicate this.
+cannot include the specifics and so should indicate this.
The process for generating a generic certificate is identical, but you should add a different comment. For example, generate an [ASCII armored](release-signing.html#ascii) (for ease of handling) revocation certificate for key `AD741727` like this:
@@ -757,7 +756,7 @@ The process for generating a generic certificate is identical, but you should ad
```
How to use symmetric encryption
-
+
GnuPG supports symmetric (in addition to public key) cryptography, but the ciphers available sometimes differ. Use `gpg --version` to discover which ciphers are available in the current installation:
```
@@ -807,7 +806,7 @@ For the new key, you will need to provide both the [fingerprint](release-signing
**Note**: you must [upload signing keys to a public key server](release-signing.html#keyserver-upload). You must also add them to your LDAP record using the Apache self-service app.
A reliable, permanent URL for your new public key is useful. Your Apache web space is an ideal location for this. Copy an
-[ASCII armored](release-signing.html#ascii) [public key](release-signing.html#public-private)
+[ASCII armored](release-signing.html#ascii) [public key](release-signing.html#public-private)
[export](release-signing.html#export) (see instructions later, or use documents you created earlier) into the `public_html` subdirectory of your home on home.apache.org.
The suffix `.asc` is conventional for ASCII armored public key exports. So, for example, `A6EE6908.asc` is a reasonable choice for the export of key `A6EE6908`. Record the URL (for example `http://home.apache.org/~rdonkin/A6EE6908.asc` ) for use later in your
@@ -1001,7 +1000,7 @@ The most effective way to achieve this is to attend a [key signing party](releas
Expect to:
- bring identification
- - bring a hard copy of your key's [fingerprint](release-signing.html#fingerprint)
+ - bring a hard copy of your key's [fingerprint](release-signing.html#fingerprint)
- supply the key ID or public key to the organiser before the party
- check that the [fingerprint](release-signing.html#fingerprint) for your key supplied by the organiser matches your hard copy
- confirm this to those present
diff --git a/content/pages/os-upgrade-policy.md b/content/pages/os-upgrade-policy.md
index bb4c45843..cc427dd73 100644
--- a/content/pages/os-upgrade-policy.md
+++ b/content/pages/os-upgrade-policy.md
@@ -1,12 +1,12 @@
Title: Operating system upgrade policy
license: https://www.apache.org/licenses/LICENSE-2.0
-Infra supports Ubuntu long-term support (LTS) releases and Windows platforms.
+Infra supports Ubuntu long-term support (LTS) releases and Windows platforms.
-Some services are on a virtual machine (VM) on a host physical server, and some services run on "bare metal".
+Some services are on a virtual machine (VM) on a host physical server, and some services run on "bare metal".
- When we move to a new machine running Ubuntu, we install the current stable version of the operating system.
- Windows servers typically run Windows Server 2016 Standard. As we replace older physical machines with newer ones, we install the most recent stable version of Windows Server Standard that is available at the time of migration.
- ASF Windows desktops typically run Windows 10 Professional. The migration pattern is as for the servers.
- For builds, we run Buildbot on Windows desktops and Jenkins on Windows servers.
-
+
\ No newline at end of file
diff --git a/content/pages/password-policy.md b/content/pages/password-policy.md
index d4a354860..606ea94bb 100644
--- a/content/pages/password-policy.md
+++ b/content/pages/password-policy.md
@@ -1,40 +1,43 @@
Title: Committer password policy
license: https://www.apache.org/licenses/LICENSE-2.0
-This page outlines the policy on committer passwords for LDAP accounts, and explains a bit
+This page outlines the policy on committer passwords for LDAP accounts, and explains a bit
about the logic behind it.
### Minimum password length: eight characters
+
All passwords must have eight or more characters. You can use any combination of letters, numbers, special characters, and spaces, and there is no upper limit to the password length.
### Minimum password entropy size: 54 bits
-Entropy size is a measure of how many attempts if would potentially take to crack the password, whether
-through brute-forcing, dictionary attacks or simply guessing. It is measured in bits that
-correspond to the size of the maximum number of attempts required in binary format. Thus,
-a password with an entropy size of 24 bits would require up to `2^24` == 16,777,216 attempts
-to crack. Entropy size is calculated as the length of the password (in characters/bytes),
-multiplied by the binary logarithmic (log2) of the alphabetical cardinality of the password,
-meaning the number of unique characters in the password.
-
-In the example password `I am Groot`, there are 10 characters in the string, and 8 unique
+
+Entropy size is a measure of how many attempts if would potentially take to crack the password, whether
+through brute-forcing, dictionary attacks or simply guessing. It is measured in bits that
+correspond to the size of the maximum number of attempts required in binary format. Thus,
+a password with an entropy size of 24 bits would require up to `2^24` == 16,777,216 attempts
+to crack. Entropy size is calculated as the length of the password (in characters/bytes),
+multiplied by the binary logarithmic (log2) of the alphabetical cardinality of the password,
+meaning the number of unique characters in the password.
+
+In the example password `I am Groot`, there are 10 characters in the string, and 8 unique
characters in total (`I,a,m,G,r,o,t, and a whitespace), thus the entropy size is:

-At the ASF, we require a minimum entropy size of **54 bits**, meaning it should require more than
+At the ASF, we require a minimum entropy size of **54 bits**, meaning it should require more than
approximately 18 quadrillion attempts to brute-force a password.
### Minimum password complexity: 0.60
-We also require a complexity degree of 0.60. Password complexity ranges from 0 to 1, where 0 is
-a password consisting of only the same letters over and over, and 1 means a password is
-long enough and with enough entropy to require quadrillions of computations to crack, and also
-has enough sequential variety to negate any speed improvements a malicious actor might employ in
+
+We also require a complexity degree of 0.60. Password complexity ranges from 0 to 1, where 0 is
+a password consisting of only the same letters over and over, and 1 means a password is
+long enough and with enough entropy to require quadrillions of computations to crack, and also
+has enough sequential variety to negate any speed improvements a malicious actor might employ in
order to simplify or otherwise optimize an attempt at cracking a password.
The exact formula we use is as follows:

-Our self-serve page for (re)setting passwords can provide you with
-an instant assessment of your password strength using these requirements, to help you find a
+Our self-serve page for (re)setting passwords can provide you with
+an instant assessment of your password strength using these requirements, to help you find a
password that is sufficiently strong.
diff --git a/content/pages/patch.md b/content/pages/patch.md
index d70fc4e4d..752bbd5a3 100644
--- a/content/pages/patch.md
+++ b/content/pages/patch.md
@@ -51,7 +51,6 @@ The general pattern for creating and submitting a patch for a project using Git
One or more of the project's committers will review your proposed changes and, if all is well, merge them.
-
### In general ###
A very few projects don't use an issue tracker. In that case, send the patch as an attachment to an e-mail with a subject prefixed with "[PATCH]", to the appropriate development mailing list. If the patch is large, please ask before e-mailing it in case there is a better way to provide it.
diff --git a/content/pages/pelican-buildbot.md b/content/pages/pelican-buildbot.md
index a36b13857..5f136c0e1 100644
--- a/content/pages/pelican-buildbot.md
+++ b/content/pages/pelican-buildbot.md
@@ -3,7 +3,6 @@ license: https://www.apache.org/licenses/LICENSE-2.0
ASF projects can use Pelican to create and manage the project website. Pelican provides a framework and the option of using themes to display your site pages, which you write in GitHub-flavored-markdown (GFM). You can set Buildbot to build and publish the site every time someone saves updates to a page.
-
Pelican provides support for importing an existing site that runs on WordPress or some other service.
### Sites with sub-directories
@@ -30,7 +29,7 @@ The configuration file is `pelicanconf.py`.
Create the repository for the website content using the GitBox's Boxer self service tool (https://gitbox.apache.org/setup/newrepo.html).
1. Clone the repository to a local workspace
-2. Run `pelican-quickstart` in the root of the repository on the master branch.
+2. Run `pelican-quickstart` in the root of the repository on the master branch.
- The script asks where you want to create the website. Accept " . ", the default, unless you have a specific location in mind for it.
- Use $PROJECTNAME for the site title.
- Set the website author as $PROJECTNAME also. This lets all members of the project edit the website.
@@ -39,7 +38,7 @@ Create the repository for the website content using the Pelican plugins that deliver extra functionality for a website.
-
-
diff --git a/content/pages/phishing.md b/content/pages/phishing.md
index ad1f3b8e7..da97c463a 100644
--- a/content/pages/phishing.md
+++ b/content/pages/phishing.md
@@ -30,7 +30,7 @@ Your best actions are to:
- not respond to the email
- forward the message, with full headers, to `root@apache.org`.
-Further,
+Further,
- Do not divulge your credentials to any service outside of **apache.org**.
- In any email claiming to come from an apache.org address, do not click on any 'reset' or 'reauthenticate' links. We never ask you to do this.
diff --git a/content/pages/policies.md b/content/pages/policies.md
index c715d22b2..54a1600fa 100644
--- a/content/pages/policies.md
+++ b/content/pages/policies.md
@@ -47,4 +47,5 @@ license: https://www.apache.org/licenses/LICENSE-2.0
- [Jira account retention policy](jira-account-retention-policy.html)
## Infrastructure team
+
The Apache Infrastructure Team (Infra) operates under the ASF Code of Conduct.
diff --git a/content/pages/project-blogs.md b/content/pages/project-blogs.md
index 929ab7f2b..28188c6db 100644
--- a/content/pages/project-blogs.md
+++ b/content/pages/project-blogs.md
@@ -3,7 +3,7 @@ license: https://www.apache.org/licenses/LICENSE-2.0
Until June, 2023, the ASF supported using Apache Roller for project blogs. That support has ended. Now we encourage projects to develop their blog using the technology of their choice.
-If you're building your site via Pelican, Hugo, or another static site generator, it's as easy as following their steps to create posts. For instance, infra.apache.org is using Pelican builds hosted by the ASF. Posts just need to be written using markdown and created under a directory named "blog".
+If you're building your site via Pelican, Hugo, or another static site generator, it's as easy as following their steps to create posts. For instance, infra.apache.org is using Pelican builds hosted by the ASF. Posts just need to be written using markdown and created under a directory named "blog".
All project blogs should be accessible via $projectName.apache.org/blog. A blog can be a great way of announcing new milestones and features, sharing tips and tricks, and putting a "face" on your project for your developer and user communities. The project's PMC is responsible for the blog's content, and for granting write access to PPMC members.
@@ -17,7 +17,7 @@ You no longer have to request a blog from Infra. If your project doesn't current
### Getting editor access ###
-Your blog code should be in your project's website repo or another separate GitHub/GitBox repo. Access is controlled via the same process as committing code to any other ASF repo. Contributors can use PRs to create new content that can be reviewed by the project and then approved to be published.
+Your blog code should be in your project's website repo or another separate GitHub/GitBox repo. Access is controlled via the same process as committing code to any other ASF repo. Contributors can use PRs to create new content that can be reviewed by the project and then approved to be published.
### Working with your blog ###
diff --git a/content/pages/project-repo-policy.md b/content/pages/project-repo-policy.md
index b4fc5403e..f0e081304 100644
--- a/content/pages/project-repo-policy.md
+++ b/content/pages/project-repo-policy.md
@@ -35,7 +35,6 @@ To deploy one of these customizations for your project's repository, ask Infra f
- Auto-merge of pull requests.
- Merge queues. This feature is in limited beta.
-
### Subversion directories
Typically, the Incubator PMC makes a Jira request to Infra to create an SVN directory for a graduating project, or for a project joining the ASF with an existing SVN directory. If a project needs a subdirectory for a specific purpose, it requests its creation in a Jira ticket to Infra.
diff --git a/content/pages/project-site-policy.md b/content/pages/project-site-policy.md
index 715cb4b5b..a5be334cc 100644
--- a/content/pages/project-site-policy.md
+++ b/content/pages/project-site-policy.md
@@ -7,7 +7,7 @@ Whimsy's Apache Projec
From Infra's point of view:
-1. Each TLP's website **must** be hosted on ASF-operated hardware, or on an approved alternative such as WordPress or GitHub Pages. Consult with Infra if you are considering a host not mentioned here.
+1. Each TLP's website **must** be hosted on ASF-operated hardware, or on an approved alternative such as WordPress or GitHub Pages. Consult with Infra if you are considering a host not mentioned here.
2. The website's source code must be stored in an ASF Git or Subversion repository to track the site's change history and so the source code is available for download.
3. The website's source code must be available under the current Apache license.
diff --git a/content/pages/project-site.md b/content/pages/project-site.md
index 3a21a1f9e..9066c28f4 100644
--- a/content/pages/project-site.md
+++ b/content/pages/project-site.md
@@ -3,7 +3,6 @@ license: https://www.apache.org/licenses/LICENSE-2.0
Every Apache project or podling has a website hosted at `apache.org`. Apache provides tools to support it. Each project decides how their website looks, its contents, how they maintain it, and what software they use to support it, as long as the result is static files that our public web servers can make available to browsers. We also have limited support for .htaccess files and CGI scripts.
-
## Contents
@@ -76,7 +75,8 @@ If you'd like to get started with an easy-to-use, migrate existing websites from many technologies, including Blogger, Dotclear, Posterous, Tumblr, WordPress, and RSS/Atom.
-Any ASF project can use the [**ASF-Pelican template**](asf-pelican.html) as the basis for their project website.
+Any ASF project can use the [**ASF-Pelican template**](asf-pelican.html) as the basis for their project website.
See a how-to on using [Pelican and Buildbot](pelican-buildbot.html) to develop and deploy a project website.
Pelican supports both flat websites and those that have subdirectories. For the latter, Pelican provides a plugin.
-Browse a collection of Pelican plugins to find others that support functionality you want to add to your site.
+Browse a collection of Pelican plugins to find others that support functionality you want to add to your site.
This GitHub query returns ASF repositories
which have the `pelican` Topic. You can review them as examples of Pelican in action.
+
#### GitHub Pages
+
Infra does not have a structure in place to support using [GitHub Pages](github-pages.html) for project websites.
#### Apache CMS
+
The Apache CMS, which projects used to build and deploy their websites since 2010, is no longer available as of July 31, 2021. All projects that used it, including the main Apache website, have moved or must move to other technologies. Those that linger will find at some point that they can no longer update their website. See the notes in the section on site management tools, below.
### 2. Website repository
@@ -121,7 +124,7 @@ Copy whatever you need to start a build into the master branch of the new reposi
### 3. The build process
-Configure Pelican or Jekyll to build the site automatically when its contents change, using [.asf.yaml](asf-yaml.html) and Buildbot.
+Configure Pelican or Jekyll to build the site automatically when its contents change, using [.asf.yaml](asf-yaml.html) and Buildbot.
### 4. A staging website
@@ -149,16 +152,13 @@ publish:
For more detailed procedures, see see [.asf.yaml](asf-yaml.html).
-
-
Site management
- The basic requirements for site management are that
+ The basic requirements for site management are that
- only committers should be able to modify the site.
- notifications of all site changes are sent to the relevant project mailing lists.
-
Infra supports these tools for publishing and maintaining Apache project websites:
@@ -169,13 +169,12 @@ Infra supports these tools for publishing and maintaining Apache project website
- [**pypubsub**](pypubsub.html) automatically serves the static contents of a designated Git repository as the website for a project. Git-based websites are typically maintained in a repository branch to be published as `https://project.apache.org`. A project can host the site from its primary project repository. Typically these will be built as a Jenkins or a Buildbot job (see below). We recommend that you only have a single writer to the asf-site branch to avoid potential conflicts.
- For **websites using a Git repository**, you can add an [.asf.yaml](asf-yaml.html) configuration file. The file lets you set instructions that simplify updating and maintaining the site.
-
### Build tools
Infra provides these build tools:
- - **Jenkins** is an open-source automation server that supports building, deploying and automating a project. Infra resources on Jenkins start here.
- - **Buildbot** is a job scheduling system: it queues jobs, executes the jobs when the required resources are available, and reports the results.
+ - **Jenkins** is an open-source automation server that supports building, deploying and automating a project. Infra resources on Jenkins start here.
+ - **Buildbot** is a job scheduling system: it queues jobs, executes the jobs when the required resources are available, and reports the results.
Logging
@@ -206,7 +205,7 @@ To use a custom favicon for your project's website, add the `favicon.ico` file t
Minimizing the number of changes committed in the project's Maven- or JavaDoc- generated site
-If you are using `svnpubsub`, the commit performs very slowly if the number of changes is large, particularly if the number of files is also large. This is often the case with JavaDoc, and to a lesser extent with Maven-generated sites.
+If you are using `svnpubsub`, the commit performs very slowly if the number of changes is large, particularly if the number of files is also large. This is often the case with JavaDoc, and to a lesser extent with Maven-generated sites.
To speed up the commit:
diff --git a/content/pages/publishing-maven-artifacts.md b/content/pages/publishing-maven-artifacts.md
index fe9ecd985..a90cdf919 100644
--- a/content/pages/publishing-maven-artifacts.md
+++ b/content/pages/publishing-maven-artifacts.md
@@ -16,7 +16,7 @@ Before a project can use the repository to release Maven artifacts, it must be c
- **Project URL**: a link to your project page (usually `https://.apache.org/`).
- **SVN URL**: where you store your source code, in case Infra needs to look up more information.
- **Maven Group IDs**: a list of the groupIDs for this project. They should all be subgroups of `org.apache`.
- - **Managed By This TLP Project**: if this is a subproject, list the TLP that is responsible. Subprojects usually don't have their own LDAP group, so we need the TLP LDAP group for permissions.
+ - **Managed By This TLP Project**: if this is a subproject, list the TLP that is responsible. Subprojects usually don't have their own LDAP group, so we need the TLP LDAP group for permissions.
If you have specific questions or concerns, please call them out in the ticket.
@@ -27,9 +27,11 @@ Once you file the Jira ticket, Infra will do the following:
- **Check POMs**: If your project is Maven-based, we will check your POM for any obvious problems.
## Adjusting your build to deploy to the ASF Nexus repository ##
+
To use the ASF Nexus repository, follow these steps.
### Inherit the Apache POM ###
+
Inherit the Apache Parent POM like this:
```
@@ -110,6 +112,7 @@ mvn deploy
- Verify the deployment under the ASF Maven Snapshot repository.
### 3. Prepare the release ###
+
```
mvn release:clean
mvn release:prepare
@@ -144,6 +147,7 @@ svn: File
'/repos/asf/maven/plugins/tags/maven-eclipse-plugin-2.7/.../EclipsePlugin.java'
already exists
```
+
Then use a Subversion client 1.6 or newer and run `svn update`.
2. If you get an **error message** similar to:
@@ -160,7 +164,7 @@ svn: Path
already exists
```
-Delete the tag using
+Delete the tag using
`svn del -m "re-releasing build" {svn path}`
@@ -168,13 +172,13 @@ This likely occurred because you're trying to restage the release and you didn't
## Procedures for Ant + Ivy ##
-Apache Ant is a popular command-line build tool. Ivy is a dependency manager designed to work with Ant.
+Apache Ant is a popular command-line build tool. Ivy is a dependency manager designed to work with Ant.
### 1 Prepare your build ###
Usually your normal build process will create the artifacts you want to publish (typically jars), but you may need to PGP-sign them the same way you sign your normal distribution artifacts. The jars are expected to follow the naming scheme `artifactId-version.jar`.
-You will need a minimal POM for your jar. If you are already using Ivy, you can use the `makepom` task to create one from your `ivy.xml` file. Otherwise see the Apache Maven project's documentation for "minimal" and the Apache Compress Antlib's POM for an example.
+You will need a minimal POM for your jar. If you are already using Ivy, you can use the `makepom` task to create one from your `ivy.xml` file. Otherwise see the Apache Maven project's documentation for "minimal" and the Apache Compress Antlib's POM for an example.
If you are publishing multiple jars you may consider adding a parent POM to encapsulate the common information; see the Maven documentation for details. An example might be Ant's parent POM, used for the several jars that make up an Ant release.
@@ -227,5 +231,3 @@ If you bungled the release or your vote failed, follow promote the artifacts to the release repository where they will get picked up by Central.
-
-
diff --git a/content/pages/pypubsub.md b/content/pages/pypubsub.md
index 4989c1132..d490dcee7 100644
--- a/content/pages/pypubsub.md
+++ b/content/pages/pypubsub.md
@@ -12,14 +12,15 @@ Currently, the service streams the following events:
* Pull Requests and Issues from GitHub
* Staging and publishing notifications sent via our [.asf.yaml](https://s.apache.org/asfyaml) offering.
-Events are delivered as JSON objects in a chunked response stream, with each new chunk being either an event payload or a keep-alive ping.
+Events are delivered as JSON objects in a chunked response stream, with each new chunk being either an event payload or a keep-alive ping.
## Live stream explorer
-You can explore our pubsub stream using the [PyPubSub Explorer](/tools/pse/), a live visualization tool for PyPubSub streams.
+You can explore our pubsub stream using the [PyPubSub Explorer](/tools/pse/), a live visualization tool for PyPubSub streams.
## How to subscribe
-Subscribers can pick one or multiple topics to subscribe to, with more specific subscriptions getting fewer, but more specific, event payloads. Construct subscriptions in the form of: `http://pubsub.apache.org:2069/topics/go/here`, and separate the topics you want to subscribe to with forward slashes.
+
+Subscribers can pick one or multiple topics to subscribe to, with more specific subscriptions getting fewer, but more specific, event payloads. Construct subscriptions in the form of: `http://pubsub.apache.org:2069/topics/go/here`, and separate the topics you want to subscribe to with forward slashes.
The service returns events that match _all_ of the topics you are subscribed to.
To subscribe to multiple topic batches in an OR'ed way, you may use a comma to separate your batches of topics.
@@ -44,10 +45,10 @@ Private SVN repos topics are constructed in the same way, but have an additional
For example `https://pubsub.apache.org:2070/private/svn/private/committers/commit` returns commits for
`https://svn.apache.org/repos/private/committers/board/`
-
## Event payload examples
Pings are simple objects like this:
+
~~~ json
{"stillalive": 1583973410.9620552}
~~~
@@ -84,7 +85,9 @@ An example of a real event payload, in this case a git commit, could be (emails
Payloads vary depending on what they represent, so check both what sub-objects are present in the payload and the `pubsub_path` variable, which will show the full payload event path and explain which type is being sent.
## Try it yourself
+
To try it out and take a look at the event stream, use [cURL](https://en.wikipedia.org/wiki/CURL) in your terminal:
+
~~~ bash
curl http://pubsub.apache.org:2069/git/commit
~~~
@@ -92,9 +95,11 @@ curl http://pubsub.apache.org:2069/git/commit
A secure version also exists on port 2070, for use with authenticated event streams:
+
~~~ bash
curl https://pubsub.apache.org:2070/git/commit
~~~
+
Please note that due to limitations in our TLS terminator, payloads larger than 64kb are split into 64kb chunks on
port 2070. If you are using port 2070, you should ensure that the data you receive is terminated with a newline (\n),
or continue fetching data till you hit a chunk terminated with a newline.
@@ -104,10 +109,12 @@ N.B. the following curl switches may be added:
* -N - non-buffered output; used when piping into another command (e.g. tail)
* -sS - silent mode (-s) but still shows error messages (-S)
-
## Using PyPubSub in programming
+
### Using PyPubSub with Python
+
You can listen for and react to payloads in Python using the [asfpy](https://pypi.org/project/asfpy/) pip package:
+
~~~ python
import asfpy.pubsub
@@ -122,7 +129,9 @@ def main():
~~~
### Using PyPubSub with node.js
+
This sample snippet lets you use `node.js` for listening for and processing pubsub events:
+
~~~ javascript
const http = require("http");
const https = require("https");
@@ -169,6 +178,7 @@ pps.attach(process);
~~~
### Using PyPubSub with Ruby
+
This sample lets you connect to our pubsub service via Ruby:
~~~ruby
@@ -230,8 +240,10 @@ end
~~~
## Want to know more? Have questions?
+
To learn more, or just get some questions answered, please contact us at `users@infra.apache.org`, and we'll try our best to help you out.
## Acknowledgements
+
PyPubSub is based on [SvnPubSub](https://paul.querna.org/articles/2010/10/22/evolution-of-apaches-websites/)
and gitpubsub. We wish to thank the Subversion project for building the precursor to this service.
diff --git a/content/pages/qbot.md b/content/pages/qbot.md
index f726e44b1..86af84f44 100644
--- a/content/pages/qbot.md
+++ b/content/pages/qbot.md
@@ -6,6 +6,7 @@ The Infrastructure team's **Qbot** is a Slack assistant that can simplify both i
The name references the tool-maker 'Q', who provides weapons and gadgets for Agent 007 in the James Bond movies.
## What Qbot can do
+
Qbot has an evolving set of functions:
- Adding people to private channels
@@ -16,6 +17,7 @@ Qbot has an evolving set of functions:
It also has a set of 'fun' features, such as rolling dice, flipping a coin, or talking to someone from the (fictional) ASF Human Resources Department.
## Setting up Qbot in your PMC's channels
+
If you want to have Qbot available in your PMC's channel, create a Jira ticket for Infra with the request. Include this information:
- If you want to get Jira-ticket notifications, the name of the channel or channels where notifications about tickets related to your projects should appear
@@ -31,8 +33,8 @@ See also "Jira-related functions", below.
To have Qbot active in a project's private channel, once it is available in your public channels, someone already in the channel has to invite it with the Slack command `invite @QBot`.
-
## Talking to Qbot
+
In Slack, there are three ways to talk to Qbot:
- Anywhere in the ASF workspace, type `/qbot` and the command you want to give it. If it is a command which you do not have permission to use where you currently are in Slack, the command will fail.
@@ -41,14 +43,15 @@ In Slack, there are three ways to talk to Qbot:
- Click that entry to see a display with three tabs.
- Select the `Messages` tab.
- Write your command to Qbot without `/` or 'qbot` at the start.
-
## Qbot commands
+
**Note** we are expanding Qbot's reach, and this list will expand to match its capabilities.
- `help` - You see a list of the available commands: `qbot help`.
### Adding yourself to a private channel
+
- `addme`- Add yourself to a private channel. (Without Qbot, you have to ask someone already in the channel to add you.) You can make the command from anywhere in the ASF workspace. The syntax is `/qbot addme `.
### Jira-related functions
@@ -93,4 +96,5 @@ _Note: the following two commands are in 'alpha' development and may not work as
- `queue` - Performs the same function as `q`. The syntax is `qbot queue start`.
## Requesting features
+
If you have an idea for a Qbot service that could help your PMC on Slack (or you just want to add a verse from another sea shanty), please suggest it in the Infrastructure-ideas repository.
diff --git a/content/pages/reference/committer/index.md b/content/pages/reference/committer/index.md
index ed416df0f..5a5a7cbb8 100644
--- a/content/pages/reference/committer/index.md
+++ b/content/pages/reference/committer/index.md
@@ -2,7 +2,7 @@ Title: Committer Documentation
slug: reference/committer/index For committers (primarily)
license: https://www.apache.org/licenses/LICENSE-2.0
-A more general list of services and tools is available.
+A more general list of services and tools is available.
* Contacting Infrastructure
* Committer e-mail configuration
diff --git a/content/pages/reference/committer/start.md b/content/pages/reference/committer/start.md
index f4d90025e..5a69cf2de 100644
--- a/content/pages/reference/committer/start.md
+++ b/content/pages/reference/committer/start.md
@@ -5,7 +5,6 @@ license: https://www.apache.org/licenses/LICENSE-2.0
Here you'll find a comprehensive list of topics that covers most of what you will run into
as a committer at the Apache Software Foundation.
-
### Need to contact the infrastructure team?
- Contacting Infra
@@ -25,7 +24,6 @@ as a committer at the Apache Software Foundation.
- Committer email
-
### Using ASF virtual machines
- Virtual machine policy
@@ -36,7 +34,6 @@ as a committer at the Apache Software Foundation.
- Project website policy
- Managing your project website
-
### Jenkins
- Using Docker on builds.apache.org
diff --git a/content/pages/release-distribution.md b/content/pages/release-distribution.md
index 2f922e654..dd3f51fb2 100644
--- a/content/pages/release-distribution.md
+++ b/content/pages/release-distribution.md
@@ -112,7 +112,7 @@ Regarding KEYS files:
- Website documentation for any Apache product **must** provide public download links where interested parties may obtain current official source releases and accompanying cryptographic files.
- Links to artifacts **must not** reference the main Apache web site. They **must** use the [standard procedure](release-download-pages.html) to make downloads available through the content distribution system.
- - All links to checksums, detached signatures and public keys for current releases **must** reference `downloads.apache.org/` using `https://`.
+ - All links to checksums, detached signatures and public keys for current releases **must** reference `downloads.apache.org/` using `https://`.
- Legacy links to `https://[www.]apache.org/dist/...` still work, but new links should use `downloads.apache.org`.
- Older release checksums are on `archive.apache.org`, and you **may** also link to them.
- All releases, including old releases, are archived automatically. You **may** link from your PMC's download page to archived older releases for community convenience.
diff --git a/content/pages/release-download-pages.md b/content/pages/release-download-pages.md
index 12a016f8f..c1d956b11 100644
--- a/content/pages/release-download-pages.md
+++ b/content/pages/release-download-pages.md
@@ -10,7 +10,7 @@ Review
- the policy on [release distribution](release-distribution.html) if you are unsure of the best way to use the project download page
- guidelines on [signing releases](release-signing.html)
-## Contents
+## Contents
- Download links
@@ -38,7 +38,7 @@ Your Apache project's download page:
- **must** have at least one link to the current release. This link **must** use the `closer.lua` utility. For example: `https://www.apache.org/dyn/closer.lua/PROJECT/VERSION/SOURCE-RELEASE`. (Note: the `mirrors.cgi` and `closer.cgi` scripts have been deprecated. Calls to them redirect to `closer.lua`.)
- **must** have a link to the checksum for the current release. These links **must** use direct links to the Apache distribution server. For example: `https://downloads.apache.org/PROJECT/VERSION/CHECKSUM`.
- **must** have a link to the KEYS file for your project on the Apache distribution server. For example: `https://downloads.apache.org/PROJECT/KEYS`.
- - **must** have a link to the signature file for each release. See the [release signing](release-signing.html) page for more information.
+ - **must** have a link to the signature file for each release. See the [release signing](release-signing.html) page for more information.
- **should** have instructions on how to verify downloads. For this you can include a link to the Apache documentation on verification.
- **must not** include a download link to the top-level `closer.lua` utility (e.g. `http://www.apache.org/dyn/closer.lua/PROJECT`).
@@ -67,7 +67,7 @@ There are two options:
Generic closer.lua download script
-The starting point for using the generic `closer.lua` script is a download page in your project's standard documentation which describes the releases. To use the generic script:
+The starting point for using the generic `closer.lua` script is a download page in your project's standard documentation which describes the releases. To use the generic script:
- Alter the page so the download link points to `closer.lua`.
- Pass in the relative path from the distribution root to the artifact as a parameter.
@@ -93,7 +93,6 @@ There is no requirement to name the script `download.cgi` and the download relea
- `release.cgi` and `release.html` will work
- `download.cgi` and `release.html` will **not** work
-
There are a number of elements that a good project download page should contain. See the content to generate that page here.
Alternately, you can get inspiration from the [default download template](https://github.com/apache/infrastructure-p6/blob/production/modules/closer_cgi/files/closer.html) that will be used when no custom HTML template exists for a project.
diff --git a/content/pages/release-integrity-primer.md b/content/pages/release-integrity-primer.md
index c7a66ae44..3188e1a30 100644
--- a/content/pages/release-integrity-primer.md
+++ b/content/pages/release-integrity-primer.md
@@ -7,7 +7,6 @@ This page will help you resolve [release distribution policy](https://infra.apac
Each reported error has an accompanying error code (`CHKxx`). The code will help you resolve issues by using the matrix below:
-
| Error Code | Error Description | How to Address the Issue |
|------------|-------------------|------------|
| `CHK01` | Key used for signing artifact is missing from the [`KEYS`](https://infra.apache.org/release-signing.html#key-basics) file | Make sure the key that signed the release was expected.
Update your [`KEYS`](https://infra.apache.org/release-signing.html#key-basics) file to include the key. Remember to move your updated `KEYS` file from `/dev/` to `/release/` on dist.apache.org when releasing with new keys. |
@@ -18,13 +17,15 @@ Each reported error has an accompanying error code (`CHKxx`). The code will help
| `CHK06` | Checksum mismatch | Try to spot what the problem was (why are you generating the wrong checksum?): - If the file has a valid signature (no `CHK04` or `CHK05` errors for this file), generate a [conforming checksum](https://infra.apache.org/release-signing.html#sha-checksum), add it, and remove the broken one.
- Otherwise: treat as if `CHK05`.
|
## Handling invalid or missing signatures
+
In case of an invalid or missing signature for a release artifact, the project MUST choose one of the following actions:
+
- Remove the artifact(s)
- Re-assert that the artifact is valid, sign and upload the correct .asc signature file (and fix any missing/invalid checksum files)
-
- In either case, the project MUST inform the ASF Infrastructure and Security Team
- at `private@infra.apache.org` and `security@apache.org` of their action, with clear evidence that the action
+
+ In either case, the project MUST inform the ASF Infrastructure and Security Team
+ at `private@infra.apache.org` and `security@apache.org` of their action, with clear evidence that the action
has been discussed and agreed upon (a link to a lists.apache.org thread will suffice).
-If you have questions about the error reports, this page, or our release distribution polices in general,
+If you have questions about the error reports, this page, or our release distribution polices in general,
feel free to reach out to us at `users@infra.apache.org`.
diff --git a/content/pages/release-publishing.md b/content/pages/release-publishing.md
index 4965a7627..4f238aa5e 100644
--- a/content/pages/release-publishing.md
+++ b/content/pages/release-publishing.md
@@ -39,11 +39,11 @@ A release starts when the project community agrees to make a release. However, n
Most projects designate a committer to be the _release manager_ who takes responsibility for the mechanics of a release. It is a good idea to let several committers take this role on different releases so that more than one person is comfortable doing a release. Release managers shepherd a release from an initial community consensus to getting the compiled code package to final distribution, and may be involved in publicizing the release to the project's community and the ASF in general.
-By default, only PMC members can publish release artifacts to https://dist.apache.org/repos/dist/release/. If your project wishes to allow non-PMC member committers to publish release artifacts, please open a Jira ticket for Infra with your request. Note that there are only two options: only PMC members can publish release artifacts, or all the project's Committers can publish release artifacts.
+By default, only PMC members can publish release artifacts to https://dist.apache.org/repos/dist/release/. If your project wishes to allow non-PMC member committers to publish release artifacts, please open a Jira ticket for Infra with your request. Note that there are only two options: only PMC members can publish release artifacts, or all the project's Committers can publish release artifacts.
Allowing Committers to publish release artifacts requires project consensus, so include a link to an email thread with that consensus.
-**Note**: Any PMC member of a project using the **ATR** platform can assign a **specific Committer** to the role of release manager, rather than giving blanket permission to all Committers of the PMC. Consult the [ATR documentation](atr.html).
+**Note**: Any PMC member of a project using the **ATR** platform can assign a **specific Committer** to the role of release manager, rather than giving blanket permission to all Committers of the PMC. Consult the [ATR documentation](atr.html).
***Release managers do the mechanical work; but the PMC in general, and the PMC chair in particular (as an officer of the Foundation), remain responsible for compliance with ASF requirements.***
@@ -113,19 +113,17 @@ See [Publishing Maven releases](publishing-maven-artifacts.html).
Release distribution availability schedule
-Releases pushed to the `dist/release` subversion directory will be available for download almost immediately after the push/move operation has completed,
-though the exact speed depends on the size of the artifact(s) that have been uploaded. Generally speaking, releases should be available on
+Releases pushed to the `dist/release` subversion directory will be available for download almost immediately after the push/move operation has completed,
+though the exact speed depends on the size of the artifact(s) that have been uploaded. Generally speaking, releases should be available on
[downloads.apache.org](https://downloads.apache.org/) within 15 minutes of publishing them to `dist/release`.
-
-Our global content delivery network (CDN) at [dlcdn.apache.org](https://dlcdn.apache.org/) will have files available for download within
-seconds of them appearing on downloads.apache.org. However, due to our current caching algorithms, they may not appear in the raw directory listings
-for up to two hours even though the files are present on the service. We are currently working on ways to improve this experience, and will
+Our global content delivery network (CDN) at [dlcdn.apache.org](https://dlcdn.apache.org/) will have files available for download within
+seconds of them appearing on downloads.apache.org. However, due to our current caching algorithms, they may not appear in the raw directory listings
+for up to two hours even though the files are present on the service. We are currently working on ways to improve this experience, and will
update this page when/if the process has changed.
-
-Our [download helper script](release-download-pages.html#download-scripts) also employ caching to help speed up processing, and its findings
-(whether or not a release is present on the CDN) may be delayed by up to an hour in some circumstances. We therefore advise projects to wait
+Our [download helper script](release-download-pages.html#download-scripts) also employ caching to help speed up processing, and its findings
+(whether or not a release is present on the CDN) may be delayed by up to an hour in some circumstances. We therefore advise projects to wait
for one hour after publishing a release before announcing it to the wider public.
As a rule of thumb, projects should currently:
@@ -134,7 +132,6 @@ As a rule of thumb, projects should currently:
2. after a few minutes, check [downloads.apache.org](https://downloads.apache.org/) for whether their release has been published on our download server
3. when the download is present, wait one hour for any caching to reset, then announce the general availability of the release
-
FAQs
- **How do I archive an old release?** `downloads.apache.org` is automatically archived every four hours. Therefore, a copy of every official release exists in the archives. Just delete the copy of the release that is in your project's dist directory. Remember to update any links from the download page related to that release.
diff --git a/content/pages/release-signing.md b/content/pages/release-signing.md
index 0534ff1ac..f5f2ae901 100644
--- a/content/pages/release-signing.md
+++ b/content/pages/release-signing.md
@@ -24,7 +24,6 @@ This document is informative and does not constitute policy.
- Automated Release Signing
- Further Reading
-
### FAQs from those downloading releases
- What does verifying a signature mean?
@@ -64,7 +63,7 @@ Form the names of these files by adding to the name of the artifact the followin
- the signature by suffixing `.asc`
- the checksum by suffixing `.sha256` or `.sha512` (as appropriate)
-Release managers **must not** store private keys used to sign Apache releases on ASF hardware.
+Release managers **must not** store private keys used to sign Apache releases on ASF hardware.
See the release distribution policy for details.
@@ -96,8 +95,8 @@ Create a OpenPGP compatible ASCII armored de
It is
- - an OpenPGP compatible
- - ASCII armored
+ - an OpenPGP compatible
+ - ASCII armored
- detached signature
To create one using GNU Privacy Guard for file
@@ -173,7 +172,7 @@ Apache recommends that ASF release managers use Where should I create the signatures?
Creating signatures requires the private key. Keep limited copies of the private key securely and confidentially. Though the file used
-to store the private key is typically protected by encryption, it is vulnerable to dictionary attacks on the passphrase. So keep this file secret.
+to store the private key is typically protected by encryption, it is vulnerable to dictionary attacks on the passphrase. So keep this file secret.
Create signatures on the machine where you store the private key, on secure hardware with limited read permissions, protected by a good
passphrase. Consider using removable media or an isolated
@@ -225,7 +224,7 @@ SHA512 is the strongest well-studied, widely-used cryptographic hash. It is ther
How to generate a code signing key
-The exact mechanics are application-dependent. For GnuPG (recommended):
+The exact mechanics are application-dependent. For GnuPG (recommended):
- Follow the strong key generation instructions
- Decide on the right key length
@@ -279,7 +278,7 @@ $ gpg --refresh-keys
How to export a key
You can export a public key through OpenPGP by using
-`--export`. Typically, the export should be ASCII armored.
+`--export`. Typically, the export should be ASCII armored.
To export all public keys to the command line use:
@@ -366,14 +365,13 @@ sub 8192R/B800EFC1 2009-08-07
shows that key `B1313DE2` has length 1024 and `A6EE6908` length 8192.
-
Key basics
To sign releases, you need to generate a new master key-pair for code signing. Follow these instructions.
The KEYS File
-The KEYS file is a plain-text file containing the public key signatures of the release managers (and optionally other committers) for the project. A good example is the Apache Ant KEYS file.
+The KEYS file is a plain-text file containing the public key signatures of the release managers (and optionally other committers) for the project. A good example is the Apache Ant KEYS file.
It is traditional to include the following header to explain how to use the file. These commands generate a descriptive comment describing the key, followed by the key itself. Key handling software ignores the comments when importing a key file:
@@ -399,7 +397,7 @@ Since users may need the KEYS file to check signatures for archived releases, it
FAQ will be a reasonable first port of call.
You need an application to manage keys and create signatures. We recommend GNU Privacy Guard, and the Apache documentation generally assumes that's what
-you're using. (We welcome contributions that document use of other tools.) Read the Apache PGP user guide and keep the manual handy.
+you're using. (We welcome contributions that document use of other tools.) Read the Apache PGP user guide and keep the manual handy.
GnuPG can handle MD5 and SHA checksums as well as PGP signatures. It is your all-in-one cross-platform tool for release signing and verification.
@@ -439,7 +437,7 @@ It is difficult to personally verify the identity of all useful p
You can use webs of trust to solve the problem of verifying the identity of public keys.
-**Note:** to take full advantage of a web of trust, it is important to actively build your personal web of trust into the major public webs of trust. Conferences are an ideal opportunity for exchanging key information, but you must come prepared.
+**Note:** to take full advantage of a web of trust, it is important to actively build your personal web of trust into the major public webs of trust. Conferences are an ideal opportunity for exchanging key information, but you must come prepared.
For more information read the GNU Privacy Handbook.
@@ -481,7 +479,6 @@ It is vital that the private key is kept safe and secure. Though the file is enc
However, for code signing keys we recommend taking additional measures. Reduce the window of vulnerability by using an
isolated installation or by storing the private key on removable media (which you should remove and store securely when not actually signing a release.).
-
The meaning of 'isolated installation'
An isolated installation is inaccessible when you are not using it to sign releases. For example, create an installation on a separate hard disc or use a live CD.
@@ -580,7 +577,6 @@ owner.
Primary key fingerprint: 82D1 169B E6F1 9D14 DA76 A5DD 968E 66E4 4A03 679A
```
-
FAQs from those downloading releases
What does verifying a signature mean?
@@ -631,7 +627,7 @@ to import the public keys.
What is the difference between secure hardware and trusted hardware?
-**Secure hardware**: your personal laptop would quality as "secure" provided that only you have root/admin access to it, so only you can access private keys stored on it.
+**Secure hardware**: your personal laptop would quality as "secure" provided that only you have root/admin access to it, so only you can access private keys stored on it.
**Trusted hardware** is secure hardware under the direct control of the release manager, with limited release permissions, and protected by a passphrase and possibly other security measures.
@@ -715,7 +711,6 @@ The project must request a signing key through an Infra Jira ticket, and Infra w
- The private key will never be shared with the project or anyone outside of the infra-root team, but will be available to the chosen CI system
- The public key will be sent to the project or added to their KEYS file
-
Further reading
There are many other excellent resources on signing releases, but these make a good start:
diff --git a/content/pages/repository-faq.md b/content/pages/repository-faq.md
index 44f980365..71aeef57a 100644
--- a/content/pages/repository-faq.md
+++ b/content/pages/repository-faq.md
@@ -5,7 +5,7 @@ license: https://www.apache.org/licenses/LICENSE-2.0
**Reminder**: Apache projects **must** release all software packages through the ASF distribution system. See [Release distribution policy](release-distribution.html) for more details.
-The ASF maintains internal snapshot and release Maven repositories at https://repository.apache.org. The repository also proxies Apache's legacy repositories.
+The ASF maintains internal snapshot and release Maven repositories at https://repository.apache.org. The repository also proxies Apache's legacy repositories.
**Note**: these repos are intended for internal ASF project use, not for public distribution of artifacts. Except in the rare situation when a project needs external testing of preproduction artifacts, **do not** provide download links to 'repository.apache.org' assets to users external to The ASF.
diff --git a/content/pages/request-bug-tracker.md b/content/pages/request-bug-tracker.md
index 3bee59395..fa8a2514f 100644
--- a/content/pages/request-bug-tracker.md
+++ b/content/pages/request-bug-tracker.md
@@ -20,7 +20,8 @@ Infra itself uses Jira, so to request a Jira instance for your project, create a
Infra will respond within a couple of days, either with a request for clarification of some point or to let you know that the instance is set up and ready for your project to use.
### Using GitHub Issue tracking
-Enabling GitHub Issue tracking for your project is self-serve. In the .asf.yaml file for your repository, locate the `github` section and set the `issues` option to true, as in the example below.
+
+Enabling GitHub Issue tracking for your project is self-serve. In the .asf.yaml file for your repository, locate the `github` section and set the `issues` option to true, as in the example below.
```
github:
diff --git a/content/pages/responsetime.md b/content/pages/responsetime.md
index ddb0c7775..16e55de9c 100644
--- a/content/pages/responsetime.md
+++ b/content/pages/responsetime.md
@@ -18,18 +18,21 @@ For the current status of services, see here. (requires login)
-If the meeting does not get to discuss a question you submitted, feel free to ask it in the `asfinfra` Slack channel, or bring it up again at the next roundtable.
+If the meeting does not get to discuss a question you submitted, feel free to ask it in the `asfinfra` Slack channel, or bring it up again at the next roundtable.
diff --git a/content/pages/sensitive_info.md b/content/pages/sensitive_info.md
index 3e1867607..3297e8135 100644
--- a/content/pages/sensitive_info.md
+++ b/content/pages/sensitive_info.md
@@ -10,4 +10,4 @@ It is sometimes necessary for you to share sensitive information with the Infras
**Do not** share such information on an ASF Slack channel, a public email thread, as a comment on a Jira ticket, or as a GitHub issue.
-**Do** share it in an email to `root@infra.apache.org`. **Do not** copy or blind-copy the message you are sending to any other address.
+**Do** share it in an email to `root@infra.apache.org`. **Do not** copy or blind-copy the message you are sending to any other address.
diff --git a/content/pages/services.md b/content/pages/services.md
index 99b00069a..a21dff891 100644
--- a/content/pages/services.md
+++ b/content/pages/services.md
@@ -31,6 +31,7 @@ Infra maintains a wide range of tools for PMCs, project committers, and the Apac
- DNS
- URL shortener
- Machine list
+
Services for Top-Level Projects (TLPs)
@@ -80,14 +81,15 @@ You can subscribe to notices of infrastructure events that you want to know abou
LDAP-enabled services
-Infra supports many ASF LDAP-enabled services. You can log in to them with your LDAP credentials.
+Infra supports many ASF LDAP-enabled services. You can log in to them with your LDAP credentials.
Services for incubating projects (podlings)
-Infra supports incubating projects, or podlings.
+Infra supports incubating projects, or podlings.
- An introduction to [Infra and the Incubator](infra-incubator.html), showing the steps for setting up a new podling.
- Guidance for [selecting a project or product name](project-names.html)
+
@@ -118,7 +120,6 @@ Apache provides, and Infra maintains, [code repositories](version-control.html)
- Subversion (SVN) repositories
- ViewVC (Browser interface to the main SVN repository)
-
Issue tracking and feature requests
The ASF supports these options for tracking issues and feature requests:
diff --git a/content/pages/slack-policy.md b/content/pages/slack-policy.md
index 054310456..42d932ba5 100644
--- a/content/pages/slack-policy.md
+++ b/content/pages/slack-policy.md
@@ -4,14 +4,17 @@ license: https://www.apache.org/licenses/LICENSE-2.0
**note**: Consult [Slack for ASF projects](slack.html) for details on using Slack.
## Expectations
+
As with all ASF activities, we expect ASF Members and project participants to conduct themselves on Slack according to the ASF Code of Conduct.
We expect channel participants to be respectful and supportive of other participants, and to make contributions that add to the conversation, rather than blurring it. If a participant makes contributions that are disrespectful, offensive, or contrary in other ways to The Apache Way, please report them to Infra.
## Limitations to private Slack channels for projects
+
Projects should **only** create and use _private_ Slack channels to discuss security matters and similarly-sensitive issues. All other project-related (and community-building) discussions should be in non-private channels.
**Only ASF Members and project committers** should have access to a project's private channels, and non-committeers **should not** be invited to take part in discussions on such channels, unless there is some urgent reason their participation is essential.
## Limitations to direct-message discussions
+
There is a pattern of project members using direct messages with multiple participants to discuss project-related matters. Any decision that participants reach in such a discussion about the project or its products **must** be documented in the appropriate email thread for the project.
diff --git a/content/pages/slack.md b/content/pages/slack.md
index 198cf440a..a4645dc9b 100644
--- a/content/pages/slack.md
+++ b/content/pages/slack.md
@@ -31,10 +31,11 @@ Infra has disabled the option that would let you provide a member invite link to
### Slack Account Types
Slack has two account types:
+
- **Member**: has full access to all Slack's features, including inviting others to join the workspace.
- **Guest**: has limited access inside Slack and can only access the channel(s) they are invited to join.
-Slack has a list of permissions for these account types.
+Slack has a list of permissions for these account types.
#### ASF and Slack 'members'
@@ -47,18 +48,17 @@ For the Apache Software Foundation:
## Joining project channels
-Once you are part of the ASF workspace as a member or a multi-channel guest, you can join any public channels you wish to.
+Once you are part of the ASF workspace as a member or a multi-channel guest, you can join any public channels you wish to.
- At the top of your list of channels in the Slack app, click the **+** icon.
- Use the _Browse channels_ option to display a list of open channels in the workspace; or enter text in the search field.
- Select any channel to add it to your channel list.
-
+
Some ASF channels are **private** or **locked**, and do not appear on the list of channels you can join. Someone who is already in the channel has to invite you to join such a channel.
-
+
If you are a single-channel guest and wish to join additional channels, ask an ASF Member or committer to open a Jira ticket for Infra with the request. They should provide your user name and the additional channels you would like to join.
-
-It is good manners to send a hello message to a channel you join, possibly with a short statement of why you are there.
+It is good manners to send a hello message to a channel you join, possibly with a short statement of why you are there.
## Setting up a project channel
diff --git a/content/pages/stats.md b/content/pages/stats.md
index 3b3e116ce..f59e15b52 100644
--- a/content/pages/stats.md
+++ b/content/pages/stats.md
@@ -2,7 +2,7 @@ Title: Status pages
license: https://www.apache.org/licenses/LICENSE-2.0
- See what services are running well and which are reporting issues on the Status page. If a problem is showing here, Infra has already received an alert about it.
-
+
- Our ASF Infrastructure Reporting Dashboard has a variety of live reports, including uptime statistics, website source scans, and more.
- To view download stats for your project, visit the download stats page.
diff --git a/content/pages/svn-basics.md b/content/pages/svn-basics.md
index a0c50849f..0b3c5026e 100644
--- a/content/pages/svn-basics.md
+++ b/content/pages/svn-basics.md
@@ -22,7 +22,7 @@ If you just wish to browse around or download a few individual files, the best t
**Anonymous Subversion**
-To access the Subversion repository anonymously, you need a Subversion client.
+To access the Subversion repository anonymously, you need a Subversion client.
**Finding the project you want**
diff --git a/content/pages/svn-to-git-migration.md b/content/pages/svn-to-git-migration.md
index ae0542ce7..cb18dbbd2 100644
--- a/content/pages/svn-to-git-migration.md
+++ b/content/pages/svn-to-git-migration.md
@@ -8,10 +8,8 @@ If your project has an existing SVN mirror on GitHub and it is NOT up to date, p
If you do not have an existing GitHub mirror, you can self-serve your migration using the following steps:
1. Request a bare (empty) Git repository via selfserve.
- 1. Use svn2git to convert your SVN repository to Git.
+ 1. Use svn2git to convert your SVN repository to Git.
1. When the conversion is complete, push the new repository to `gitbox.apache.org` (or GitHub).
1. Ask Infra (using a Jira ticket) to set the old SVN repository to read-only.
The SVN authors' list (required by svn2git for cloning) is at https://gitbox.apache.org/authors.txt.
-
-
diff --git a/content/pages/svngit2jira.md b/content/pages/svngit2jira.md
index f8aa8a5a8..62ca0e9ad 100644
--- a/content/pages/svngit2jira.md
+++ b/content/pages/svngit2jira.md
@@ -12,12 +12,12 @@ This service also plugs into the General use
-The most common scenario is to mention a Jira ticket in your commit, and the service updates the ticket to reflect your new commit. Some
+The most common scenario is to mention a Jira ticket in your commit, and the service updates the ticket to reflect your new commit. Some
projects have a trigger set so that it only updates a ticket if the first sentence is the Jira ticket number, but we can tailor this to suit your project's needs.
Setting up svngit2jira
-To enable the service for your project, create an
+To enable the service for your project, create an
Infra Jira ticket. Include this information:
- The name of the project.
diff --git a/content/pages/team.md b/content/pages/team.md
index 0386209db..6cb8b1d5d 100644
--- a/content/pages/team.md
+++ b/content/pages/team.md
@@ -2,15 +2,19 @@ Title: About the Apache Infrastructure Team
license: https://www.apache.org/licenses/LICENSE-2.0
# ASF Infra
+
The ASF Infrastructure team, known as **Infra**, provides and manages all infrastructure and services for the ASF, and for each project that is part of the Foundation: physical and virtual servers and their operating systems, mailing lists, version control systems, committer accounts, the artifact distribution system, issue tracking systems, and tools and services to facilitate the work of the Foundation, its projects, and committers.
## About us
+
Infra has a core team made up of an administrator and a number of paid contractors, most of whom are system administrators; and volunteers who are generally also committers to ASF projects. The core team collaborates to respond to issues and assign development and maintenance tasks for the best benefit of the entire ASF community. The volunteers bring their skills to bear on their areas of interest, reducing the load on the core team.
in 2020 the main ASF blog published a series of interviews with Infra team members. Links to the interviews are available at cwiki.apache.org/confluence/display/INFRA/The+Infrastructure+team.
## How we help
-Infra is responsible for ASF system administration and security, and supports existing projects at The ASF. Infra works hard to provide services and setup for each new project that joins the Foundation via the Apache Incubator. If you have questions about or require support regarding email, code repositories, web sites, issue trackers and so forth, we are here to [help](contact.html).
+
+Infra is responsible for ASF system administration and security, and supports existing projects at The ASF. Infra works hard to provide services and setup for each new project that joins the Foundation via the Apache Incubator. If you have questions about or require support regarding email, code repositories, web sites, issue trackers and so forth, we are here to [help](contact.html).
## How you can help
+
Volunteers are the driving force of the ASF. The Infrastructure team is always looking for people willing to help out at whatever effort level suits you. If you're interested, visit our [volunteer information](infra-volunteer.html) page.
diff --git a/content/pages/tools/csp.md b/content/pages/tools/csp.md
index c76fb3f97..a727a2a4c 100644
--- a/content/pages/tools/csp.md
+++ b/content/pages/tools/csp.md
@@ -1,8 +1,7 @@
Title: Updating your project website's CSP header
slug: tools/csp
-
-To update your project website's Content-Security-Policy (CSP) header,
+To update your project website's Content-Security-Policy (CSP) header,
you will need to create a `.htaccess` file at the root of the website output.
The .htaccess file needs only a single directive with a comment:
@@ -12,10 +11,10 @@ The .htaccess file needs only a single directive with a comment:
SetEnv CSP_PROJECT_DOMAINS "host1 host2 host3"
~~~
-Where `host1`, `host2`, and so on, are the additional domains or URLs your
-project needs to unblock for the website to work. Each additional host you
+Where `host1`, `host2`, and so on, are the additional domains or URLs your
+project needs to unblock for the website to work. Each additional host you
add **MUST** have been pre-approved by VP Data Privacy (privacy@apache.org),
-and **SHOULD** have an accompanying comment in the .htaccess file explaining
+and **SHOULD** have an accompanying comment in the .htaccess file explaining
why the CSP is changed and where permission was obtained.
The hosts can be URLs with or without globs, as in this example with Algolia:
@@ -25,17 +24,18 @@ The hosts can be URLs with or without globs, as in this example with Algolia:
SetEnv CSP_PROJECT_DOMAINS "https://*.algolia.net/ https://*.algolianet.com/ https://*.algolia.io/"
~~~
-Any hosts listed in the `CSP_PROJECT_DOMAINS` variable will be added to the default- and base source
+Any hosts listed in the `CSP_PROJECT_DOMAINS` variable will be added to the default- and base source
elements in the existing CSP header, and should suffice for the vast majority of projects.
The following domains are already allowed by default and do not need to be added:
+
* `https://www.apachecon.com/`
* `https://www.communityovercode.org/`
* `https://*.apache.org/`
* `https://apache.org/`
* `https://*.scarf.sh/`
-If you need more specifically tailored headers, please reach out to users@infra.apache.org
+If you need more specifically tailored headers, please reach out to users@infra.apache.org
and we can assist you.
**DO NOT EDIT CSP HEADERS WITHOUT ASKING FIRST**.
diff --git a/content/pages/tools/index.md b/content/pages/tools/index.md
index 1cf97631e..15ae1b428 100644
--- a/content/pages/tools/index.md
+++ b/content/pages/tools/index.md
@@ -11,5 +11,3 @@ To send email with encrypted contents to Infra, use the following file :
We also have a bash script that can be used which references the above file
[crypt-to-root.sh](crypt-to-root.sh)
-
-
diff --git a/content/pages/user-ssh.md b/content/pages/user-ssh.md
index 7b4753794..d5db3a940 100644
--- a/content/pages/user-ssh.md
+++ b/content/pages/user-ssh.md
@@ -1,9 +1,9 @@
Title: Committer SSH Access
license: https://www.apache.org/licenses/LICENSE-2.0
-Apache uses SSH (a cryptographic protocol for operating services securely over an unsecured network) to let committers access their project VMs (if configured).
+Apache uses SSH (a cryptographic protocol for operating services securely over an unsecured network) to let committers access their project VMs (if configured).
-Remember to keep your client up to date with security patches. Pay close attention to any known host warnings.
+Remember to keep your client up to date with security patches. Pay close attention to any known host warnings.
## Contents ##
diff --git a/content/pages/version-control.md b/content/pages/version-control.md
index 3eb2cffed..e8c22e786 100644
--- a/content/pages/version-control.md
+++ b/content/pages/version-control.md
@@ -1,7 +1,7 @@
Title: Source Code Repositories at Apache
license: https://www.apache.org/licenses/LICENSE-2.0
-Apache project contributors are in countries all around the world. To help them work together, projects keep their source code in an Internet-accessible revision control system, either Subversion (SVN) or Git. Apache committers have _write access_ to the repositories for their projects, so they can edit existing code and add new files.
+Apache project contributors are in countries all around the world. To help them work together, projects keep their source code in an Internet-accessible revision control system, either Subversion (SVN) or Git. Apache committers have _write access_ to the repositories for their projects, so they can edit existing code and add new files.
## Contents ##
@@ -22,9 +22,9 @@ Apache project contributors are in countries all around the world. To help them
**Note**: please review the [Project Code Repository Policy](project-repo-policy.html).
-Everyone has *read access* to the repositories and can download the most up-to-date development version of any project's software to review or compile.
+Everyone has *read access* to the repositories and can download the most up-to-date development version of any project's software to review or compile.
-- If you want a stable release of the source code, download it from the distribution directory.
+- If you want a stable release of the source code, download it from the distribution directory.
- Only download the code directly from your project's code repository if you are participating in the development effort. The latest version of the code is what your colleagues have most recently checked in, and they may or may not have confirmed that it compiles correctly and does what they want it to do.
- If you want a release version of the project's compiled application, visit the project's website and find its download page. It may offer both stable releases and "bleeding-edge" or "nightly" builds that compile properly but include the latest, possibly-unstable, features.
@@ -99,7 +99,7 @@ Apache does not support `svnserve` or `svn+ssh`.
Committers need to properly configure their svn client. One particular issue is OS-specific line-endings for text files. When you add a new text file, especially when applying patches from Bugzilla, make sure that the line-endings are appropriate for your system, then do (for test.txt)
-`svn add test.txt svn propset svn:eol-style native test.txt`
+`svn add test.txt svn propset svn:eol-style native test.txt`
You can configure your svn client to do that automatically for some common file types. Add the contents of this file to the bottom of your ~/.subversion/config file, normally found at:
@@ -111,7 +111,7 @@ You may need to set additional properties for some files. For example, apply `sv
Pay attention to the messages from your svn client when you do 'svn commit'.
-**Tip**: If you use TortoiseSVN, a popular Windows GUI client that integrates with Windows Explorer, you can right click in Explorer and select TortoiseSVN - Settings, and then press the "Edit" button to update your "Subversion configuration file:". If you do not see
+**Tip**: If you use TortoiseSVN, a popular Windows GUI client that integrates with Windows Explorer, you can right click in Explorer and select TortoiseSVN - Settings, and then press the "Edit" button to update your "Subversion configuration file:". If you do not see
*.c = svn:eol-style=native
@@ -198,7 +198,7 @@ This problem crops up because the order of the revisions is not identical to the
SVN FAQs
-- **When should I use svn lock?** Very rarely. Commits in subversion are transactional. This means that locks are almost always unnecessary. An oft-quoted use case is to prevent concurrent editing of a large, unmergeable binary document. However, for open development, good communication is preferable to locking even in this use case. A good, timely post to the list to let your fellow developers know that you're going to start editing that huge PDF is better than locking the file.
+- **When should I use svn lock?** Very rarely. Commits in subversion are transactional. This means that locks are almost always unnecessary. An oft-quoted use case is to prevent concurrent editing of a large, unmergeable binary document. However, for open development, good communication is preferable to locking even in this use case. A good, timely post to the list to let your fellow developers know that you're going to start editing that huge PDF is better than locking the file.
- **How often can I run a cron job that connects to the repository?** Hourly is fine. Please do not use programs that poll the repository more frequently than hourly. People who run automated scripts that continuously poll the repository wind up getting their access denied, and that may impact other folks connecting through the same host. If you need to stay more in-sync than an hourly cron allows, subscribe your script to the relevant commit mailing list.
- **How do I mirror the whole SVN repository for an experiment?** First, ask yourself whether you really want the entire ASF repository Most people really want only a single project. In that case, just check out that source directory from the repo. If you really do want the entire ASF repository, don't use svnsync. Instead, start by looking here. Use that to bootstrap your repo.
- **Why do I get a 403 error when I try to commit code?** Run `svn info` and check that the URL starts with `https://`. If it starts with `http://`, run:
diff --git a/content/pages/vm-for-project.md b/content/pages/vm-for-project.md
index 4915cee5c..6361804ac 100644
--- a/content/pages/vm-for-project.md
+++ b/content/pages/vm-for-project.md
@@ -108,8 +108,6 @@ There are no mandatory rules, but here are some suggestions:
See also [Managing virtual machines](vm-management.html)
-
-
Cautions
- Do not try to change items controlled by puppet, such as:
diff --git a/content/pages/vm-management.md b/content/pages/vm-management.md
index fe3e5d680..023cb3490 100644
--- a/content/pages/vm-management.md
+++ b/content/pages/vm-management.md
@@ -10,6 +10,7 @@ A virtual machine (VM) is a digital version of a physical computer. Virtual mach
When an Apache project requests a VM, it identifies three project committers who will be responsible for the tasks related to maintaining the VM in a good state. Infra is there to help when complex problems arrive, but is not the first line of support for your VM.
## Managing your VM
+
Infra is responsible for most VM high-level management tasks:
- Starting the VM.
@@ -18,6 +19,7 @@ Infra is responsible for most VM high-level management tasks:
- Migrating to a new VM. Infra creates the new VM and can assist with puppet (re)config as needed.
## Maintenance
+
Your project is responsible for maintenance tasks like
- renewing or replacing expired letsencrypt certificates
diff --git a/content/pages/website-guidelines.md b/content/pages/website-guidelines.md
index 5f8340578..f672e496d 100644
--- a/content/pages/website-guidelines.md
+++ b/content/pages/website-guidelines.md
@@ -5,7 +5,6 @@ These guidelines relate to Infra policies on resource consumption, linking, lega
**NOTE:** In December, 2021 all TLP web sites and the main `apache.org` site started redirecting any pages using `http` to `https` and set up HTTP Strict Transport Security, or HSTS. This was at the request of projects and end users, to enhance site security.
-
- Projects cannot use tools that require write access to the project repository.
- Never link directly to downloads hosted at `apache.org`. Always use the mirror scripts like closer.lua.
- Never redirect from the front page of your project's site, `$TLP.apache.org` to another domain. `$TLP.apache.org` **must** be your main project site. Links from your project site to other locations are of course okay.
@@ -18,6 +17,6 @@ These guidelines relate to Infra policies on resource consumption, linking, lega
- All web sites must be available on ASF's git or svn servers, and published using git- or pypubsub.
- Do not host source releases or convenience binaries directly on the web site. See [Release download pages for projects](release-download-pages.html).
-**Note**: Any ASF project can use the ASF **Infrastructure Pelican Action** GitHub Action to compile and deploy its website. The repository for this GHA is github.com/apache/infrastructure-actions/tree/main/pelican.
+**Note**: Any ASF project can use the ASF **Infrastructure Pelican Action** GitHub Action to compile and deploy its website. The repository for this GHA is github.com/apache/infrastructure-actions/tree/main/pelican.
Should you have any questions, feel free to contact us at infrastructure@apache.org or on our Slack channel.