RFC 9311
Running an IETF Hackathon
๐ RFC 9311: Running an IETF Hackathon ๐
Okay bestie, let's get into it ๐ This one is an Informational doc (so it's not a Standards Track spec, just helpful practices) from C. Eckel of Cisco Systems, published September 2022. It's an IETF product, it does NOT obsolete or update any other RFCs, and it's ISSN 2070-1721 if you're into that kind of detail ๐ง
Here's the vibe: this doc is basically the IETF's playbook for Hackathons, where the community collabs on running code for Internet standards. It covers how to run them whether people show up in person, remotely, or online only ๐
Abstract โจ
IETF Hackathons encourage the IETF community to collaborate on running code related to existing and evolving Internet standards. This document provides a set of practices that have been used for running IETF Hackathons. These practices apply to Hackathons in which both in-person and remote participation are possible, with adaptations for Hackathons that are online only.
Status of This Memo ๐
This document is not an Internet Standards Track specification; it is published for informational purposes.
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are candidates for any level of Internet Standard; see Section 2 of RFC 7841.
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9311.
Copyright Notice โ๏ธ
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.
Table of Contents ๐บ๏ธ
1. Introduction
2. Timing
2.1. Agenda
2.2. Hackdemo Happy Hour
2.3. Code Lounge
2.4. Code Sprint
2.5. Online Only
3. Funding
3.1. Sponsorship
3.2. Expenses
3.2.1. In-Person Event Expenses
3.2.2. Remote Participation Expenses
4. Project Presentations
4.1. Project Pitches
4.2. Project Results Presentations
4.2.1. Templates
4.3. Upload to GitHub
4.4. Presenting in Person
4.5. Presenting Remotely
5. Tooling
5.1. Datatracker
5.2. IETF Website
5.2.1. Hackathon Website
5.2.2. Meeting Website
5.3. Registration
5.3.1. Participant List
5.3.2. Caps on Registrations
5.4. Meeting Wiki
5.4.1. Hackathon
5.4.2. Lost and Found
5.4.3. Results Presentation Schedule
5.4.4. In Person Only
5.4.5. Online Only
5.5. Email List
5.5.1. Email Alias for Hackathon Chairs
5.6. GitHub
5.7. Meetecho
5.8. Network
5.8.1. Remote Networking
5.9. Webex
5.10. Gather
6. Statistics and Metrics
6.1. IETF Survey Results
6.2. Hackathon Survey Results
7. Roles and Responsibilities
7.1. Hackathon Chair(s)
7.2. Secretariat
7.3. Sponsor
7.4. Champions of Projects
7.5. IETF LLC, Director of Communications and Operations (was
ISOC)
7.6. Judges
8. Implementation Status
9. Security Considerations
9.1. Privacy Considerations
10. IANA Considerations
11. Informative References
Acknowledgments
Author's Address
1. Introduction ๐ธ
IETF Hackathons encourage the IETF community to collaborate on running code related to existing and evolving Internet standards. IETF Hackathons aim to:
- advance the pace and relevance of IETF standards activities by bringing the speed and collaborative spirit of open source development into the IETF
- bring developers and early career professionals into the IETF and get them exposed to and interested in the IETF
IETF Hackathons are free to attend and open to everyone. Software developers are the primary audience, but participation by subject-matter experts who are not necessarily developers is encouraged and very important as well. Similarly, while the Hackathon is meant to attract newcomers and people who do not typically attend standards meetings, long-time IETF contributors, including Internet-Draft authors, working group chairs, and subject-matter experts, are key participants as well. Collaboration and blending of skill sets and perspectives are extremely valuable aspects of IETF Hackathons.
In addition to the running code created and improved as a result of each Hackathon, the exchange of ideas, extensions of human networks, and establishment of trust, respect, and friendships are some of the most valuable outputs of each Hackathon. Code written in a programming language is often more illustrative and constructive than opinions expressed during a meeting or in an email. Working together to find common understanding of proposals, concerns, and solutions that result in improvements to evolving Internet standards is as important as the development of running code that implements or validates the correctness of these same proposals.
Consequently, IETF Hackathons are collaborative events, not competitions. Any competitiveness among participants is friendly and in the spirit of advancing the pace and relevance of new and evolving Internet standards. IETF Hackathons are inclusive, not only in terms of who can participate but also in terms of the projects included in each Hackathon. All projects should be related to existing or proposed Internet standards in some way. Examples include, but are not limited to, interoperability of implementations, proof of concepts, and tools that help implement, monitor, or deploy network protocols.
IETF Hackathons foster an open environment, with much of the code being open source and results of projects typically shared publicly. The Hackathon operates under the [NOTE-WELL]; however, the rules and terms around code are those of the license associated with the code. Although code is often and preferably open source, it may be proprietary as well.
This document provides a set of practices that have been used for running IETF Hackathons.
2. Timing โฐ
The first IETF Hackathon was held the weekend before the start of the IETF 92 meeting. The rationale was to avoid conflicts yet make it relatively convenient for those attending the IETF meeting to participate in the Hackathon as well. Holding the Hackathon on the weekend was also viewed as making it more accessible to those who are not IETF meeting participants, including students and working professionals who would have other commitments during the week. The weekend before was viewed as better than the weekend after so that things learned during the Hackathon could be shared and discussed with the rest of the IETF community during working group sessions and the like. This worked well at IETF 92, was repeated at IETF 93, and quickly became an established norm with the IETF meeting being officially extended to include the Hackathon at the start. An additional benefit of this timing noted and appreciated by participants is that it serves as a more informal and social way to physically and mentally acclimate to changes in time zones and surroundings.
2.1. Agenda ๐
The IETF Hackathon is a strenuous event. Though not a competition, participants want to make the most of their time together, much as with the IETF meeting in general. Competitive Hackathons typically run nonstop for on the order of 40 hours. There is a strict deadline, teams are judged, and winners are declared at the end. Afterward, participants are wiped out and head off to briefly celebrate or commiserate but mainly to recuperate. As the IETF Hackathon serves as the start of the overall IETF meeting, we aim to strike a compromise that provides time to get valuable work accomplished without exhausting everyone before the main IETF meeting even starts. While some people participate in the Hackathon only, the majority of people remain and plan to be actively engaged in the rest of the IETF meeting.
The typical agenda is as follows:
Saturday before IETF meeting week
08:30: Room open for setup by project champions
09:00: Room open for all - pastries and coffee provided
09:30: Hackathon kickoff
09:45: Form teams
12:30: Lunch provided
15:30: Afternoon break - snacks provided
19:00: Dinner provided
22:00: Room closes
Sunday before IETF meeting week
08:30: Room opens - pastries and coffee provided
12:30: Lunch provided
13:30: Hacking stops; prepare brief presentation of project
results
14:00: Present project results to other participants
15:45: Closing remarks and opportunities for next time
16:00: Hackathon ends
17:00: Tear down complete
The time on Saturday morning provides the opportunity for team champions to set up and participants to socialize and learn more about projects and teams they might want to join. The kickoff presentation and formalities are kept to a minimum to leave as much time as possible for teams to work together on their projects. The proximity of teams fosters communication and collaboration between them as well.
Lunch and dinner are provided as a convenience and an incentive to remain at the Hackathon. Participants are free to come and go as they like. It is well understood and accepted that there are other things vying for time and that meeting with friends and colleagues outside of the Hackathon is an entirely reasonable thing to do.
The room closes Saturday evening to give hotel staff unfettered access to the room and to encourage people to pace and take care of themselves. There are no rules against continuing work on projects outside of the Hackathon room. Similarly, working on projects long before and after the Hackathon is allowed and encouraged.
The end of the Hackathon on Sunday is driven by other IETF meeting events. Typically, there are Newcomer events that start at 16:00. The IETF Hackathon typically includes many newcomers in its list of participants, and it is important to provide them time to participate in the Newcomer events. The opening reception for the IETF typically starts at 17:00, and we want to make it easy for all Hackathon participants to join that as well.
Hackdemo Happy Hour (Section 2.2) and the Code Lounge (Section 2.3) exist to facilitate ongoing discussion and work on projects beyond the official end of the Hackathon weekend.
โจ That's Part 1 of 5, bestie! The intro, timing, and agenda are all covered. Part 2 is next, and it's gonna get into the Hackdemo Happy Hour and Code Lounge ๐ ๐ซถ
2.2. Hackdemo Happy Hour ๐ป
Okay so Hackdemo Happy Hour is basically the place to go for deeper, more real talk about projects than the end-of-Hackathon results presentations ever allow โจ. Every team gets invited, and just like the results presentations, showing up is totally optional ๐ซถ.
Originally, something similar happened as part of [BITS-N-BITES]. It worked really well for the Hackathon, but that event got retired for other reasons ๐ญ. So Hackdemo Happy Hour was created as a low-cost, chill event where the IETF community could actually hang out with Hackathon teams and dig into their projects ๐ฆ.
It's usually Monday evening, roughly 18:00 - 19:30 ๐ธ. It often overlaps a little with the last working group session of the day, but it runs long enough that everyone has a real shot at joining. The whole point is to be easy to attend: no clashing with other meetings, and no going super late into the night ๐ .
There are light snacks and drinks, plus a cash bar, because it's a happy hour and we're keeping the vibe ๐นโจ.
2.3. Code Lounge ๐ป
The Code Lounge is where teams can keep collaborating on running code after the Hackathon is over ๐ง. It's typically in the IETF Lounge, open the same hours as the IETF Lounge ๐.
Champions are encouraged to check the final agenda and pick the time slots that will get the most people to their Code Lounge sessions, and to line them up with any related working group sessions too ๐ . Multiple teams can totally sign up for the same slot, and honestly that's encouraged for work that spans multiple working groups or projects ๐ซถ๐.
2.4. Code Sprint ๐ ๏ธ
The [CODE-SPRINT] builds tools that support the work of the IETF ๐ฅ. The Code Sprint was around way before the Hackathon, and it thrived because it was a focused event in a quiet space with very few interruptions ๐คซ.
That said, the Code Sprint and the Hackathon have a ton of synergy, and they pull in a lot of the same people ๐ฏ. For example, some Hackathon projects, like the ones about YANG model validation, involve creating or changing IETF tools ๐. So it's a big win to co-locate the two events whenever it's practical. And when they get separate spaces, it's smart to put those spaces physically close together so people can hop back and forth between them easily ๐โโ๏ธ๐.
2.5. Online Only ๐
The IETF 107 Hackathon was originally going to happen on the weekend right before the IETF meeting in Vancouver ๐. Then COVID-19 hit, and it became clear the IETF meeting couldn't happen in person ๐ฉ. By that point the Hackathon already had 23 projects and 176 registrations ๐.
With only 10 days until the Hackathon was supposed to start, a [SURVEY] went out to the whole Hackathon community, including all project champions and registered participants ๐. The question was whether people still wanted to do the Hackathon exactly as planned, just everyone remote instead of in person. Only a relatively small number of people were interested, and even fewer wanted to keep championing their projects ๐. The timing (the weekend before the meeting) and the local time zone were both things that had always made the Hackathon super convenient and attractive, and suddenly they were huge obstacles ๐. So the IETF 107 Hackathon was canceled ๐ฅฒ.
We knew way earlier that IETF 108 would be online only ๐ปโจ. So we moved the Hackathon and stretched it out to cover the entire work week before the rest of the IETF meeting ๐๏ธ. The kickoff was on Monday and the closing on Friday, and all the time in between was left for project teams to meet however and whenever worked best for them ๐ซ. The kickoff and closing sessions were lined up with the IETF 108 meeting time frame ๐ฐ๏ธ.
Was all of this perfect? Nope, not even close ๐ . It worked way better for some people than others. But at least everyone knew the plan and the time commitment well ahead of time, so they could plan around it ๐.
In the end there were 19 projects and almost 300 registrations ๐. Nobody can say exactly how many people actually participated or for how long, but plenty of folks got substantial work done on their projects ๐ช. For the closing, 10 teams made and shared presentations summing up their findings and achievements ๐. All of the results presentations, plus the agenda and a recording of the closing session, are on the [IETF-108-HACKATHON-WIKI] ๐ผ. That level of participation was strong enough to count as a success, and it's the reason the Hackathon is justified for future online-only IETF meetings ๐๐.
Hackdemo Happy Hour and the Code Lounge don't apply to online-only Hackathons ๐.
3. Funding ๐ธ
The Hackathon needs funding, and the more participants there are, the more funding it needs ๐. Taking part has always been free, so funding has to come from sources other than participant fees ๐ค.
3.1. Sponsorship ๐ค
The original plan was for Hackathon sponsors to sign up and fund the Hackathon for one year ๐ . When the Hackathon got started, Cisco volunteered to sponsor and fund it for the first year (that's three Hackathons, one at each IETF meeting in a calendar year) ๐. The sponsorship was supposed to rotate. Huawei stepped up for the second year ๐. After that, nobody was found for the third year ๐ฌ. But by then the Hackathon had become a proven success ๐ . So the IETF decided to fund the Hackathon as part of the IETF meeting, with sponsorship on a best-effort basis ๐ .
Online-only Hackathons, which happened because of the COVID-19 pandemic, along with more remote participation in general, mean more cloud infrastructure is needed โ๏ธ. That makes Hackathon sponsorship more attractive to cloud infrastructure providers ๐.
Hackathon sponsorship comes in different levels as part of being an IETF [RUNNING-CODE-SPONSOR] ๐.
3.2. Expenses ๐งพ
The main expenses for the Hackathon are the ones for hosting an in-person event, like meeting space, food and drinks, and so on ๐. It's often hard to pin down which parts belong to the Hackathon and which parts are just part of the IETF meeting overall ๐คทโโ๏ธ.
3.2.1. In-Person Event Expenses ๐
These expenses come up when people take part in a Hackathon in person. If the IETF meeting is online only, all of these go away ๐.
3.2.1.1. Meeting Space ๐ข
Sometimes the Hackathon's meeting space is already part of the overall contract for the IETF meeting ๐. Other times, it's an extra expense, because a big enough space has to be secured earlier than would normally be needed ๐ค. The space is usually needed from Friday afternoon before the IETF meeting starts until Sunday afternoon ๐๏ธ. After the Hackathon, the space is usually repurposed as the IETF Lounge ๐๏ธ. If the Hackathon keeps growing, it might have to use the same space that's later used for the IETF plenary ๐.
3.2.1.2. Food and Beverage ๐ฅช
Part of the food and beverage expense is often covered by a minimum spend the IETF has to make anyway ๐งฎ. When a Hackathon sponsor is found, that sponsorship money is usually used to cover food and beverage costs or to make the food and beverage budget bigger ๐ฐ.
The minimum food and beverage requirements for the Hackathon have been:
- coffee, tea, and water Saturday and Sunday morning โ
- lunch Saturday and Sunday ๐ฅ
Additional items, in order of importance, include:
- beer Saturday evening ๐บ
- dinner Saturday evening ๐
- continental breakfast Saturday and Sunday ๐ฅ
- afternoon snacks Saturday and Sunday ๐ช
3.2.1.3. T-Shirts ๐
Hackathon T-shirts are a really big deal ๐ซถ. They've been provided for every in-person Hackathon, and lots of participants have really appreciated them ๐. They're also great advertising for the IETF, the Hackathon, and the sponsors ๐ฃ. Cisco or other event sponsors have often covered the T-shirt costs ๐ธ. Right now, the Secretariat covers the expenses using whatever funding is available ๐ฆ.
Here's an example of the size breakdown for IETF 107 ๐:
- 380 T-shirts at a cost of roughly $10 USD each, with shipping to the Secretariat included:
- 50 Small
- 120 Medium
- 110 Large
- 75 XL
- 25 XXL
All the T-shirts are standard cut ๐. Fitted cut T-shirts were offered as an option for Hackathon participants before, but they weren't well received ๐.
3.2.1.4. Stickers โจ
Laptop stickers are super popular with developers ๐ป๐. Stickers have been available at the Hackathon for anyone who wants them ๐ฆ. The IETF LLC, which oversees the communications and operations budget, has covered these expenses ๐งพ.
3.2.2. Remote Participation Expenses ๐ก
These expenses are for things done mainly to make remote participation in a Hackathon possible. That includes participation when the Hackathon is online only, as well as remote participation when the Hackathon is in person ๐.
- Meetecho: cost associated with the Hackathon kickoff and closing ๐ฅ
- Gather: costs associated with premium service, required to enable more than 25 concurrent users. This hasn't been necessary yet, but it almost certainly will be if Gather becomes a valuable way for Hackathon participants to meet within and across teams ๐โจ
- Webex: IETF Webex accounts are made available to champions for the duration of the Hackathon, plus some time after that which covers at least the rest of the IETF meeting ๐ผ. These accounts are currently available at no additional cost to the IETF ๐.
- Network: setup and support of the IETF network and remote access to it ๐
The change in timing and longer duration of the Hackathon at an online-only IETF meeting increases how long and how much the remote participation facilities get used, going from 7 days to 12 days โณ. That might raise the cost of providing these facilities ๐๐.
4. Project Presentations ๐ค
Project presentations are a big deal ๐ . They capture what each team plans to accomplish, what they actually accomplished, and they share the results and findings with the IETF community ๐ซถ.
For the first few Hackathons, there were two really distinct kinds of presentations ๐ฆ:
- presentations that served as project pitches at the start of the Hackathon ๐
- presentations that summarized results at the end of the Hackathon ๐
4.1. Project Pitches
okay so, project pitches were 5-10 minute presentations where a champion got up and explained what they wanted to build and how they planned to pull it off ๐คโจ This gave everyone in the room a better sense of all the projects and helped people figure out which ones matched their vibe ๐ It worked great when there were only a few projects, but once the list got longer it became kinda chaotic ๐ As more people learned about the Hackathon and planned ahead, lots of participants already knew exactly which team they wanted to join and just wanted to start building ASAP instead of sitting through talks ๐ So project pitches got dropped from the Hackathon ๐ฆ Champions are encouraged to share this kind of info ahead of time on the IETF Meeting Wiki (Section 5.4) instead ๐ซถ
4.2. Project Results Presentations
these were quick presentations from each team about what problem they tried to solve, what they actually achieved, and the highlights, including lessons learned, feedback for the related working groups, and collaboration with open source communities and other standards organizations ๐ They also call out people who joined their first IETF Hackathon or their first IETF event, which helps newcomers get introduced to the community ๐ง Making and presenting a results summary is optional ๐ Honestly, despite there being no awards or prizes, most teams still show up and present, and that's so iconic ๐ญ๐ฅ
same as with the pitches, results presentations can get unwieldy as the number of projects grows ๐ So the total time for all results presentations is capped at 2 hours โฐ The max length of each presentation is worked out based on how many teams say they want to present ๐ This maximum is strictly enforced so every team gets a fair shot at presenting ๐ Maximum durations of 3-5 minutes are typical โจ
4.2.1. Templates
the results presentation templates give you guidance on what to cover ๐ Using them is optional, no pressure bestie ๐ธ They come in several formats in a GitHub repo that gets made specifically for each IETF Hackathon's presentations, e.g., [RESULTS-PRESENTATIONS] ๐ฆ
4.2.1.1. Microsoft PowerPoint Open XML (PPTX)
for portability, if you use the PPTX template, you should also export your presentation to PDF ๐๐
4.2.1.2. HTML Format
the HTML template should render in any browser ๐ It can also be shown as a slideshow using [REMARK] ๐๏ธโจ
4.3. Upload to GitHub
all project results presentations get uploaded to the GitHub repo made for the Hackathon, e.g., [RESULTS-PRESENTATIONS] ๐ The contents of that repo are used as the source for all the results presentations at the end of the Hackathon, and they stick around as a reference afterwards ๐ It's giving organized archive energy ๐๏ธ
you have to be a member of the [IETF-HACKATHON-GITHUB] organization to upload a new presentation or update or replace an existing one ๐
to get added as a member, presenters are asked to:
- include the name by which they are known in their GitHub profile ๐ชช
- enable 2-factor authentication (2FA) ๐
- send their GitHub username to the Hackathon Chair(s) ๐
please do this at your earliest convenience ๐ฅบ The Chair(s) tends to get super busy as the start of presentations gets closer ๐ญ
4.4. Presenting in Person
presentations are run from a shared Chromebook at the front of the Hackathon room ๐ป The Secretariat provides this Chromebook ๐
4.5. Presenting Remotely
remote presenters are welcome to run their own presentations using the screen-sharing feature in Meetecho ๐ฅ๏ธโจ Or, if that's not your thing, the Hackathon Chair(s) can share the presentation and advance the slides for you ๐ซถ
5. Tooling ๐งฐ
the IETF Hackathon uses the same tooling that the IETF community uses for its work and meetings ๐
5.1. Datatracker
the [DATATRACKER] supports teams that aren't part of the standards development process, and the Hackathon is one of those teams ๐ธ From the Datatracker menu, go to Groups -> Other -> Active Teams -> hackathon. There's a Datatracker space for the Hackathon that's kinda like what working groups get, including meeting materials, agendas, and so on ๐ At first, people tried copying materials from the [IETF-HACKATHON-GITHUB] over to the Datatracker ๐คทโโ๏ธ Now that only happens when it's needed for integration with other IETF tooling, including:
- requesting sessions for the Hackathon kickoff and closing and for Hackdemo Happy Hour, e.g., [REQUEST-SESSIONS] ๐๏ธ
- posting agendas (e.g., see [AGENDAS]) ๐
5.2. IETF Website
5.2.1. Hackathon Website
the IETF website has a [HACKATHON-WEBSITE] ๐ It has general info about the Hackathon plus links to past, present, and future Hackathons ๐ The relevant links get updated after each IETF meeting, and the rest of the content gets updated more ad hoc ๐ฆ
5.2.2. Meeting Website
each IETF [MEETING-WEBSITE] has info about the matching Hackathon, including its dates in the header and a link to the Hackathon website in the "Additional Events" section ๐๏ธ
5.3. Registration
registration for the Hackathon goes through the IETF meeting [REGISTRATION-SYSTEM] ๐ Hackathon participant registration is:
- independent of participation registration for the meeting ๐ โโ๏ธ
- free ๐ฅณ
- required ๐
just like meeting registration, people who register for the Hackathon acknowledge the [NOTE-WELL] during sign-up โ๏ธ
5.3.1. Participant List
an active list of all registered participants, e.g., [PARTICIPANTS], is maintained by the Secretariat ๐ Each registrant's entry shows the projects and technologies they're into, plus an email address โจ Both of those are optional when you register, and you can update or remove them by editing your registration ๐ซถ
5.3.2. Caps on Registrations
okay tea time: registrations were capped for the first several Hackathons ๐ซ It was done for space and cost reasons ๐ธ The cap got hit multiple times, and every time it caused confusion and frustration for would-be registrants, which is the reason the cap kept getting raised ๐ฉ Right now, the registration system doesn't enforce any caps ๐ If the number of participants goes over what the main Hackathon room can fit, designated overflow areas in the meeting venue are made available ๐
5.4. Meeting Wiki
the [MEETING-WIKI] is the main source of info for each Hackathon ๐โจ
5.4.1. Hackathon
the Secretariat creates a page in the meeting wiki for each Hackathon, e.g., [IETF-110-HACKATHON-WIKI] ๐ง It's initialized with info that's mostly carried over from the previous Hackathon ๐ Once it exists, the Hackathon Chair(s) updates and moderates the page ๐ Champions are requested, and responsible, for adding info about the projects they champion ๐ฆ
anyone can edit the wiki by logging in with their Datatracker login credentials ๐ If you don't have credentials yet, you can get them by creating a [DATATRACKER-ACCOUNT] ๐ท
5.4.2. Lost and Found
the Chair(s) makes a Lost and Found wiki page for each Hackathon, e.g., [LOST-AND-FOUND] ๐ Participants who are looking for a team are encouraged to add themselves to the "Skills to Offer" table, with some info about their skills and interests ๐โโ๏ธ This helps others with matching needs or interests find them ๐ Champions who want help on their projects are encouraged to add their teams to the "Skills Needed" table, with some info about the skills they're looking for ๐ ๏ธ
5.4.3. Results Presentation Schedule
the Chair(s) makes a Results Presentation Schedule wiki page for each Hackathon, e.g., [RESULTS-PRESENTATION-SCHEDULE] ๐๏ธ Hackathon teams are welcome and encouraged to present their results during the Hackathon closing ๐ค To sign up, teams add their project name and presenter's name to the table at the bottom of the page ๐
5.4.4. In Person Only
these wiki pages only apply to in-person Hackathons ๐๏ธ
5.4.4.1. Hackdemo Happy Hour
the Chair(s) makes a Hackdemo Happy Hour wiki page for each Hackathon, e.g., [HACKDEMO] ๐น Champions are welcome and encouraged to add their project by putting the project name or acronym, plus a contact name and email address, in the table on the page ๐ฅ
5.4.4.2. Code Lounge
the Chair(s) makes a Code Lounge wiki page for each Hackathon, e.g., [CODE-LOUNGE] ๐๏ธ Champions are welcome and encouraged to add their project by putting the project name or acronym, plus a contact name and email address, in the table on the page ๐ป
5.4.5. Online Only
these wiki pages only apply to online-only Hackathons ๐
5.4.5.1. Team Schedule
the Chair(s) makes a Team Schedule wiki page for each online-only Hackathon, e.g., [TEAM-SCHEDULE] ๐๏ธ Online-only Hackathons happen globally for an entire week โจ Each project team decides its own preferred dates, times, and ways to meet during that week (e.g., Zoom, Webex, or Slack) ๐ฌ This page helps teams coordinate schedules within and across teams ๐ซถ
5.5. Email List
the Hackathon [EMAIL-LIST] is used for all email communication and announcements related to the Hackathon ๐ฌ All registrants get the option to subscribe, and anyone who's interested in keeping up with the Hackathon can subscribe at any time ๐ Once you're subscribed, you can send and reply to emails through the list ๐ The same list is used for every Hackathon ๐ If you only want emails for one specific Hackathon, you can unsubscribe once that Hackathon has wrapped up ๐
5.5.1. Email Alias for Hackathon Chairs
the email alias <hackathon-chairs@ietf.org> was created and is maintained by the Secretariat ๐ It's used on Hackathon web pages and wiki pages as a single point of contact for the Hackathon ๐
5.6. GitHub
the [IETF-HACKATHON-GITHUB] is used to share code, presentations, and other artifacts at IETF Hackathons ๐๐ The Hackathon Chair(s) is responsible for administering the GitHub organization ๐
code for Hackathon projects often lives somewhere else, and that's perfectly fine ๐ซถ If you need a place to host code for the Hackathon, you can request a repository be created for your project ๐
A repository is created and maintained by the Chair(s) for each Hackathon, e.g., [RESULTS-PRESENTATIONS] ๐ This repo is for participants to upload project results presentations ๐ค The contents of this repo are used as the source for all presentations at the end of the Hackathon, and they stick around as a reference afterwards ๐
5.7. Meetecho
[MEETECHO] is used for the kickoff and closing sessions of the Hackathon ๐ฅ It's packed with features, including the following:
- allows participants to join Hackathon sessions in person or remotely ๐งโโ๏ธ๐ป
- validates the registration of participants at the time of joining Hackathon sessions โ
- enables remote presenters of project results presentations ๐ฅ๏ธ
- captures recordings of the Hackathon kickoff and closing ๐น
5.8. Network โจ
okay so the IETF network is literally one of the best parts of the Hackathon ๐๐ Access to it matters a lot, and it gives you unfiltered internet access that a lot of home, work, and uni networks just don't. For plenty of people and projects, wireless access to the IETF network is totally enough ๐ถ But because of the kind of work we do at the IETF, wired access and special networking features are often needed, and that's where it gets iconic ๐ฅ
The Network Operations Center (NOC) has been carrying the Hackathon since day one and keeps leveling up its game over time ๐ Champions can request wired access and special networking features ahead of time, like static IPv4 and IPv6 addresses, IPv6-only networking, a closed user group, Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers (NAT64), and IPv6 Prefix Delegation ๐ฆ All of that, plus the IETF network in general, is ready by the start of the Hackathon, and set up in advance wherever it's possible ๐ซถ
5.8.1. Remote Networking
okay, online-only meetings are a whole mood because you're dealing with a personal networking challenge AND a computer networking challenge ๐ The NOC handled the computer part with an experimental setup that let people join the IETF network while attending remotely. That grew into what's now called "HackNet" [HACKNET], a global Layer 2 VPN built to support IETF protocol development across teams in the IETF Hackathon ๐โจ Only a limited set of devices can connect to HackNet right now. Besides Layer 2 connectivity, you get a subset of the networking capabilities available at in-person meetings ๐ง Both the device list and the networking capabilities are expected to grow and change over time ๐ธ
BUT, and this is important bestie, HackNet is still an experiment and NOT a production service ๐ Best-effort support is available by email at support@ietf.org ๐ง
5.9. Webex
Champions can request a [WEBEX-ACCOUNT] to schedule meetings for their team ๐ These are basically the same kind of Webex accounts the working group chairs use for virtual interim meetings ๐ A team champion can request one at any time, and the accounts stay active and available for the whole Hackathon and the associated IETF meeting โญ You can also use a project name instead of "Working Group Name" on the request form ๐
5.10. Gather
[GATHER] is where the virtual hallway magic happens during IETF meetings ๐ง๐ The Secretariat creates a dedicated area in the overall space just for the Hackathon. The area has tables labeled with letters of the alphabet, and teams can claim whichever table they want and use it whenever ๐ฆ Each table has eight to ten seats for group discussions within the team ๐ซถ A dry erase board or a shared notes tablet, e.g., [HEDGEDOC], at each table helps the team share info, and the tables also make it easy to collab across teams too ๐ฅ One cautionary note, though: Gather has relative high-network bandwidth and CPU requirements, so it might not be well suited for some Hackathon participants ๐
The Gather space stays available between IETF meetings, and it gets incremental improvements and additions during that time โจ About a month before the next meeting starts, the space gets cleaned and anything left over from the last meeting is removed ๐งน So, bestie, Hackathon teams are encouraged to copy anything they want to keep within a week of the end of the IETF meeting ๐
6. Statistics and Metrics
Statistics for the Hackathon were gathered informally from the first Hackathon, at IETF 92, and more formally since IETF 101 ๐ Registration is required, but it's also free, which can lead to misleading stats ๐ Starting with IETF 101, the Secretariat has been validating registrations for all in-person participants by checking them at the main entrance to the Hackathon room ๐ Badges similar to the ones issued for the rest of the IETF meeting are now issued for the Hackathon too ๐ท๏ธ There's still no good mechanism for counting remote participants though, sadly ๐ญ
Hackathon participation has grown from 45 participants at IETF 92 to a maximum of 406 participants at IETF 104 ๐ It tends to be slightly higher when the IETF meeting is in Europe ๐ช๐บ Recent in-person Hackathons have had roughly 30-40% as many participants as the corresponding IETF meeting ๐ And for roughly 20-30% of Hackathon participants, the Hackathon is their very first IETF event ever, which is literally so cute ๐ฅน๐
6.1. IETF Survey Results
For each IETF meeting there's a post-event survey, and it often includes a question or two about the Hackathon, e.g., [IETF-106-SURVEY] ๐
6.2. Hackathon Survey Results
Sometimes there are Hackathon-specific surveys to get more detailed feedback from the IETF community ๐ These have been especially useful for online-only Hackathons ๐ป The surveys have been short, with most questions being optional, e.g., [IETF-110-SURVEY] โจ
7. Roles and Responsibilities
okay, this section is a summary of who does what to make a successful IETF Hackathon happen ๐ It's not meant to be exhaustive, and some responsibilities are explained fully or in more detail elsewhere in the document ๐
7.1. Hackathon Chair(s)
A Hackathon Chair is basically a working group chair, just for the Hackathon ๐ Like with working groups, it's usually best to have co-chairs who share the responsibilities and the workload ๐ซถ The Hackathon Chair(s) works super closely with the Secretariat on everything. The key responsibilities are:
- Organize and deliver a Hackathon at each IETF meeting, which involves asking all the other roles for help with the heavy lifting ๐ช
- Encourage and guide the champions who volunteer to lead projects ๐ง
- Maintain the Hackathon wiki, e.g., [IETF-110-HACKATHON-WIKI], and all of its child pages ๐
- Moderate the Hackathon email list (Section 5.5) ๐ฌ
- Request sessions for the Hackathon opening and closing in the IETF meeting, e.g., [REQUEST-SESSIONS] ๐๏ธ
- Emcee the Hackathon, including the opening and closing sessions and the announcements in between ๐ค
- Create and manage the GitHub repository used for each Hackathon, e.g.,[RESULTS-PRESENTATIONS] ๐
- Serve as the main point of contact for all Hackathon questions and concerns ๐
7.2. Secretariat
The Secretariat's key responsibilities are:
- Configure and manage the Hackathon registration system (Section 5.3) ๐๏ธ
- Maintain the Hackathon website (Section 5.2.1) ๐
- Create and maintain the web page for each Hackathon, e.g., [IETF-110-HACKATHON-WEBSITE] ๐ฅ๏ธ
- Create a wiki page for each Hackathon, e.g., [IETF-110-HACKATHON-WIKI]. The Secretariat initializes and updates this at times, but the Chair(s) is ultimately responsible for maintaining it ๐
- Handle venue logistics for the Hackathon, Hackdemo Happy Hour, and the Code Lounge (e.g., reserve room, food and beverages, AV, etc.) ๐
- Handle internal IETF promotion (e.g., via email messages to the IETF community) ๐ฃ
- Assist with external outreach, as needed, including finding sponsors ๐ค
- Validate Hackathon registrations for in-person participants, including issuing badges and Hackathon T-shirts (Section 3.2.1.3) when available ๐
7.3. Sponsor
Sponsors have some key responsibilities and some pretty cute benefits ๐ธ
Key responsibilities:
- Provide some funding to help offset costs of the Hackathon (either per meeting or per year, depending on the model) ๐ฐ
- Optionally provide T-shirts or other giveaways ๐
- Optionally provide support staff to assist with the Hackathon ๐ซก
Key benefits:
- Sponsor logo on Hackathon T-shirts ๐
- Sponsor logo on Hackathon signage ๐ชง
- Sponsor logo on the Hackathon web page and wiki ๐
- Sponsor logo and call out in the Hackathon kickoff and closing presentations ๐ข
- Sponsor logo and call out in the IETF plenary presentation ๐ค
- Sponsor logo and call out in the Hackathon recap on [IETF-BLOG] ๐ฐ
- Recognition in the IETF community for helping the IETF Hackathon remain free and open to everyone ๐
7.4. Champions of Projects
Champions are literally the key to a successful Hackathon ๐๐ซถ Their key responsibilities are:
- Volunteer to lead a project at the Hackathon ๐โโ๏ธ
- Serve as the primary contact for the project ๐
- Add and manage information on the Hackathon wiki for the project, including the Hackdemo Happy Hour (Section 2.2), Code Lounge (Section 2.3), and Team Schedule (Section 5.4.5.1) pages ๐
- Promote the project to appropriate groups inside the IETF and outside as well ๐ฃ
- Welcome and organize members of the team ๐ค
- Provide focus, guidance, and leadership for the project ๐
7.5. IETF LLC, Director of Communications and Operations (was ISOC)
The IETF LLC Director of Communications and Operations (who was ISOC before) has these key responsibilities:
- Promote the Hackathon outside of the IETF, including web search engine ad words, social media posts, and listing on external event calendars, such as [RIPE-CALENDAR] and [NSRC-CALENDAR] ๐๐ฑ
- Handle outreach to local universities ๐
- Provide a photographer, including optional team photos and candid photos of collaborating during in-person events ๐ธ
- Provide laptop stickers (Section 3.2.1.4) at in-person events ๐ปโจ
7.6. Judges
The first several Hackathons had judges ๐งโโ๏ธ They listened to project results presentations from teams at the closing of each Hackathon, and picked winning teams for an arbitrary number of project categories. Winning team members got prizes ๐ The idea was to incentivize participating and presenting results, and to make a fun yet informative ending that the whole IETF community could enjoy ๐
But judging and prizes caused confusion about what the Hackathon was for, and it made it look overly competitive to some people ๐ฌ Buying appropriate prizes was also financially and logistically challenging ๐ธ Arranging judges, picking winners, and handing out prizes all got more and more time consuming, especially as the number of projects and participants grew ๐ตโ๐ซ So in the end, it was deemed best to eliminate judging, awards, and prizes entirely ๐ซถ And honestly? The IETF community clearly has an innate incentive to participate and present results at the Hackathon already ๐
8. Implementation Status
The practices described in this document have been established, used, and refined over the course of running numerous IETF Hackathons, including several at online-only IETF meetings ๐ ๏ธ The GitHub repository [GITHUB-REPO] has been used to collaborate on this document ๐ And the IETF-Hackathon GitHub (Section 5.6) contains code associated with IETF Hackathons, so go check it out ๐ป๐
9. Security Considerations โจ
HackNet (Section 5.8.1) lets Hackathon participants join the IETF network while they attend a meeting remotely ๐. The goal is for remote folks to have as open a network as possible, just like people connecting to the IETF network at an in-person meeting ๐ฆ. A user MUST have a Datatracker account to access HackNet, and they are expected to respect it, the same way they're expected to respect the IETF network at an in-person meeting ๐ซถ. If HackNet gets exploited, it gets handled the same way an exploitation of the IETF network would be at an in-person meeting ๐ฅ.
โ ๏ธ HackNet is the same network as the real IETF one, just from your couch. Treat it with the same respect or the vibes get very, very bad ๐
9.1. Privacy Considerations ๐
The Hackathon complies with the IETF/IRTF/IAB [PRIVACY-STATEMENT] ๐.
Participant names are shown publicly in the Participant List (Section 5.3.1) ๐. When they register, participants can opt in to show their email address too ๐.
Champions often share their email addresses publicly on the wiki themselves ๐. That's totally voluntary, and they do it so it's easier for people to reach them ๐ซถ.
Photos from the Hackathon, and from the IETF meeting in general, sometimes end up in blog posts or on social media ๐ธ. Red lanyards are available for Hackathon participants who don't want to be photographed individually or in small groups ๐โค๏ธ. Wear one and the photographers will know what's up ๐ โโ๏ธโจ.
10. IANA Considerations ๐ง
This document has no IANA actions ๐ธ.
11. Informative References ๐
[AGENDAS] IETF, "IETF Meeting Agenda", <https://datatracker.ietf.org/meeting/agenda/>.
[BITS-N-BITES] IETF, "About Bits-N-Bites", <https://www.ietf.org/how/meetings/98/bits-n-bites/>.
[CODE-LOUNGE] IETF, "IETF 113 Code Lounge", <https://trac.ietf.org/trac/ietf/meeting/ wiki/113hackathon/codelounge>.
[CODE-SPRINT] IETF, "Code Sprint", <https://www.ietf.org/how/runningcode/code-sprint/>.
[DATATRACKER] IETF, "IETF Datatracker", <https://datatracker.ietf.org/>.
[DATATRACKER-ACCOUNT] IETF, "IETF Datatracker Account Creation", <https://datatracker.ietf.org/accounts/create/>.
[EMAIL-LIST] IETF, "IETF Hackathon Mailing List", <https://www.ietf.org/mailman/listinfo/Hackathon/>.
[GATHER] "Gather", <https://gather.town/>.
[GITHUB-REPO] "draft-ietf-shmoo-hackathon: IETF SHMOO working group draft on running an IETF Hackathon", commit 6a8aad6, July 2022, <https://github.com/eckelcu/draft-ietf-shmoo-hackathon/>.
[HACKATHON-WEBSITE] IETF, "IETF Hackathons", <https://www.ietf.org/how/runningcode/hackathons/>.
[HACKDEMO] IETF, "IETF 113 Hackdemo Happy Hour", <https://trac.ietf.org/trac/ietf/meeting/ wiki/113hackathon/hackdemo>.
[HACKNET] IETF, "HackNet", <https://hacknet.meeting.ietf.org/>.
[HEDGEDOC] IETF, "HedgeDoc", <https://notes.ietf.org/>.
[IETF-106-SURVEY] IETF, "IETF 106 Meeting Survey", <https://www.ietf.org/media/documents/ IETF_106_Meeting_Survey.pdf>.
[IETF-108-HACKATHON-WIKI] IETF, "IETF 108 Hackathon Wiki", <https://trac.ietf.org/trac/ietf/meeting/ wiki/108hackathon/>.
[IETF-110-HACKATHON-WEBSITE] IETF, "IETF 110 Hackathon Online", <https://www.ietf.org/how/runningcode/ hackathons/110-hackathon/>.
[IETF-110-HACKATHON-WIKI] IETF, "IETF 110 Hackathon Wiki", <https://trac.ietf.org/trac/ietf/meeting/ wiki/110hackathon/>.
[IETF-110-SURVEY] IETF, "IETF 110 Meeting Survey", <https://ql.tc/8K1JeZ/>.
[IETF-BLOG] IETF, "IETF Blog", <https://www.ietf.org/blog/>.
[IETF-HACKATHON-GITHUB] IETF, "IETF-Hackathon Repositories", <https://github.com/ietf-hackathon/>.
[LOST-AND-FOUND] IETF, "IETF 110 Hackathon Lost and Found", <https://trac.ietf.org/trac/ietf/meeting/ wiki/110hackathon/lost&found>.
[MEETECHO] "Meetecho", <https://www.meetecho.com/>.
[MEETING-WEBSITE] IETF, "Meetings and events", <https://www.ietf.org/how/meetings/>.
[MEETING-WIKI] IETF, "IETF Meeting Wiki", <https://trac.ietf.org/trac/ietf/meeting/wiki>.
[NOTE-WELL] IETF, "Note Well", <https://ietf.org/about/note-well/>.
[NSRC-CALENDAR] Network Startup Resource Center, "Education Outreach and Training (EOT) Calendar for Internet Development", <https://nsrc.org/calendar/>.
[PARTICIPANTS] IETF, "IETF 110 Hackathon Participant List", <https://registration.ietf.org/110/participants/ hackathon/>.
[PRIVACY-STATEMENT] IETF, "IETF/IRTF/IAB Privacy Statement", <https://www.ietf.org/privacy-statement/>.
[REGISTRATION-SYSTEM] IETF, "IETF Meeting Registration System", <https://registration.ietf.org/>.
[REMARK] "remark: A simple, in-browser, markdown-driven slideshow tool", commit 1bbce13, May 2022, <https://github.com/gnab/remark/>.
[REQUEST-SESSIONS] IETF, "IETF Session Request", <https://datatracker.ietf.org/secr/sreq/>.
[RESULTS-PRESENTATION-SCHEDULE] IETF, "IETF 110 Hackathon Results Presentation Schedule", <https://trac.ietf.org/trac/ietf/meeting/ wiki/110hackathon/resultspresentationschedule>.
[RESULTS-PRESENTATIONS] IETF, "IETF 110 Hackathon Project Results Presentations", commit a6a12bd, March 2021, <https://github.com/ietf- hackathon/ietf110-project-presentations>.
[RIPE-CALENDAR] RIPE NCC, "Upcoming Events", <https://www.ripe.net/participate/meetings/calendar/>.
[RUNNING-CODE-SPONSOR] IETF, "IETF Meeting Sponsorship: Running Code Sponsors", <https://www.ietf.org/support-us/sponsorship/#running- code>.
[SURVEY] IETF, "IETF 107 Hackathon Results: Participant Survey", <https://www.surveymonkey.com/results/SM-9HLRXN8M7/>.
[TEAM-SCHEDULE] IETF, "IETF 110 Hackathon Team Schedule", <https://trac.ietf.org/trac/ietf/meeting/ wiki/110hackathon/teamschedule>.
[WEBEX-ACCOUNT] IETF, "IETF Webex Account", <https://ietf.webex.com/webappng/sites/ietf/ dashboard?siteurl=ietf/>.
Acknowledgments ๐ซถ
The IETF Secretariat, notably Alexa Morris and Stephanie McCammon, contributed significantly to the creation of the IETF Hackathon and the practices in this document ๐. Alexa drafted the initial breakdown of "Roles and Responsibilities" (Section 7), and Stephanie created the initial Hackathon website and wiki ๐. These have evolved over time and are used to run each Hackathon โจ.
Greg Wood, Barry Leiba, Michael Richardson, Benson Muite, Dhruv Dhody, Karl Auerbach, Mallory Knodel, Lars Eggert, Robert Sparks, Thomas Fossati, Alvaro Retana, Erik Kline, John Scudder, Roman Danyliw, and รric Vyncke also provided significant contributions to the Hackathon and to this document ๐๐.
Author's Address ๐ฆ
Charles Eckel Cisco Systems United States of America Email: eckelcu@cisco.com
๐ฆ where this page comes from
- ietf: rfc9311 2022-09
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms