2024-01-31 - TCR Process Improvements



Discussion items

1 minScribeAll

 Ingolf Kuss is next, followed by Maccabee Levine 

Reminder:  Please copy/paste the Zoom chat into the notes.  If you miss it, this is saved along with the meeting recording, but having it here has benefits. 

*TCR Process ImprovementsAll


From Maccabee Levine in #tc-internal:

The TCR Process Improvements subgroup would like dibs on the Wednesday 1/31 meeting to discuss our draft PR and related recommendations.  We'll share it with TC well before that so people can review async ahead of the meeting.

Pull Request: https://github.com/folio-org/tech-council/pull/55


comment thread only in one document

summary of the major changes

new_module_tech_eval document

  • a new section "Before Development"
    • supplemented by a communications plan
  • a note about the iterative nature; a positive process to make it easier
  • after the evaluation, the rest of the TC members need to approve it. The evaluator makes a recommendation.
  • a couple of options what the TC can do when not all criteria are met:
    • if for architectural changes: make an RFC first → deferring
    • minor things, not controversial → provisionally accepted
    • criterion is wrong, TC needs to update the criteria

criteria document

  • general scope expanded from "just new modules" to also "existing modules"
    • some criteria might not extend to existing modules
  • criteria also apply for frontend shared libraries, backend also for edge modules.
  • allowing for sonar cube exceptions

template document

  • referring to the release of Stripes; the "latest release of Stripes" might be too old.
  • a new section of criteria: "administrative" : Listed by the Product Council. ... owners must submit to the PC , while TC evaluates
  • a naming conventions template



  • define what is "controversial" → TC and submitter unanimously agree
  • the process is a chain in which the TC has gone last. The PC also has to approve it. There does not need to be a sequence. Both things need to be done. .. Probably outside the scope of this group's work.
  • Criteria can not be overridden. All boxes need to be checked.
  • These changes are not controversial at all.
  • Having more formal options is good.
  • What happens after the deferral ? (PC needs to be involved in the decision)
  • After provisonal acceptence, we agree upon a time line.
  • Not a blocking issue.
  • "active" vs. "accepted" OSTs. Should we only target "accepted" ? You can't apply ... because the Development Freeze happens after the submittance to the TC.
  • if we keep "active" and "accepted" we need some guidance. There is more than one "active" and "accepted". → use the one which is tied to the target release.
  • Modules which use the wrong version of Stripes will not make it into the Release.
  • The language needs to include "the target release".
  • Make the changes and then accept the PR.

Presenter notes:

Input from:
- many comments from Matt Weaver after the lists round of TCRs
- many discussions since at TC
- Jenn, Tod, Craig and Maccabee on the subgroup

Summary of the PR:
- lots of big stuff and little stuff
- criteria and template are parallel docs.  tried to make the change in both places but have the comment thread only in one.  not consistent on which.
- work planned after PR, i.e. to wiki pages.  listed on subgroup page

- summarize major changes ~ 10-15m
- discuss whatever
- if there is time, talk through smaller changes
- see where we are at the end of the hour

Eval doc:

- Before Development section.  read criteria first.  do a RFC if needed.  comm plan in progress.

- iteration encouraged.

- keeping separation between objective evaluation results, and TC decision.  evaluator in practice can recommend a decision but that's separate from the evaluation.

- Adding two alternatives to rejection
  - deferral, if major changes needed, i.e. RFC.
  - provisional acceptance, if TC and submitter unanimously agree on changes to resolve any failures, with timeline.  for really obvious stuff that should not hold up acceptance.
  - acceptance, if the problem is ours.
  - justification required

Criteria doc:

- existing modules incoprorated.  no process defined for that, intentionally.  didn't want to get ahead of formalization.  follow-up work to determine if all criteria are relevent or not.

- FE criteria apply to shared libraries also.

- BE criteria apply to shared backend libraries and edge modules also.

- allowing sonarqube exceptions if they are justified

- Administrative section -- criteria that PC has approved.  allow us to work in parallel if we want to, but prevent TC approval if PC is still in progress. 

Template doc:

- refer to Stripes version on OST page as ACTIVE or ACCEPTED

- reference to naming conventions document.  may take extra work to update that doc.

NAZoom Chat

Topic Backlog

Decision Log ReviewAll

Review decisions which are in progress.  Can any of them be accepted?  rejected?

Translation SubgroupAllSince we're having trouble finding volunteers for a subgroup, maybe we can make progress during a dedicated discussion session?
Communicating Breaking ChangesAllSince we're having trouble finding volunteers for a subgroup, maybe we can make progress during a dedicated discussion session?
Officially Supported Technologies - UpkeepAll

Previous Notes:

  • A workflow for these pages. When do they transition from one state to another. Do we even need statuses at all ?
  • Stripes architecture group has some questions about the Poppy release.
  • Zak: A handshake between developers, dev ops and the TC. Who makes that decision and how do we pass along that knowledge ? E.g. changes in Nodes and in the UI boxes. How to communicate this ? We have a large number of teams, all have to be aware of it.  TC should be alerted that changes are happening. We have a couple of dedicated channels for that. Most dev ops have subscribed to these channels. How can dev ops folk raise issues to the next level of community awareness ? There hasn't been a specific piece of TC to move that along.
  • Craig: There is a fourth group, "Capacity Planning" or "Release Planning". Slack is the de facto communication channel.  There are no objections to using Slack. An example is the Java 17 RFC. 
  • Craig: The TC gets it on the agenda and we will discuss it. The TC gets the final say.
  • Marc Johnson: We shouldn’t use the DevOps Channel. The dev ops folks have made it clear that it should only be used for support requests made to them.
  • Jakub: Our responsibility is to avoid piling up technical debt.
  • Marc: Some set of people have to actually make the call. Who lowers the chequered flag ?
  • Craig: It needs to ultimately come to the TC at least for awareness. There is a missing piece. Capacity Planning needs to provide input here. 
  • Marc: Stakeholders / Capacity Planning could make that decision. Who makes the decision ? Is it the government or is it some parts of the body ?
  • Marc: the developers community, the dev ops community and sys ops are involved. For example the Spring Framework discussion or the Java 17 discussion. But it was completely separate to the TC decision. It is a coordination and communication effort.
  • Marc: Maybe the TC needs to let go that they are the decision makers so that they be a moderating group.
  • Jakub: I agree with Marc. But we are not a system operating group. Dependency management should be in the responsibility of Release management. There are structures in the project for that.
  • Jason Root: I agree with Jakub and with Marc also. Policies should drive operational/release/support aspects of Folio.
  • Jason Root: If the idea of “support” is that frameworks are supported, then of course the project should meet that.
  • Marc Johnson
    Some group needs to inform OleksAii when a relevant policy event occurs.
    These documents effectively ARE the manifestation of the policy.
  • Craig: This is a topic for the next Monday session.
  • Craig to see if Oleksii Petrenko could join us to discuss the process for updating the officially supported technologies lists.

  • Do common libraries used to build in approved frameworks need to be on this list? Such as spring-way and spring-module-core.

Dev Documentation VisibilityAll

Possible topic/activity for a Wednesday session:

  • Discuss/brainstorm:
    • Ideas for the type of developer-facing documentation we think would be most helpful for new developers
    • How we might bring existing documentation up to date and ensure it's consistent 
    • etc.

Action Items