CHAOSS OSPO WG, Feb 19 2026

๐ **Source:** [CHAOSS OSPO WG, Feb 19 2026](https://www.youtube.com/watch?v=isE_p-eDzhM)
> [!note]+ Document Notes
> tags: #ospo #chaos #repository-lifecycle #archival #sunsetting #open-source #cms #government #github-actions #automation
> author: CHAOSS OSPO Working Group
> source: YouTube
> reference: https://www.youtube.com/watch?v=isE_p-eDzhM
> date created: 2025-01-27 10:30
>
> # ๐ท๏ธ Title: CHAOSS OSPO Working Group: Repository Archival and Sunsetting Practices
>
<!-- deep-read:sections start -->
## ๐งฐ Action Inbox
- [H1] Review CMS archival checklist for your organization โ consider implementing repo-sunsetter tool #automation
- [H2] Explore creating "path of growth" vs "path of archival" framework โ identify stale repos quarterly #strategy
- [H3] Set up repository metadata standards using code.json or similar โ improve discoverability #inventory
## ๐งญ Table of Contents
- [[#๐ Summary]]
- [[#๐ Main Content]]
- [[#๐๏ธ Notes]]
- [[#๐ References]]
- [[#๐ฃ๏ธ Paraphrase]]
- [[#๐ฐ Newsletter]]
- [[#โ
Action Items]]
- [[#๐งช Hypotheses]]
- [[#๐ Methodology]]
- [[#โ Questions]]
- [[#๐ฎ Future Research]]
- [[#๐ก Implications]]
- [[#๐ง Learning Styles Assessment]]
- [[#๐ Accessibility Assessment]]
- [[#๐ DEIB Assessment]]
- [[#โ
Logical Validity]]
- [[#๐ก๏ธ DARVO Analysis]]
- [[#๐ฏ Conclusion]]
### ๐ References
- [CHAOSS Practitioner Guide on Sunsetting](https://chaoss.community/wp-content/uploads/2023/07/CHAOSS-Practitioner-Guide-Sunsetting-Open-Source-Projects-v1.0.pdf)
- [Repo Sunsetter GitHub Action](https://github.com/CMSgov/repo-sunsetter)
- [Stale Repo Identifier](https://github.com/github/stale-repo-identifier)
## ๐ Summary
- CMS OSPO presented their repository archival practices and tools, including an automated GitHub Action called "repo-sunsetter"
- They developed comprehensive checklists for preparing repositories for archival based on CHAOSS sunsetting guidance
- The team created both "path of growth" and "path of archival" frameworks to help projects either revitalize or properly sunset
- Discussion covered best practices from VMware, government-specific considerations, and repository inventory management
- Key insight: Making archival reversible reduces resistance and no one has ever asked to un-archive
## ๐ Main Content
The Centers for Medicare and Medicaid Services (CMS) Open Source Program Office has developed a systematic approach to repository lifecycle management, focusing specifically on the archival process. Their work builds upon the CHAOSS Practitioner Guide on Sunsetting and addresses the practical challenge of managing repositories that have reached end-of-life.
CMS created two complementary frameworks: a "path of growth" for revitalizing dormant projects and a "path of archival" for properly sunsetting repositories. Their approach recognizes that not all inactive repositories should be archived - some may benefit from renewed development efforts.
The team developed an automated GitHub Action called "repo-sunsetter" that streamlines the archival preparation process. This tool creates comprehensive checklists, updates repository metadata, and adds archival notices to documentation. The automation reduces manual effort while ensuring consistent practices across their organization.
Key technical considerations include reviewing metadata files (code.json), conducting security assessments, managing access permissions, and handling community communications. The process also addresses issues, pull requests, wikis, and external communication channels.
## ๐๏ธ Notes
#### โฑ๏ธ [00:00](https://youtu.be/isE_p-eDzhM?t=0) โ [H1] Meeting Introduction and Participant Introductions
- Key idea: CHAOSS OSPO working group meeting with new participant Diego Mastraani from Cloudera
- Evidence: "Diego Mastraani. I work as the OSPO head of OSPO for Cloudera"
#### โฑ๏ธ [03:25](https://youtu.be/isE_p-eDzhM?t=205) โ [H1] Repository Lifecycle Focus at CMS OSPO
- Key idea: CMS OSPO has been focusing on complete repository lifecycle including growth and archival paths
- Evidence: "Our OSPO has been focused on the repository lifecycle... one path which we call the path of growth... the other side of it the path of archival"
#### โฑ๏ธ [05:47](https://youtu.be/isE_p-eDzhM?t=347) โ [H2] CHAOSS Sunsetting Guide as Foundation
- Key idea: CMS based their archival practices on the CHAOSS practitioner guide on sunsetting
- Evidence: "We turned towards CHAOSS's practitioner guide on sunsetting which was written by Dawn"
#### โฑ๏ธ [08:12](https://youtu.be/isE_p-eDzhM?t=492) โ [H1] Comprehensive Archival Checklist Development
- Key idea: CMS developed detailed checklist covering metadata, documentation, access, security, and community communication
- Evidence: "Review the metadata of the project... update the documentation... assess who has access... perform lightweight security review"
#### โฑ๏ธ [12:35](https://youtu.be/isE_p-eDzhM?t=755) โ [H1] Repo Sunsetter GitHub Action Demo
- Key idea: Automated GitHub Action creates issues with checklists and updates repository metadata and README
- Evidence: "This is essentially a GitHub action that prepares a repository for archival by creating an issue that posts all these action items"
#### โฑ๏ธ [18:20](https://youtu.be/isE_p-eDzhM?t=1100) โ [H2] Audience Discussion on Organizational Practices
- Key idea: Most organizations don't have formal archival practices, making this work timely and valuable
- Evidence: "It's actually very timely because we are talking about archiving one project right now"
#### โฑ๏ธ [20:45](https://youtu.be/isE_p-eDzhM?t=1245) โ [H2] Metrics for Repository Diagnosis
- Key idea: Key metrics include open/closed change requests, new issues, and technical forks to assess activity
- Evidence: "Number of open and closed change requests... new issues... technical forks... indicates whether a project is still maintained"
#### โฑ๏ธ [23:15](https://youtu.be/isE_p-eDzhM?t=1395) โ [H1] Action Results Demonstration
- Key idea: The GitHub Action successfully created checklist issue and two pull requests for metadata and README updates
- Evidence: "It should have created a new issue with the archival checklist... two pull requests up in this repository"
#### โฑ๏ธ [26:30](https://youtu.be/isE_p-eDzhM?t=1590) โ [H2] Future Conference Presentation Plans
- Key idea: CMS team accepted to present at George Washington University OSCON conference
- Evidence: "Our talk at the GWU OSCON conference has been approved... March 23rd or 24th at George Washington University"
#### โฑ๏ธ [29:42](https://youtu.be/isE_p-eDzhM?t=1782) โ [H2] Path of Growth vs Path of Archival Framework
- Key idea: Two-pronged approach gives projects choice between revitalization or proper sunsetting
- Evidence: "If you want to try and not go to the path of archival here's how you can get your project back on track"
#### โฑ๏ธ [35:18](https://youtu.be/isE_p-eDzhM?t=2118) โ [H1] VMware Experience with Reversible Archival
- Key idea: Making archival process reversible significantly reduced resistance, though no one ever requested reversal
- Evidence: "She put together a process for this is what happens if you say that you want it archived and then you change your mind later... No one ever changed their mind"
#### โฑ๏ธ [38:45](https://youtu.be/isE_p-eDzhM?t=2325) โ [H2] Drivers for Repository Archival Focus
- Key idea: Reduced team sizes and security concerns drive urgency for proper repository stewardship
- Evidence: "Teams are getting smaller... contracts are being renegotiated or canceled... cyber security concerns"
#### โฑ๏ธ [42:30](https://youtu.be/isE_p-eDzhM?t=2550) โ [H1] Security and Trust Implications
- Key idea: Abandoned repositories from trusted organizations create security risks due to brand trust
- Evidence: "People tend to trust big companies like VMware... these abandoned repositories... got all kinds of security vulnerabilities"
#### โฑ๏ธ [47:20](https://youtu.be/isE_p-eDzhM?t=2840) โ [H2] Repository Inventory Management Solutions
- Key idea: Metadata standards like code.json enable better repository discovery and management
- Evidence: "Code.json which is the metadata file that gathers up information about what a project is... supposed to go to an inventory on code.gov"
## ๐ References
- [CHAOSS Practitioner Guide on Sunsetting](https://chaoss.community/wp-content/uploads/2023/07/CHAOSS-Practitioner-Guide-Sunsetting-Open-Source-Projects-v1.0.pdf)
- [Repo Sunsetter GitHub Action](https://github.com/CMSgov/repo-sunsetter)
- [Stale Repo Identifier by GitHub](https://github.com/github/stale-repo-identifier)
- [CMS Maturity Model Framework](https://github.com/CMSgov/cms-open-source-policy)
## ๐ฃ๏ธ Paraphrase
- CMS OSPO developed systematic repository lifecycle management with both growth and archival pathways, recognizing that inactive doesn't always mean ready for retirement
- They created automated tooling that generates comprehensive checklists and handles routine archival preparation tasks while still allowing human oversight and customization
- Making the archival process reversible dramatically reduced organizational resistance, even though no projects have ever requested restoration from archived status
## ๐ฐ Newsletter
**Repository Lifecycle Management: Beyond "Set It and Forget It"**
The CMS team shared their thoughtful approach to repository stewardship that goes beyond just creating projects. Their "repo-sunsetter" GitHub Action automates archival preparation while their dual-path framework gives projects clear options for either revitalization or proper sunsetting.
Key takeaway: Making archival reversible removes psychological barriers to proper repository hygiene. The automation handles routine tasks like updating metadata and documentation, while comprehensive checklists ensure nothing falls through the cracks.
This work builds on CHAOSS community research and will contribute improvements back upstream - a great example of collaborative open source tooling development.
Resources: [CHAOSS Guides](https://chaoss.community/), [GitHub Actions Marketplace](https://github.com/marketplace), [CMS Open Source](https://github.com/CMSgov)
## โ
Action Items
#### OSPO
- Repository lifecycle: implement dual-path framework for growth vs archival decisions
- Automation tools: evaluate repo-sunsetter for organizational archival processes
- Inventory management: establish metadata standards using code.json or equivalent
- Security stewardship: regular audits of inactive repositories for vulnerability exposure
- Community guidelines: develop reversible archival policies to reduce resistance
#### Community
- Maintainers: contribute archival best practices back to CHAOSS sunsetting guide
- Contributors: test and provide feedback on automated archival tooling
- Ecosystem: share repository lifecycle frameworks across OSPO community
## ๐งช Hypotheses
- Automated archival preparation reduces manual effort while maintaining quality and consistency
- Offering both growth and archival pathways increases organizational buy-in for repository lifecycle management
- Making archival processes reversible significantly reduces resistance without increasing actual reversal requests
- Regular quarterly assessment of repository activity enables proactive lifecycle management
### ๐ Methodology
- Comparative analysis: measure archival completion rates before and after automation implementation
- Survey research: assess organizational resistance to archival policies with and without reversibility options
- Longitudinal study: track actual reversal requests over time across different organizational contexts
### โ Questions
- How can repository maturity models be integrated with automated archival assessment tools?
- What role should community input play in organizational decisions about repository archival?
- How do government-specific compliance requirements affect repository lifecycle management practices?
### ๐ฎ Future Research
- Integration patterns between repository lifecycle tools and existing OSPO workflows
- Cross-organizational standards for repository metadata and archival practices
- Impact measurement frameworks for repository stewardship and security risk reduction
### ๐ก Implications
- Practice: OSPOs need systematic approaches to repository lifecycle management beyond initial creation
- Policy: Reversible archival policies may be key to organizational adoption of proper repository hygiene
- Security: Abandoned repositories from trusted organizations pose significant supply chain risks
- Education: Repository stewardship training should cover complete lifecycle including proper sunsetting
### ๐ง Learning Styles Assessment
Reading level estimate: 12th grade
#### ๐ Visual learners
- Present: Screen sharing of GitHub Action workflow, repository interface demonstrations
- Improve: Architecture diagrams showing repository lifecycle flows, visual checklists
#### ๐ Aural learners
- Present: Full audio discussion with multiple speakers sharing experiences
- Improve: Structured presentation segments, clearer speaker transitions
#### ๐ฃ๏ธ Verbal learners
- Present: Detailed explanations of processes, terminology definitions, analogies to familiar concepts
- Improve: Glossary of OSPO and archival terms, more explicit comparisons between approaches
#### ๐งฉ Kinesthetic learners
- Present: Live demonstration of GitHub Action, step-by-step workflow walkthroughs
- Improve: Hands-on workshop format, downloadable templates and checklists
#### ๐ง Logical learners
- Present: Clear decision trees for growth vs archival, structured checklists, metrics-based assessment
- Improve: Flowcharts showing decision points, quantified success criteria
#### ๐งโ๐คโ๐ง Social learners
- Present: Community discussion, shared experiences from multiple organizations
- Improve: Breakout discussions, collaborative tool development sessions
#### ๐งโโ๏ธ Solitary learners
- Present: Detailed documentation links, individual tool exploration time
- Improve: Self-assessment worksheets, independent study materials
#### ๐ฟ Naturalistic learners
- Present: Repository ecosystem analogies, organic growth vs planned sunsetting concepts
- Improve: Lifecycle metaphors, sustainability framework connections
### ๐ Accessibility Assessment
#### Screen reader semantics
- Present: Spoken descriptions of visual demonstrations, clear heading structure in shared documents
- Improve: Alt text for screenshots, structured navigation of shared materials
#### Keyboard navigation
- Present: Tools demonstrated are keyboard accessible GitHub interfaces
- Improve: Ensure all shared links and resources support keyboard navigation
#### Contrast and readability
- Present: Standard video conferencing interface with good text contrast
- Improve: High-contrast presentation materials, larger font sizes for code examples
#### Text resizing and reflow
- Present: Responsive GitHub interface shown in demonstrations
- Improve: Documentation that reflows properly at high zoom levels
#### Media and captions
- Present: Video meeting format with clear audio
- Improve: Live captions, post-meeting transcripts, audio descriptions of visual elements
#### Forms and interactions
- Present: GitHub Action configuration shown with clear labels
- Improve: Form validation examples, accessible error handling patterns
### ๐ DEIB Assessment
#### Cultural breadth
- Present: Government (CMS), enterprise (VMware, Cloudera), international standards discussion
- Improve: More diverse organizational contexts, global archival practice examples
#### Inclusive language
- Present: Professional technical language, defined jargon, respectful discussion
- Improve: Plain language summaries, cultural context for government-specific terms
#### Neurodiversity support
- Present: Well-structured agenda, clear topic transitions, detailed documentation links
- Improve: More frequent breaks, visual agenda tracking, reduced cognitive load
#### Representation
- Present: Mix of presenters and participants, various organizational roles
- Improve: Broader geographic representation, more diverse speaker perspectives
#### Psychological safety
- Present: Respectful discussion climate, optional participation, acknowledgment of different approaches
- Improve: Explicit community guidelines, multiple ways to contribute feedback
### โ
Logical Validity
#### Strong reasoning
- Deductive strength: CMS team logically built specific practices from general CHAOSS principles
- Inductive strength: VMware experience generalized to broader organizational patterns
- Causal reasoning: Clear links between automation tools and reduced manual effort
- Analogical strength: Repository lifecycle compared to
---
## Full Transcript
[00:00] Okay. So, welcome everyone to the Chaos<br>[00:04] OSPO working group meeting for Thursday,<br>[00:07] February 19th. Um, as always, this<br>[00:10] meeting falls under the chaos code of<br>[00:12] conduct. So, uh, please be kind to each<br>[00:15] other. Um, as you can see, we are<br>[00:17] recording this one. So, we've that's the<br>[00:19] first item on the agenda. So, we've<br>[00:21] decided to record it. We can stop the<br>[00:22] recording at any point if somebody wants<br>[00:24] to have a more more frank discussion off<br>[00:26] the off the record, so to speak.<br>[00:29] Um before I turn it over to um Natalyia,<br>[00:33] we have we have a couple of people that<br>[00:35] I don't know that I've seen before in<br>[00:37] this meeting. Um I don't know if you<br>[00:40] want if you want to introduce yourself.<br>[00:41] It is totally optional. You don't have<br>[00:43] to. Um but we'd be happy to have you do<br>[00:46] some introductions if you'd like.<br>[00:49] >> Sure. I can can go first. I just joined.<br>[00:52] So my name is Diego Mastraani. I uh work<br>[00:54] as the uh OSPO head of Ospo for<br>[00:57] Cloudera. Uh I was um we actually met<br>[01:02] last year in Napa. Don I was the OSPO<br>[01:06] for Moody's at the time so I changed in<br>[01:09] between and um it's my first time<br>[01:10] attending the meeting. So yes um<br>[01:13] >> yeah very good.<br>[01:14] >> Happy to be here.<br>[01:15] >> Welcome welcome. Uh anybody else?<br>[01:21] Okay. Uh so we'll we'll go ahead and get<br>[01:24] started. I will stop sharing so that I<br>[01:27] can uh turn it over to uh Natalia to get<br>[01:31] started with our agenda item.<br>[01:33] >> Yes, thank you. And I will be taking<br>[01:35] over the screen share. Okay. Actually<br>[01:39] before that um I'm Natalia Luzeryaga.<br>[01:42] I'm a software engineer as part of the<br>[01:45] open source program office at the<br>[01:46] Centers for Medicare and Medicaid<br>[01:48] Services. And today we'll be talking<br>[01:50] about um our organization's practices<br>[01:53] with archiving repositories. This has<br>[01:55] been one of my main projects um starting<br>[01:58] the beginning of this year. Um so lately<br>[02:04] um our OSO has been kind of focused on<br>[02:07] the repository life cycle where um first<br>[02:11] our major focus was establishing our<br>[02:13] baseline tools which started out with um<br>[02:17] creating repository templates for our<br>[02:20] organizations and uh thus forward<br>[02:23] assisting those development teams with<br>[02:26] maintaining those repositories. And then<br>[02:29] um we've been<br>[02:31] thinking of uh the rest of the life<br>[02:33] cycle one path which we call the path of<br>[02:36] growth. So as a open source project<br>[02:40] matures further in their journey how<br>[02:42] best can we assist them as an ospo and<br>[02:45] the other side of it the path of<br>[02:47] archival. So how do we assist<br>[02:49] repositories that have reached the end<br>[02:51] of life? So today I'll be focusing<br>[02:54] specifically on the path of archival um<br>[02:57] and how exactly we go about sunsetting<br>[02:59] repositories in our organization. Okay.<br>[03:02] And then I will share screen.<br>[03:07] So um to kind of start off with um<br>[03:12] brainstorming and trying to figure out<br>[03:14] what are the best practices to go along<br>[03:16] with this um we actually turned towards<br>[03:19] Chaos's uh practitioner guide on suns<br>[03:22] setting which was written by Dawn and<br>[03:25] here this is a very um comprehensive and<br>[03:29] wonderful guide about how exactly you go<br>[03:31] about um archiving repositories. So<br>[03:35] first she talks about identifying trends<br>[03:37] using um metrics that um using chaos<br>[03:41] metrics and then from there based on um<br>[03:45] those trends and metrics that's when you<br>[03:47] can diagnose a repository as ready to be<br>[03:50] archived or or identify its candidacy<br>[03:53] for archived. And there's also some<br>[03:56] other recommended metrics and data that<br>[03:58] you can use along with your<br>[03:59] consideration. And then finally is<br>[04:02] actually making um the actual change of<br>[04:05] archiving the repository. And so here um<br>[04:10] we have some action items that are<br>[04:12] listed out such as updating the readme,<br>[04:15] updating communication channels and<br>[04:17] documentation accordingly and notifying<br>[04:19] users. And then um you can also do an<br>[04:23] additional step of adding your code to<br>[04:25] software heritage to ensure that it is<br>[04:28] preserved over time.<br>[04:31] and some cautions and considerations. So<br>[04:33] after reading this guide, we decided to<br>[04:37] um focus on this step over here. What<br>[04:40] exactly does our organization need to do<br>[04:43] in order to um what we should do when we<br>[04:46] archive a repository? And so based on<br>[04:49] this guide, we came up with our own<br>[04:51] checklist<br>[04:53] based on this of how we want to prepare<br>[04:56] a repository for archive. So for<br>[04:58] instance, first we want to review the<br>[05:00] metadata of the project. We have a file<br>[05:03] called code.json which includes all<br>[05:06] metadata about a repository. So we want<br>[05:09] to be able to mark the status of the<br>[05:11] repository as archival in that metadata<br>[05:14] so it reflects its new um status. And<br>[05:18] then from there we go through a um<br>[05:21] thorough repository review where we<br>[05:23] update the documentation such as the<br>[05:25] readme. We look through the repositories<br>[05:28] issues, close what has been fixed,<br>[05:31] comment on what has been unresolved,<br>[05:33] label the issues accordingly, and for<br>[05:36] those that won't be fixed, label that<br>[05:38] too.<br>[05:39] Then we assess um who has access to the<br>[05:42] repository. Then we perform a<br>[05:45] lightweight security review, review for<br>[05:47] secrets, keys, PII, and then we do some<br>[05:50] minor housekeeping like deleting some<br>[05:52] branches. And then for repositories that<br>[05:56] are a bit more mature in their journey<br>[05:59] um such as they accept contributions<br>[06:02] from the external community that's when<br>[06:05] we review the pull requests make sure<br>[06:07] that um we merge those that are ready to<br>[06:10] be merged merge any dependabot PR so<br>[06:13] that our dependencies can be up to date<br>[06:16] um comment on open PRs and close won't<br>[06:19] fix PRs<br>[06:21] and for those repositories that um have<br>[06:25] a wiki or slack channel or just more<br>[06:29] means of communications outside a<br>[06:31] regular GitHub repository. We also note<br>[06:34] to review that and to notify um parties<br>[06:38] in uh in those spaces.<br>[06:41] And then finally, we have a little more<br>[06:43] thorough um security review where we<br>[06:47] review the code quality, the commit<br>[06:48] history, um run some code scanning and<br>[06:52] security alert tools. We check out the<br>[06:55] change log and then re-review the<br>[06:57] release and tags. So just doing a<br>[06:59] thorough review of the repository to<br>[07:01] make sure that all of our bases are<br>[07:03] covered before we mark the repository as<br>[07:05] read me as uh archived. Okay, cool. And<br>[07:09] then so based on um all this information<br>[07:12] I just shared with you um our team we<br>[07:15] created a tool to kind of automate some<br>[07:17] of that work called repo sunsetter. And<br>[07:20] this is essentially a GitHub action that<br>[07:23] um prepares a repository for archival by<br>[07:26] um creating an issue that posts all<br>[07:30] these action items from this checklist I<br>[07:33] shared. and it automates some of that<br>[07:35] work such as adding a adding some text<br>[07:38] to the readme to inform users about the<br>[07:42] repository being archived and updating<br>[07:44] the project metadata accordingly. Okay,<br>[07:48] cool. And then I'm going to do a little<br>[07:49] demo. So I'm going to I have this test<br>[07:54] repository over here and then I'm going<br>[07:56] to um run this GitHub action on this<br>[08:01] repository by first creating a new<br>[08:05] workflow file.<br>[08:12] Cool. Okay, this is the workflow file<br>[08:15] over here. You want to make sure that<br>[08:17] the GitHub action has permissions to<br>[08:20] write pull requests and to write issues<br>[08:23] and to also write uh contents within the<br>[08:26] files of the repository. And then here<br>[08:29] we just have uh this one step over here<br>[08:32] where we actually run the repo sunsetter<br>[08:35] tool. Okay, I'm going to switch this<br>[08:37] over to<br>[08:40] another branch<br>[08:42] that I have that's that has a little bit<br>[08:45] more features than what's currently on<br>[08:46] main right now. I'm just going to do<br>[08:48] this over here. Okay, cool.<br>[08:53] Okay. And then I'm going to name the<br>[08:54] file archive<br>[08:56] repo.ml.<br>[09:03] Okay, cool. So now that we have the<br>[09:04] workflow file, we can easily run this<br>[09:07] action<br>[09:10] in the UI.<br>[09:12] This is it over here. And then we run<br>[09:15] the workflow.<br>[09:19] Cool.<br>[09:21] Okay. And then we're going to wait a<br>[09:22] minute or two um to let this finish.<br>[09:26] Okay. Cool. In the meantime, I wanted to<br>[09:29] ask the audience um does your<br>[09:32] organization have uh their own archival<br>[09:36] practices? Um just curious to see like<br>[09:39] how exactly you guys go about it.<br>[09:44] >> No, no. Okay, cool.<br>[09:47] >> Yeah, it's it's actually very timely<br>[09:50] because we are talking about archiving<br>[09:52] one project right now. So I was I was<br>[09:57] kind of doing this checklist. I mean I<br>[09:59] never been it's serendipity. So thank<br>[10:01] you so much.<br>[10:02] >> Okay cool. That's really good to hear.<br>[10:04] Yes. I hope this uh we decided to make<br>[10:07] this a GitHub action because we know<br>[10:08] this is a shared challenge that ospos go<br>[10:11] through. So we hope that you can also<br>[10:12] make use of it too. Yes.<br>[10:16] >> Okay.<br>[10:16] >> Very thoughtful. Thanks for sharing all<br>[10:18] this.<br>[10:19] >> Yes. Of course. Of course.<br>[10:22] Okay. Um let's see. while she's building<br>[10:26] let's see I think I can talk a little<br>[10:28] bit more about diagnosing repositories<br>[10:32] um let's see feel free to step in Don<br>[10:35] too but um another my team and I were<br>[10:40] also creating another tool to to assist<br>[10:43] with diagnosing repositories as um being<br>[10:46] candidates for archival um and some of<br>[10:49] the interesting metrics that uh we've<br>[10:51] been looking at mostly in this guide is<br>[10:54] the number of open and closed change<br>[10:57] requests that a repository has since<br>[10:59] that indicates whether a project is<br>[11:02] still maintained or if um<br>[11:06] other people have been making pull<br>[11:07] requests to it. It just indicates<br>[11:09] activity.<br>[11:10] We also have new issues. So that<br>[11:13] indicates whether the external community<br>[11:16] is uh still looking at the repository<br>[11:18] since users can um post bugs um ask<br>[11:22] questions or request for new features<br>[11:24] through through new issues.<br>[11:27] Um<br>[11:29] and then technical forks. This is a big<br>[11:31] one. So people that fork your project,<br>[11:33] um we want to kind of assess usage<br>[11:37] within that fork to actually see if<br>[11:39] people are uh<br>[11:42] to see if people are building a uh on<br>[11:44] top of the upstream stuff that you did.<br>[11:49] Yeah. So um we've been looking at these<br>[11:51] metrics and kind of just been<br>[11:53] experimenting with um using these<br>[11:55] metrics to identify repost for archival<br>[11:57] and I hope to share that work in a next<br>[12:01] uh chaos ospo working group. Okay cool<br>[12:06] and then we're going to look to the<br>[12:07] actions over here. Okay cool. It looks<br>[12:11] like our GitHub action repossitter has<br>[12:13] run successfully. And so as a result it<br>[12:16] should have done three things. Let's<br>[12:19] see.<br>[12:21] It should have created a new issue with<br>[12:25] the archival checklist that I went over.<br>[12:27] So, the idea is we post this as an issue<br>[12:30] so that the repository um the<br>[12:33] development team can um go through this<br>[12:36] checklist now that they know how exactly<br>[12:39] they should prepare their repository for<br>[12:40] archival. Yeah. Cool. And then notice<br>[12:44] that we have two items that have already<br>[12:47] been checked over here. And that's<br>[12:48] because we actually automated that work.<br>[12:51] So we should have two pull requests up<br>[12:54] in this repository. Okay, cool. One is<br>[12:58] updating the project metadata. And for<br>[13:00] our organization, our repository<br>[13:02] metadata lives in a code.json file. So<br>[13:05] we indicate its archival status. And I<br>[13:08] think we add it as a tag. Yep.<br>[13:12] And then the last thing is we add a<br>[13:14] archive notice to the readme. So this is<br>[13:17] how that PR looks like and this is the<br>[13:20] text that we provided.<br>[13:24] Cool. And this is how it looks like. We<br>[13:26] use the warning banner as part of uh<br>[13:28] GitHub's uh markdown rendering. Yeah.<br>[13:33] Okay. Cool. And that's pretty much it<br>[13:35] for our repo sunsetter tool. Yeah. I<br>[13:39] think that's all I have to demo for<br>[13:41] today. Yes. Uh but any um Yeah. any<br>[13:45] thoughts, any questions, and I'll share<br>[13:47] some links in chat.<br>[13:50] >> And just to add to this, I think the<br>[13:51] team is actually planning on<br>[13:53] contributing some of this back to the<br>[13:56] sunsetting guide. Um, which I'm super<br>[13:58] excited about because if you're So,<br>[14:00] Diego, if you're looking at this right<br>[14:02] now, I would have a look at their<br>[14:04] checklist because uh the the<br>[14:07] practitioner guide is missing a few<br>[14:09] things that um we just didn't think of.<br>[14:12] So, I'm really looking forward to<br>[14:14] getting some some contributions to the<br>[14:16] sunsetting guide uh from the the CMS<br>[14:18] team. I think that's really exciting.<br>[14:25] >> Cool. And then um we have Remy DSMaker<br>[14:27] who's on the call. Um he's the open<br>[14:29] source lead uh at our OSO. Yes.<br>[14:34] >> Yeah. And we just got word yesterday<br>[14:36] that uh our talk at the GWU OSCON<br>[14:39] conference uh has been approved. So, we<br>[14:41] were accepted to present and our agency<br>[14:43] has approved that. So, we're going to be<br>[14:45] presenting about Repo Sunsetter and the<br>[14:48] Chaos Practitioner Guide uh on March<br>[14:51] 23rd or 24th at George Washington<br>[14:54] University here in DC. And I believe<br>[14:56] they're going to record it. So, um<br>[14:58] should be uh a good moment. Uh you folks<br>[15:02] are the first to hear about it though.<br>[15:03] Uh the working group here uh as you<br>[15:06] fellow practitioners uh Nat shipped this<br>[15:09] yesterday I think. Uh, so this is fresh,<br>[15:12] brand new, off the press. Uh, we wanted<br>[15:14] to make sure to engage with the OSO<br>[15:17] community. We definitely appreciate the<br>[15:18] feedback here. We couldn't have put this<br>[15:20] together without the chaos practitioner<br>[15:22] guide. We leaned on it heavily. So, we<br>[15:24] really look forward to contributing back<br>[15:25] up. And that's going to be one of the<br>[15:27] key elements of the presentation is, you<br>[15:30] know, making sure that these upstream<br>[15:31] contributions are made back and that we<br>[15:33] can share those out with the GW OSCOM.<br>[15:37] >> That's great. Great. Congrats on getting<br>[15:39] that talk accepted. That's awesome.<br>[15:43] Um, other other questions for Natalyia<br>[15:45] or thoughts that people have on<br>[15:48] sunsetting and archiving repositories.<br>[15:58] Natalya, I'm not all that familiar with<br>[16:00] GitHub actions, so I'm just trying I'm<br>[16:03] looking at it on your repo. I'm just<br>[16:05] trying to figure out how would I I saw<br>[16:09] how you would use it. How would I<br>[16:13] graph that into a flow that I might try<br>[16:16] to do?<br>[16:17] >> Yeah, for sure. Um, let's see. So to<br>[16:20] actually use the action, okay, I'm going<br>[16:22] to steal the screen share again,<br>[16:26] you can simply copy and paste this text<br>[16:29] over here<br>[16:31] >> and add it to a okay. So first you<br>[16:35] identify the repository that you'd like<br>[16:37] to prepare for archival and um from<br>[16:41] there we will run the GitHub action on.<br>[16:43] And so to run GitHub actions, you have<br>[16:46] to go to the workflows directory in the<br>[16:50] git within the GitHub directory. And<br>[16:53] here is where your GitHub action files<br>[16:55] live.<br>[16:57] And then from there you can create a<br>[16:59] file with those contents within that<br>[17:02] folder and then name it accordingly.<br>[17:05] Archive repo 2.l.<br>[17:08] Oh, and GitHub action files are written<br>[17:11] as YAML files. Yeah. Okay. Cool. And<br>[17:15] then um you have this actions tab over<br>[17:18] here where you can run the GitHub<br>[17:21] actions that live in this file over<br>[17:23] here.<br>[17:26] And then so here are the actions that<br>[17:28] you can run on the side. And so I'm<br>[17:31] going to click on archive repository.<br>[17:33] Cool. And then from there there's a<br>[17:34] button that says run workflow. And then<br>[17:36] you can run the workflow.<br>[17:39] >> Yeah.<br>[17:40] >> Nice. Thank you.<br>[17:42] >> Yeah. It's super easy.<br>[17:44] >> I saw another one that you had in that<br>[17:46] list stale repo identifier.<br>[17:49] >> Oh, that one's a cool one actually. Um,<br>[17:52] so that um GitHub action was created by<br>[17:55] the GitHub Ospo and it basically<br>[17:58] identifies repositories that have been<br>[18:00] inactive within 6 months. So um you give<br>[18:04] it your GitHub organization name and<br>[18:08] then uh you run it as a GitHub action<br>[18:11] and then it identifies all the<br>[18:13] repositories in your organization that<br>[18:15] have been inactive for that period of<br>[18:16] time. Yeah. So we were kind of doing<br>[18:18] some experimenting with what's currently<br>[18:20] in the landscape and we thought that was<br>[18:23] a super helpful one that will assist us<br>[18:25] with diagnosing repositories to be<br>[18:27] archived. So,<br>[18:29] >> so prioritize which ones to put at the<br>[18:32] top of the list.<br>[18:34] >> Oh, for sure. Yes. Okay, cool. And then<br>[18:37] it's this one over here. Okay, I'm<br>[18:39] dropping it in chat. Cool.<br>[18:42] >> Thank you. That's really helpful.<br>[18:45] >> And David, you have a question.<br>[18:47] >> Yeah. When when you saw the banner, like<br>[18:50] when the action create a banners on the<br>[18:52] top, is that what does it say? the<br>[18:54] banner says this has been archived or<br>[18:56] there's a kind of a way of I don't know<br>[18:59] adding some kind of reasoning of why<br>[19:00] this archive or showing like<br>[19:03] alternatives of what to use if like is<br>[19:06] there<br>[19:08] is does the action provides<br>[19:11] more things to do or does one of the<br>[19:13] checklist to say oh by the way add more<br>[19:15] information of what you expect the users<br>[19:18] to use now<br>[19:19] >> I see okay I'm going to share screen.<br>[19:25] Okay, cool. So, um the GitHub action, it<br>[19:29] does these three things, but um actually<br>[19:32] I have a PR up where we kind of want to<br>[19:35] generalize the action so that it's more<br>[19:37] configurable. So, speaking to um let me<br>[19:41] bring up the archive text.<br>[19:47] Okay. So, speaking to your point about<br>[19:49] um this archad text over here. So, um<br>[19:54] let's see. Yeah. So, I added a feature<br>[19:58] where you can add your own custom<br>[20:01] archive text text um which will be<br>[20:04] appended right over here. Um, so this is<br>[20:09] personally the um archival text that our<br>[20:12] organization decided to use, but there's<br>[20:14] also some best practices where you point<br>[20:16] other people to other repositories that<br>[20:18] users can um use that instead of the one<br>[20:22] that is about to be archived. Um, but<br>[20:25] here you can essentially just provide<br>[20:27] guidance on um to users on how you want<br>[20:30] to uh approach things. Go ahead, Remy.<br>[20:35] And one of the patterns that we've used<br>[20:37] in the past too, David, is that PRs are<br>[20:40] editable. So even if we have an<br>[20:42] automated tool that will generate the<br>[20:44] PR, the OSBO can go back in and then add<br>[20:47] custom text to it on a case- by case<br>[20:50] basis. Um along with that same like<br>[20:54] questions of like where you want to go,<br>[20:56] I don't know if Nat covered this, but um<br>[20:59] there's sort of two parts to repo<br>[21:01] sunset, right? This is the part that<br>[21:03] says we know we want to archive this<br>[21:05] repository. This is called what we refer<br>[21:07] to as the path of archive. We also have<br>[21:10] this concept of the path of growth which<br>[21:13] during the archival process like maybe<br>[21:16] we can say like hey it looks like your<br>[21:18] project is a little bit stale and coming<br>[21:20] up with like if you'd like it to not be<br>[21:23] stale here's a checklist of things you<br>[21:25] can do like adding pull requests<br>[21:27] templates or adding better contributor<br>[21:29] documentation or adding new issues that<br>[21:31] are labeled in a certain way to draw<br>[21:33] people towards your project or you know<br>[21:36] coming up with uh a little bit of like a<br>[21:40] you know a fork in the road to say like<br>[21:42] if you want to try and not go to the<br>[21:44] path of archival here's how you can get<br>[21:46] your project back on track and then we<br>[21:49] want to use that also as a as a leading<br>[21:51] indicator as well. So like maybe the the<br>[21:54] sun seting process starts by running the<br>[21:57] identification script identification<br>[21:58] script says here are the stale repos. So<br>[22:00] we file our first issue on our<br>[22:02] repository that says, "Hey, looks like<br>[22:04] you're stale. If you want to go down the<br>[22:06] path of growth, here's some things we<br>[22:07] suggest you do." And then if that issue<br>[22:09] sits idle for a quarter and we run it<br>[22:14] again, we can say, "Okay, we told them<br>[22:16] about the path of growth. They didn't go<br>[22:18] down the path of growth. Let's now<br>[22:21] change courses and and suggest that they<br>[22:23] go down the path of archive." And then<br>[22:25] if that one sits unattended, the OSPO<br>[22:29] can come in and we can burn down through<br>[22:30] the tickets and we want to keep track of<br>[22:34] all the tickets that we have filed so<br>[22:36] that we can show progress and<br>[22:38] demonstrate value to the organization<br>[22:40] and say like we've identified this many<br>[22:42] inactive repos, we've converted this<br>[22:44] many to active repos, or we've archived<br>[22:46] this many. And that's part of our source<br>[22:48] code stewardship task force strategy to<br>[22:51] go through with our inventory work and<br>[22:54] make more sense of what's going on uh<br>[22:56] across our footprint in the ecosystem.<br>[22:59] Uh we are still early on in this<br>[23:00] journey. You know, we just shipped this<br>[23:02] tool, so we're not running it regularly.<br>[23:04] I saw a question in the chat from Travis<br>[23:06] says, "How often uh do you run this?" Uh<br>[23:09] ideally, I think we're going to be<br>[23:10] running it probably on a quarterly<br>[23:12] basis. uh maybe a monthly basis if we<br>[23:15] wanted to, but quarterly is probably the<br>[23:17] right cadence. Um so this is something<br>[23:20] that's kind of new. Uh I think we'll<br>[23:22] like as soon as we're happy with it,<br>[23:24] we'll start rolling it out across our<br>[23:26] own GitHub organization and then testing<br>[23:28] it in other GitHub organizations.<br>[23:30] There's probably about<br>[23:32] at least half a dozen GitHub orgs that<br>[23:34] are part of our footprint, plus a bunch<br>[23:37] of others that we don't know about yet,<br>[23:38] too. So, I think it's it's going to be a<br>[23:41] little bit of a patchwork uh process<br>[23:44] because each org will have different uh<br>[23:48] cycles that we go through. So, a lot of<br>[23:50] this, you know, we're still early on in<br>[23:51] the in the inventory process, but we're<br>[23:54] we're feeling better as we're starting<br>[23:55] to put some concrete code that actually<br>[23:57] runs and actions that we can enable.<br>[24:03] >> Yeah. And one of one of the things we<br>[24:05] did at at VMware, so we did we did that<br>[24:08] audit about quarterly. So we had a<br>[24:10] Python script that looked for inactive<br>[24:11] repos. Um, and we ran it on a whole<br>[24:13] bunch of GitHub orgs because I think<br>[24:15] VMware had over a hundred GitHub orgs<br>[24:17] that had come in through acquisitions<br>[24:19] and various various things. It was it<br>[24:21] was a lot. Um, and so we ran it on a<br>[24:24] whole bunch of a bunch of different<br>[24:25] orgs. But the other thing um the other<br>[24:27] thing we did and this wasn't my idea.<br>[24:30] This was Stefka who worked on my team.<br>[24:31] this she ran the whole sunsetting<br>[24:33] process. Um she put together a really<br>[24:36] detailed process for unariving. So um<br>[24:40] she put together a process for this is<br>[24:41] what happens if you say that you want it<br>[24:43] archived and then you change your mind<br>[24:45] later. This is what we'll do. And it's<br>[24:47] it's fairly easy. We'll just bring it<br>[24:49] back. It's not a big deal. And that<br>[24:51] really that was a real turning point in<br>[24:54] convincing people to archive their<br>[24:56] repositories because I think a lot of<br>[24:58] people when you say they're going to<br>[24:59] archive it, they're like, "Oh, it's<br>[25:00] forever. I can never get it back. You<br>[25:02] know what? What if I change my mind? Um,<br>[25:04] here's the funny thing. No one ever<br>[25:06] changed their mind, but um but knowing<br>[25:08] that they could made all the difference.<br>[25:15] >> Don, it seems like you were ahead of the<br>[25:17] curve at VMware just even addressing<br>[25:20] this issue.<br>[25:22] And compliments Remy and Natalyia to<br>[25:26] your team because this is really<br>[25:28] thoughtful and well thought well well<br>[25:30] worked out. But I'm curious if there's<br>[25:34] maybe urgency is the wrong word, but<br>[25:37] some push to get on with focusing on<br>[25:41] this either because of the EUR and not<br>[25:44] wanting to have<br>[25:46] stewardship assigned to these things or<br>[25:50] just because people file pull requests<br>[25:52] and you just don't want to deal with it.<br>[25:57] >> Yeah.<br>[25:57] >> Or something.<br>[25:58] >> Uh, no, great question. I think that um<br>[26:01] there's definitely value like so we we<br>[26:04] think about the layers of stakeholders<br>[26:06] in our hospital right so the immediate<br>[26:09] stakeholders of the people within our<br>[26:10] community they just developers need more<br>[26:13] support uh you might have noticed you<br>[26:15] know across tech and in the public<br>[26:18] sector there have been a lot of<br>[26:20] reductions in force over the last year u<br>[26:23] maybe four years so teams are getting<br>[26:25] smaller uh contracts are being uh<br>[26:28] renegotiated or canceled. So, a lot of<br>[26:31] that brings a a more urgency to this<br>[26:34] type of an issue. And so, uh that is an<br>[26:38] immediate concern. Um with the the CRA,<br>[26:41] which I just I went to FOSD them in a<br>[26:43] personal capacity over the past uh month<br>[26:46] and got to hear a lot more about the<br>[26:48] CRA. Um in the world of the United<br>[26:51] States federal government, I think that<br>[26:52] that's less of a concern um because, you<br>[26:55] know, we're in the United States. Not to<br>[26:59] say that we're not a member of the<br>[27:00] global open source community, but um I<br>[27:02] don't I think that um we're the first<br>[27:04] federal OSO, right? So I don't think<br>[27:06] that that's as much on the radar of um<br>[27:10] there's no specific open source program<br>[27:12] offices thinking about that at other<br>[27:14] agencies. Uh that being said, I know<br>[27:16] there's cyber security concerns being<br>[27:19] upheld. That is the place where the<br>[27:20] federal government is actually really on<br>[27:22] top of the ball. So maybe there are<br>[27:24] other source code uh analysis uh and<br>[27:28] like cyber security functions for supply<br>[27:30] chain security that are that's more on<br>[27:33] their radar. Um, but I think that, you<br>[27:37] know, generally as like a steward of the<br>[27:39] code, like we just want to reduce our<br>[27:44] footprint and we want to be more<br>[27:46] intentional about saying like these are<br>[27:48] the active projects and these are the<br>[27:50] inactive projects so that we can, you<br>[27:53] know, direct the limited resources that<br>[27:56] we do have towards the projects that are<br>[27:58] in the best place to receive them and<br>[28:01] also to provide like another layer of<br>[28:03] nuance. Um it's been really helpful back<br>[28:06] at um Nadia's book working in public uh<br>[28:09] where she talks about the the project uh<br>[28:12] classifications of like toy federation<br>[28:15] club stadium where you talk about like<br>[28:17] your composition of upstream uh<br>[28:20] developers and your users and using that<br>[28:22] to describe more uh more clearly or more<br>[28:27] like<br>[28:29] you know more specifically like what<br>[28:31] your open source project is. It's not<br>[28:33] it's not just an open source project.<br>[28:34] It's a open source project of a certain<br>[28:37] size with a certain user base and a<br>[28:38] certain downstream and an upstream. So<br>[28:40] taking that same kind of classification<br>[28:42] and bringing it into the archival space<br>[28:44] where we can say like it's not just a if<br>[28:47] it's a inactive project, it's a stable<br>[28:51] project or it has an inactive downstream<br>[28:53] or a dormant upstream or a dormant<br>[28:56] downstream. you can say, you know, this<br>[28:58] project is being used by lots of places<br>[29:00] inside the federal government, but the<br>[29:02] upstream community is dormant now. Like<br>[29:05] that is a different thing versus we have<br>[29:07] an active upstream community, but<br>[29:09] there's not a lot of down, you know, not<br>[29:10] a lot of downstream users of it. And I<br>[29:12] think that helps us to figure out like<br>[29:14] in a more clear way how to prioritize<br>[29:16] those kinds of projects. Then we are<br>[29:18] helping to advise some other projects<br>[29:20] inside and outside the agency that have<br>[29:23] been impacted by reductions in force and<br>[29:26] open source is a succession strategy. Uh<br>[29:28] it really is important when you look at<br>[29:31] um inner source style models that are<br>[29:33] totally driven by internal teams and<br>[29:35] salaried people when those communities<br>[29:38] lose their core contributors. Uh how do<br>[29:41] you then provide succession? And an<br>[29:44] open- source strategy is one of the ways<br>[29:46] to help with that. It doesn't come<br>[29:48] without resource load or a lot of<br>[29:50] upfront work potentially, but uh it is a<br>[29:53] strategy to help to to secure succession<br>[29:56] when there's a big change in the<br>[29:57] composition of the contributor community<br>[29:59] in a project.<br>[30:02] >> Yeah. And to just to add to that a<br>[30:04] little bit, you know, one of the reasons<br>[30:06] that we started doing this so early at<br>[30:07] VMware was um was frankly the pivotal<br>[30:11] acquisition. So I came into VMware<br>[30:12] through the Pivotal acquisition and<br>[30:14] Pivotal didn't have an OSPO but we did<br>[30:17] have an open- source everything by<br>[30:19] default strategy um which meant that<br>[30:22] this is partly how ended how GitHub or<br>[30:24] how VMware ended up with over 100 GitHub<br>[30:27] orgs. Um and so we just had we had so<br>[30:30] much open source and nobody looking<br>[30:32] after it. And so so much of it was was<br>[30:34] in need of being being sunset and being<br>[30:37] archived because VMware's big concern<br>[30:39] was, you know, hey, we we've acquired<br>[30:41] this this smaller company and people<br>[30:44] tend to trust big companies like VMware.<br>[30:47] They're like, oh well, you know, it's a<br>[30:48] VMware open source project, so it's<br>[30:51] probably, you know, secure. Um, and and<br>[30:54] these these abandoned repositories<br>[30:56] aren't right. They've got all kinds of<br>[30:58] security vulnerabilities that have not<br>[31:00] been looked after. And so our concern<br>[31:01] was leaving these sit around is uh you<br>[31:04] know potentially creating security<br>[31:07] problems for the people who trust the<br>[31:10] the brand of the organization. So that<br>[31:13] was that was kind of why we started<br>[31:15] doing it. So we we started this it might<br>[31:17] have started a little bit before um<br>[31:19] Pivotal was acquired. I can't remember<br>[31:21] exactly but so this was around 2000 or<br>[31:24] so that we we really started uh sorry<br>[31:27] not 2000 uh 2020. It was right before<br>[31:29] the um you know people started being<br>[31:32] locked down. So it was about 2020 that<br>[31:34] we really started doing a lot of this<br>[31:35] stuff.<br>[31:36] >> You'd be really ahead of the curve if<br>[31:38] you were doing this in 2000.<br>[31:39] >> Yeah, exactly. This is that was back in<br>[31:42] the days where all of the Yeah. All the<br>[31:44] stuff was<br>[31:46] hosted hosted um in other places there,<br>[31:50] you know, Git didn't even exist.<br>[31:52] >> Yeah.<br>[31:57] Any other comments, questions, thoughts<br>[32:01] on this topic?<br>[32:05] We also don't have any other agenda<br>[32:07] items, so we're free to keep talking<br>[32:09] about this if it's if it's interesting<br>[32:11] to people. Um, if you have something<br>[32:12] else you want to talk about, we have a<br>[32:14] few more minutes, so we could always<br>[32:15] talk about something else. Um, that<br>[32:18] >> I have a sideline and but if other<br>[32:22] people want to talk about this, I I'll<br>[32:23] hold on it because it's changing the<br>[32:25] subject a little bit.<br>[32:30] I just have a question on uh when we<br>[32:32] were talking about tagging and giving<br>[32:34] the opportunity to grow. So this is kind<br>[32:35] of for the contributors reminding them<br>[32:39] you have opened this repo here. You were<br>[32:41] maintaining it and now it's kind of<br>[32:43] inactive.<br>[32:44] Do you want to bring it back? So or or<br>[32:47] this to let's say the for the internal<br>[32:51] contributors or or open source in<br>[32:53] general like if somebody else picks it<br>[32:56] up you would remain keep it open<br>[33:00] what because<br>[33:03] yeah if if you I saw you nodding<br>[33:06] >> you want to take a stab at that and I'll<br>[33:08] follow up<br>[33:12] >> you can do like me.<br>[33:16] >> Yeah. So, um, one of the key pieces of<br>[33:20] guidance that our ospo is like there are<br>[33:23] many layers to the the repository life<br>[33:26] cycle and the key one is our maturity<br>[33:28] models. So, one of the things we're<br>[33:31] coming up with right now is, you know,<br>[33:34] getting people from we don't know what<br>[33:36] our maturity model is to, okay, we think<br>[33:39] you're a one-time release or we think<br>[33:41] you're an inner source project or we<br>[33:43] think you're working a public project.<br>[33:45] >> And then knowing what maturity model<br>[33:48] you're in, then we can say, okay, what<br>[33:50] are the actions that can take you from<br>[33:53] base tier two to like advanced tier two?<br>[33:58] from advanced tier two to base tier<br>[34:00] three. So mapping the different pieces<br>[34:03] of guidance and now if you want to grab<br>[34:06] a link to the maturity model the table<br>[34:10] with all the like the documentation<br>[34:11] guidance. So it's a little bit rigid but<br>[34:16] structure is good. Uh we found that our<br>[34:18] users really like to have more<br>[34:20] structure. So we can tell them things<br>[34:21] like hey you're a tier 2 project. Tier 2<br>[34:25] project is an inner source style<br>[34:26] project. we notice that you don't have<br>[34:28] your agency mission. You don't have a<br>[34:30] code owners file. You don't have like<br>[34:32] pull request templates. You don't have<br>[34:34] issue templates. If you wanted to go<br>[34:37] through the checklist and add those<br>[34:39] kinds of things, then it would make it<br>[34:41] easier for people to make contributions.<br>[34:44] And we also have this sense of um we<br>[34:49] gave a talk recently internally about<br>[34:51] like is your project really open source<br>[34:53] if you don't accept poll requests from<br>[34:54] the outside world? And that's a really<br>[34:57] interesting question. Uh in the OSBO,<br>[35:00] our guidance is sort of like open source<br>[35:02] is a journey, right? So it starts with<br>[35:05] making your repository public, right? So<br>[35:08] if you have a public repo and you're<br>[35:09] working in the open, then yes, you are<br>[35:11] open source. Then you should start to<br>[35:14] accept issues and take feedback from the<br>[35:16] community. And then once you start<br>[35:17] accepting feedback from the community,<br>[35:19] then you can start accept contributions<br>[35:20] from the community. And then once you<br>[35:22] start accepting contributions from the<br>[35:23] community, you can start to accept<br>[35:25] maintainers from the community. And then<br>[35:27] once you start accepting maintainers,<br>[35:28] eventually you can accept people into<br>[35:30] your governance process. So we see that<br>[35:32] as sort of a a longitudinal journey at<br>[35:35] each layer of maturity. And we think we<br>[35:37] can help people depending on what their<br>[35:39] goal is to get to each of those hubs<br>[35:42] along the contributor's path. And we<br>[35:45] have made it more clear with the<br>[35:48] maturity model framework like what parts<br>[35:50] of what docs need to be where. Um it has<br>[35:53] been relatively straightforward to do<br>[35:56] the the tier zero through tier 2 because<br>[35:59] it's like that is a lot less<br>[36:02] specialized. It's like hey you should<br>[36:05] have issue templates, you should have<br>[36:06] pull request templates. You should have<br>[36:07] a contributor process. Like it's easy to<br>[36:10] say like and here are some that we<br>[36:12] recommend. But when you get into the<br>[36:14] higher tiers of like shared community<br>[36:16] governance or working in public, that's<br>[36:18] where the like one-sizefits-all uh<br>[36:21] guidance doesn't necessarily work as<br>[36:24] well. And you need the communities to<br>[36:27] opt in with their own things. So some<br>[36:29] communities are very like inner source<br>[36:32] style driven where they have timed<br>[36:34] releases and they go through like<br>[36:36] specific kinds of backlog grooming and<br>[36:38] like all that stuff is very particular<br>[36:40] to their project and should be reflected<br>[36:42] in their path of growth versus like<br>[36:44] something that's more of like a classic<br>[36:46] open source project that goes off of<br>[36:48] feature releases or doesn't have a very<br>[36:50] formal dev team or is very widely<br>[36:52] distributed would look very different.<br>[36:54] So, we don't have as much tier 4<br>[36:57] guidance as we do for like tier one or<br>[37:00] tier 2. So, we're filling in some of<br>[37:02] those gaps now, too. Um but all of this<br>[37:05] stuff is um you know NAT has been<br>[37:08] incredible and driving so much of it and<br>[37:10] putting together so much of the tools<br>[37:11] and they all build on the layers of<br>[37:13] documentation from the maturity models<br>[37:15] and the the repository scaffolder work<br>[37:17] and it's sort of putting it into place<br>[37:19] and we're starting to consider you know<br>[37:22] getting that back up into the Cass<br>[37:23] community because we've been leaning on<br>[37:24] so much of the metrics work here.<br>[37:29] >> Awesome. Thank you.<br>[37:30] >> That's great. Thank you. There was a<br>[37:32] side topic. I know we're getting close<br>[37:34] to the end, but<br>[37:35] >> yeah, Ria, what's your side topic?<br>[37:38] >> So, you had mentioned that part of your<br>[37:41] motivation, Don, for doing this was all<br>[37:43] of the GitHub repos that you were<br>[37:46] managing as part of VMware back in the<br>[37:49] day that there's a hundred GitHub repos<br>[37:51] from various acquisitions and projects<br>[37:53] and spin-offs and everything else. And I<br>[37:55] have a similar situation now. I've been<br>[37:57] just trying to figure out how to corral<br>[38:00] all of those. and I have index files and<br>[38:03] traffic cop files that you know so I can<br>[38:05] just have a one-stop shop to know where<br>[38:07] everything is. But I'm wondering if this<br>[38:10] group has<br>[38:12] experience or suggestions about doing<br>[38:16] that type of coraling to give a better<br>[38:19] face to the public so they know where to<br>[38:22] find stuff.<br>[38:29] Is that a yes, you do have advice or<br>[38:31] yes, you resemble that comment that you<br>[38:34] would like advice, Remy?<br>[38:36] >> I've been doing a lot of talking, so I<br>[38:38] was going to give somebody else a chance<br>[38:39] before I started again, but I definitely<br>[38:41] have answered for this.<br>[38:45] >> Um, so<br>[38:48] >> in government land, we have code.json,<br>[38:51] JSON, which is the metadata file that<br>[38:54] gathers up a lot of the information<br>[38:56] about what a project is and and what it<br>[38:59] does and what its purpose is and where<br>[39:01] it is in its development life cycle. And<br>[39:03] then that is supposed to go to an<br>[39:06] inventory on code.gov where people can<br>[39:10] search through and find pre-existing<br>[39:12] repositories while they're doing their<br>[39:14] market analysis before they build or buy<br>[39:16] something.<br>[39:17] >> That was the intention. Oh,<br>[39:19] >> it's still uneven amounts of adoption is<br>[39:22] uh how I would describe it.<br>[39:24] >> But um that's how it is in the federal<br>[39:26] landscape.<br>[39:27] >> In the international landscape, in the<br>[39:28] national landscape, um you have like<br>[39:31] code inventories from Germany and the<br>[39:34] Netherlands and France where they are<br>[39:37] using a similar metadata file to<br>[39:39] code.json, but it's probably like public<br>[39:42] code.yamel or code meta.json.<br>[39:45] So if you can go through,<br>[39:48] >> add a metadata file for each repository<br>[39:51] and then get it uploaded into an<br>[39:52] inventory. That's how the national<br>[39:54] governments are doing it and that's how<br>[39:56] uh the international project for<br>[39:57] software heritage foundation where<br>[39:59] they're cataloging all of Earth's source<br>[40:02] code<br>[40:02] >> as a UNESCO cultural heritage project.<br>[40:05] Uh they use code meta JSON to do that<br>[40:08] and they have forms for generating it<br>[40:10] and they have some other tools around it<br>[40:12] too. So, you know, we're hoping that<br>[40:15] part of our archival process on our road<br>[40:17] map is to create a converter that will<br>[40:20] take our federal standard metadata,<br>[40:22] convert it to the international<br>[40:23] standard, and ideally deposit it into<br>[40:26] the software heritage. But that's<br>[40:28] perspective future work. Shouldn't talk<br>[40:30] too much about that until we've shipped<br>[40:32] it. But those are some of the ways that<br>[40:34] we're thinking about uh that to your<br>[40:36] question like how do we keep track of<br>[40:38] all this stuff? If you add metadata to<br>[40:40] every repository at least then you can<br>[40:43] compare apples to apples and you can use<br>[40:45] that to update your inventory and then<br>[40:46] provide an inventory<br>[40:48] >> even if it's just like<br>[40:50] >> you know a simple web page that just<br>[40:52] puts everything together which is you<br>[40:54] know what we've done with our fork of<br>[40:58] >> it sounds like that could also be really<br>[41:00] helpful from an inner source perspective<br>[41:01] for the stuff that you're not<br>[41:03] necessarily putting out in the public<br>[41:04] but just to help your own organization<br>[41:06] find all the<br>[41:10] Oh, 100%. And like even just simple<br>[41:12] keyword and labeling stuff is great if<br>[41:14] you're like this is a data science thing<br>[41:15] or this is a Python thing or this is a<br>[41:17] Java thing. Like<br>[41:19] >> that alone really helps out especially<br>[41:21] in like the government space where we<br>[41:23] have different programs like Medicare or<br>[41:25] Medicaid. People will ask like hey does<br>[41:28] anyone have a Python project that will<br>[41:29] crunch this stat for this state? And<br>[41:33] being able to say, "Yeah, I think<br>[41:34] there's a repo over here that does that<br>[41:36] can really helps to save a lot of time."<br>[41:38] Uh, and ideally, if you have like<br>[41:41] example scripts or, you know, libraries<br>[41:44] inside the the firewall is just as<br>[41:46] important because, you know, we have all<br>[41:49] these tools that are common, the the R<br>[41:52] and the CCW and, you know, random<br>[41:55] acronym, but they're just like data<br>[41:58] sources where you can run scripts that<br>[42:00] are shared. And I know that those folks<br>[42:02] are looking to say, "Hey, I want to<br>[42:05] provide an inventory to other people so<br>[42:06] that they can run their scripts." It's<br>[42:08] not even necessarily like a whole<br>[42:10] projects. It's just like playbooks and<br>[42:12] and um run books and stuff like that.<br>[42:15] That is super helpful in the inner<br>[42:16] source context.<br>[42:19] >> Yeah. And the other thing the other<br>[42:20] thing we had within within VMware was we<br>[42:22] had some internal tooling that we would<br>[42:24] onboard at least the most important<br>[42:26] organizations to so that we could better<br>[42:29] manage things like access so people<br>[42:31] could request access to things. And so<br>[42:33] there was there was a bunch of internal<br>[42:36] tooling that did various bits of<br>[42:37] maintenance around some of the um GitHub<br>[42:40] or so. So I don't I don't know that's<br>[42:42] necessarily the best solution, but it is<br>[42:45] it is a another another way to do it.<br>[42:50] All right, we are we have one more<br>[42:52] minute. So, I'm just going to mention a<br>[42:54] couple of things. So, the next meeting<br>[42:56] which is on the 5th. Um, so there's that<br>[43:01] uh working group within the to-do group<br>[43:03] that's focused on basically business of<br>[43:05] open source. Um, and they're going to<br>[43:08] come in and talk to us a little bit<br>[43:09] about what they've been doing and some<br>[43:11] of the uh metrics that they've been<br>[43:13] talking about and maybe get some<br>[43:15] suggestions from us about uh metrics as<br>[43:18] well from a kind of a business value<br>[43:20] standpoint. Um, and Cornelius Schumacher<br>[43:23] is going to give that presentation. So,<br>[43:25] that'll be on the 5th. We will also<br>[43:27] schedule a what do I supposas need to be<br>[43:29] thinking about for AI? So, I've talked<br>[43:31] to Emma, she's happy to do that. We just<br>[43:32] need to get it to get it scheduled. And<br>[43:35] then the other things I wanted to<br>[43:36] mention, we have two conferences that<br>[43:38] have just opened their CFPs. One is uh<br>[43:41] the ASF's community over code. Um all<br>[43:45] things open also opened their CFP.<br>[43:47] They've got kind of a different format<br>[43:48] this year. So I would encourage you to<br>[43:49] have a look at that. And then there's<br>[43:51] also I think you talked about it uh at<br>[43:53] the last meeting that I missed, but<br>[43:54] there's an OSPO virtual conference that<br>[43:56] uh folks at Punch Tape are organizing.<br>[43:58] So that might also be interesting for<br>[44:00] folks.<br>[44:02] And with that, I think we are I think<br>[44:04] we're out of time. So, thank you<br>[44:06] everybody so much for coming. Uh, I<br>[44:08] really appreciate it. This was a really<br>[44:09] really interesting discussion. So,<br>[44:11] thanks to folks at the the CMS group,<br>[44:13] Natalyia and Remy, for for coming along<br>[44:15] and showing us some cool stuff.<br>[44:19] >> Thank you.<br>[44:20] >> Thanks everybody. Bye.<br>[44:22] >> Bye.<br>[44:23] >> Bye.<br>[44:24] >> Bye.
<!-- deep-read:sections end -->
๐ **Full text:** ![[Full Document Contents/Articles/CHAOSS OSPO WG, Feb 19 2026.md|CHAOSS OSPO WG, Feb 19 2026 by YouTube]]
## Highlights
- started with our agenda item. >> Yes, thank you. And I will be taking over the screen share. Okay. Actually before that um I'm Natalia Luzeryaga. I'm a software engineer as part of the open source program office at the Centers for Medicare and Medicaid Services. And today we'll be talking about um our organization's practices with archiving repositories. This has been one of my main projects um starting the beginning of this year. Um so lately ([View Highlight](https://read.readwise.io/read/01kpb4e0sq0fhx44ra320g6dcy))
- Tags: ๐ป ai highlighted
- thinking of uh the rest of the life cycle one path which we call the path of growth. So as a open source project matures further in their journey how best can we assist them as an ospo and the other side of it the path of archival. So how do we assist repositories that have reached the end of life? So today I'll be focusing specifically on the path of archival um and how exactly we go about sunsetting repositories in our organization. Okay. ([View Highlight](https://read.readwise.io/read/01kpb4e0sy1dwxq0rz9gdd7nyt))
- Tags: ๐ป ai highlighted
- comment on what has been unresolved, label the issues accordingly, and for those that won't be fixed, label that too. Then we assess um who has access to the repository. Then we perform a lightweight security review, review for secrets, keys, PII, and then we do some minor housekeeping like deleting some branches. And then for repositories that are a bit more mature in their journey um such as they accept contributions ([View Highlight](https://read.readwise.io/read/01kpb4e0tc8zhjbrd39f52fy1t))
- Tags: ๐ป ai highlighted
- make sure that all of our bases are covered before we mark the repository as read me as uh archived. Okay, cool. And then so based on um all this information I just shared with you um our team we created a tool to kind of automate some of that work called repo sunsetter. And this is essentially a GitHub action that um prepares a repository for archival by um creating an issue that posts all ([View Highlight](https://read.readwise.io/read/01kpb4e0tx6ntmn5k1qaa6c75k))
- Tags: ๐ป ai highlighted
- you so much. >> Okay cool. That's really good to hear. Yes. I hope this uh we decided to make this a GitHub action because we know this is a shared challenge that ospos go through. So we hope that you can also make use of it too. Yes. >> Okay. >> Very thoughtful. Thanks for sharing all this. >> Yes. Of course. Of course. Okay. Um let's see. while she's building let's see I think I can talk a little bit more about diagnosing repositories ([View Highlight](https://read.readwise.io/read/01kpb4e0vjnggpwbw6x3wkj6md))
- Tags: ๐ป ai highlighted
- so that the repository um the development team can um go through this checklist now that they know how exactly they should prepare their repository for archival. Yeah. Cool. And then notice that we have two items that have already been checked over here. And that's because we actually automated that work. So we should have two pull requests up in this repository. Okay, cool. One is updating the project metadata. And for ([View Highlight](https://read.readwise.io/read/01kpb4e0wsc5tt7rjgdqsjrz9d))
- Tags: ๐ป ai highlighted
- sunset, right? This is the part that says we know we want to archive this repository. This is called what we refer to as the path of archive. We also have this concept of the path of growth which during the archival process like maybe we can say like hey it looks like your project is a little bit stale and coming up with like if you'd like it to not be stale here's a checklist of things you can do like adding pull requests templates or adding better contributor documentation or adding new issues that ([View Highlight](https://read.readwise.io/read/01kpb4e0zhz5vvgbafqty656ab))
- Tags: ๐ป ai highlighted
- There's probably about at least half a dozen GitHub orgs that are part of our footprint, plus a bunch of others that we don't know about yet, too. So, I think it's it's going to be a little bit of a patchwork uh process because each org will have different uh cycles that we go through. So, a lot of this, you know, we're still early on in the in the inventory process, but we're we're feeling better as we're starting to put some concrete code that actually runs and actions that we can enable. ([View Highlight](https://read.readwise.io/read/01kpb4e111snazssfrpnhe2bp3))
- Tags: ๐ป ai highlighted