Skip to content

The YaST Team

José Iván López edited this page Oct 21, 2024 · 78 revisions

The YaST Team

Here is the list of the core YaST team members. The table contains name mapping for several services used by the team. If you want to know more about the Team, please have a look to our Team Charter.

Real Name Email/Bugzilla IRC GitHub Trello
3 Ladislav Slezák [email protected] lslezak lslezak ladislavslezak
4 Knut Anderssen [email protected] teclator teclator teclator
Josef Reidinger [email protected] jreidinger jreidinger josefreidinger
6 Imobach González [email protected] imobach imobachgs imobachgonzalezsosa
7 Ancor González [email protected] ancorgs ancorgs ancorgs
8 José Iván López [email protected] jilopez joseivanlopez joseivanlg
9 Stefan Hundhammer [email protected] HuHa shundhammer shundhammer
Martin Vidner [email protected] mvidner mvidner martinvidner
Michal Filka [email protected] mchf mchf michalfilka
10 David Díaz [email protected] dgdavid dgdavid diazglezdavid
11 Steffen Winterfeldt [email protected] snwint wfeldt steffenwinterfeldt

Contact Persons for Certain Key Areas

This does not list all areas the YaST team covers, and the other way round, it does not list the only knowledege of the persons listed here.

⚠️ Please, do not assign newly reported bugs directly to these persons, use the default (yast2-maintainers) account.

  • YaST installer (the framework): lslezak, jreidinger
  • YaST network: mchf, teclator
  • YaST firewall: teclator, mchf
  • Package management: lslezak
  • SLE registration, online/offline migration: lslezak
  • Travis integration: lslezak
  • Jenkins setup, package autosubmisison: lslezak, jreidinger, imobachgs, ancorgs
  • OBS/IBS setup: lslezak, jreidinger, imobachgs, ancorgs
  • Docker (in general), DockerHub: lslezak, imobachgs
  • yast.github.io/yast.opensuse.org: lslezak, ancorgs
  • Bootloader: jreidinger
  • ntp-client: jreidinger, jilopez
  • CWM: jreidinger
  • ruby-bindings: jreidinger
  • yast2 core: jreidinger
  • AutoYaST: imobachgs
  • YaST Configuration Management: imobachgs
  • Storage (partitioner, partitioning proposal, etc.): ancorgs, jilopez
  • Storage (libstorage-ng): aschnell
  • YaST2-Country (keyboard, language, etc.): ancorgs

Yast2 Maintainers

The yast2-maintainers mailing list it there to be a single reporting point to gather initial new entries from bugzilla. Every installation, update and YaST bug is by default assigned to the mailing list.

Because the number of bugs reported is high, the effort to clean up and reassign the bugs to the right persons takes considerable amount of time.

Whence, we introduce a round-robin schedule of persons responsible for cleaning up the bugs. For each period, there is a primary and a backup "person of the month". Also, there are several people watching the mailing list all the time and they help in case of bugstorms. Of course "person of the month" can ask himself for help.

Tasks of the yast2-maintainer-assigned person

  • triage the bugs
  • resolve the bug if trivial (like DUPLICATE, INVALID, FEATURE)
  • ensure the needed information for resolving the bug is available (ask for logs, hwinfo output, how to reproduce the bug step-by-step or any relevant information)
  • reassign to the respective package maintainer if the bug is not in YaST (use "osc bugowner" or "osc maintainer", if unsure just change the Component and reset the assignee to default)
  • reassign to the right YaST account ("[email protected]" or "[email protected]" for low priority bugs/features which won't be handled by the YaST team)
  • set the priority if the default P5 is set, use common sense, crashes, data loss, release blockers... = P1/P2, normal bugs = P3, minor issues and features = P4
  • create a card in Trello (use the ytrello tool or an user browser script ), move the urgent issues (L3s, P1s if marked as urgent by PMs) to the current sprint and add Underwaterline and Fast-track labels
  • for L3s find a "volunteer" to work on it (ask on IRC or cooperate with the PO to find the correct person, try spreading the workload across the team)
  • make sure the product, version and architecture is correct
  • be a bit more aggressive with closing bugs as WONTFIX/INVALID (unsupported scenarios, easy workarounds available, very specific corner cases, too complicated features which make sense only for a very limited target audience...), esp. with P4 bugs, we have too many bugs open...
  • NEEDINFO bugs: wait about a week for the feedback then ping the info provider, if there is still no response for another week then close it as NORESPONSE. (Use comment like "If you can still provide the requested information then please reopen the bug and provide it." when closing the bug so it's clear it is still possible to continue.)
  • feature requests should be assigned to [email protected] or [email protected]
  • cca 3 working days before the end of month inform the new yast2-maintainers to get ready
  • NEEDINFO bugs on yast-maintainers or yast-internal: set needinfo on expert from YaST team.

Schedule

Period Person Backup
Sprint 83 & 84 - 2019-08-12 mfilka david
Sprint 85 & 86 - 2019-09-09 david lslezak
Sprint 87 (forced rotation) - 2019-10-07 lslezak knut
Sprint 88 & 89 - 2019-10-21 knut huha
Sprint 90 & 91 - 2019-11-18 huha ancor
Sprint 92 & 93 - 2019-12-16 ancor aschnell
Sprint 94 & 95 + pre-Hackweek + Hackweek aschnell mvidner
Sprint 96 & 97 mvidner
Sprint 98 & 99 mvidner
Sprint 100 & 101 mfilka
Sprint 102 & 103 jilopez
Sprint 104 & 105 snwint
Sprint 106 snwint
Sprint 107 & 108 dgdavid
Sprint 109 & 110 lslezak imo
Sprint 111 & 112 jreidinger
Sprint 113 & 114 schubi jilopez
Sprint 115 & 116 jilopez mvidner
Sprint 117 & 118 mvidner huha
Sprint 119 & 120 huha ancor
Sprint 121 & 122 lslezak snwint
Sprint 123 & 124 snwint imo
Sprint 125 & 126 imo jreidinger
Sprint 127 & 128 jreidinger david
Sprint 129 & 130 david mfilka
Sprint 131 & 132 mfilka knut
Sprint 133 & 134 knut jilopez
Sprint 135 & 136 jilopez huha
Sprint 137 & Christmas huha david
Sprint 138 david lslezak
Sprint 139 & 140 lslezak ancor
Start 2022-02-21 ancor jreidinger
Start 2022-03-21 snwint jreidinger
Start 2022-04-19 jreidinger imo
Start 2022-05-16 imo mvidner
Start 2022-06-13 mvidner david
Start 2022-07-18 david mfilka
Start 2022-08-15 mfilka knut
Start 2022-10-03 knut huha
Start 2022-11-02 huha jilopez
Start 2023-01-09 jilopez lslezak
Start 2023-02-13 lslezak ancor
Start 2023-03-13 ancor jreidinger
Start 2023-04-17 jreidinger imo
Start 2023-05-15 imo mvidner
mvidner david
david mfilka
Start 2023-06-12 mvidner mfilka
Start 2023-07-10 mfilka knut
Start 2023-09-04 knut huha
Start 2023-10-02 huha jilopez
Start 2023-10-30 jilopez lslezak
Start 2023-11-13 lslezak ancor
Start 2023-12-11 ancor jreidinger
Start 2024-01-09 jreidinger imo
Start 2024-02-05 imo mvidner
Start 2024-03-04 mvidner david
Start 2024-04-02 david mfilka
Start 2024-04-29 mfilka knut
Start 2024-06-03 knut huha
Start 2024-07-01 huha jilopez
Start 2024-08-27 jilopez lslezak
Start 2024-09-23 lslezak ancor
Start 2024-10-21 ancor jreidinger
jreidinger imo
imo mvidner
mvidner david
david mfilka
mfilka knut
knut huha
huha jilopez
jilopez lslezak
lslezak ancor

Ruby script used to generate the list

people = [ 
  { name: "imo",        location: :canary,  network: true  },  
  { name: "knut",       location: :canary,  network: true  },  
  { name: "david",      location: :canary,  network: false },
  { name: "ancor",      location: :canary,  network: false },
  { name: "jilopez",    location: :canary,  network: false },
  { name: "huha",       location: :germany, network: false },
  { name: "snwint",     location: :germany, network: false },
  { name: "mfilka",     location: :czechia, network: true  },  
  { name: "jreidinger", location: :czechia, network: true  },  
  { name: "lslezak",    location: :czechia, network: false },
  { name: "mvidner",    location: :czechia, network: false }
]

# We usually already know who should be the first
first_name = "mfilka"

# Those were the last ones in the previous list, they deserve some rest
not_at_beginning = ["jilopez", "snwint", "mvidner"]

def valid_pair?(pair)
  return false if pair.all? { |p| p[:network] }
  pair.first[:location] != pair.last[:location]
end

def valid?(list, first, not_at_start)
  return false if first && first != list.first[:name]

  if not_at_start && !not_at_start.empty?
    list_names = list.map { |p| p[:name] }
    start = first ? 1 : 0 
    first_names = list_names[start, not_at_start.size]
    return false unless (not_at_start & first_names).empty?
  end 

  list.each_cons(2) do |pair|
    return false unless valid_pair?(pair)
  end 

  # The list is ROUND robin, so first and last should also be compatible
  valid_pair?([list.first, list.last])
end

# list is too big to list all permutations, so let's take a shortcut
people.shuffle! until valid?(people, first_name, not_at_beginning)

people.each_cons(2) { |x| puts "#{x[0][:name]} - #{x[1][:name]}" }