2024-03-18 Meeting notes

Date

AttendeesĀ 


Discussion items

TimeItemWhoNotes
1 minScribeAll

Maccabee Levine is next, followed byĀ Craig McNally

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.

5-10 minLiaison Updates
  • CC: Maccabee Levine
    • No meeting this week
  • PC: Tod Olson
    • Discussion about Roadmap and Prioritization process.Ā  Writing how requirements are written.Ā  WOLFcon topic ideas.
    • TC should discuss its own topic suggestions (future dedicated discussion).
  • RMS Group: Jakub SkoczenĀ 
    • Jakub not available
  • Security Team: Craig McNallyĀ 
    • Craig not available
  • Tri-council Application Formalization: Jenn ColtĀ 
    • Jenn will post the questions for the week as usual.
5 minUpcoming MeetingsAll
  • Ā - Dedicated Discussion - Static Code Analysis (maybe)
  • Ā - Regular TC meeting
  • Ā - Dedicated Discussion - Topic TBD
  • Ā - Regular TC meeting
  • Ā - Dedicated Discussion - Topic TBD
  • Ā - Regular TC meeting
  • Ā - Dedicated Discussion - Topic TBD
10-15 min

Technical Council Sub Groups Updates

All

Quick updates only.Ā  If we can't find volunteers for groups, we'll need to add the topic to our backlog and address it during dedicated discussion sessions

Go RFC

  • Subgroup is over, not in draft refinement anymore.

Distributed vs. Centralized Config RFC

  • Subgroup is over, not in draft refinement anymore.

TCR Process Improvements

  • Language recommendation communicated to RSMG this morning.

App Formalization RFC

  • Subgroup is over, not in draft refinement anymore.
10 minRFCs

All

  • Public review update
    • Application Formalization RFC
    • Go Programming Language for Backend Development RFC
    • Distributed vs Centralized Configuration RFC - is in public Review
1 minDecision LogAll

Standing agenda item... is there anything in the decision log requiring attention?Ā 

30minTCR Board ReviewAll,Ā Maccabee Levine andĀ Ingolf Kuss

TCR-40 MOD-SerialsĀ Ingolf Kuss:

  • Present Evaluation Continued
    • https://github.com/folio-org/tech-council/pull/70/files/
    • Most criteria passed.Ā  Two did not.
      • Grails 6.Ā  Module is on Grails 5.Ā  True for all Groovy/Grails modules.Ā  Team has committed to Grails 6 when Quesnelia is out.Ā  Would not prevent Ingolf from preventing module; issue is larger than this module.
      • Test coverage up to 64%.Ā  Brought down because of Grails dynamic code generation.
    • Recommend approving module.
  • Technical Council Review
    • Dev team and TC agree it will be Grails 6 by Quesnelia release.Ā  Components have to upgrade to Grails 6 before the modules.Ā  Working on mod-agreements upgrade first before mod-serials-management.Ā  Goal to resolve all upgrades by end of week.
    • Jeremy Huff concerned about setting a precedent about static code analysis.Ā  Need discussion to evolve process so a module can demonstrate the quality in an effective way, but not allow modules that don't.Ā  Test coverage is a poor proxy for quality, but it is a common & useful one, so good to have in place.Ā  Agree with explanation about generated code, not interested in coverage for that, but interested in coverage on original code.
      • Ingolf Kuss entire notion of unit tests doesn't apply here, using integration tests.Ā  Then what tool, Jacoco.
      • Jeremy Huff 80% coverage of original code in automated testing is what is important to me.Ā  Not unit vs integration.
      • Tod Olson specific requirements because we're trying to be objective.Ā  Run into trouble with edge cases.Ā  More important to meet the purpose of the requirements vs rigid boundaries.
      • Marc Johnson we agreed last week to disregard the language thing.Ā  Issue of whether we accept coverage of real code.
      • Jeremy Huff agree.Ā  TC does care about test coverage.Ā  In this case we do have that coverage.
      • Owen Stephens we can see that we have written tests that coverage all major functionality of the module.Ā  No line count but clear.
      • Maccabee Levine this doesn't violate criteria.Ā  We're agreeing that criteria should be tweaked to look at only generated code.Ā  Suggest provisional acceptance based on Grails upgrade.
    • Ingolf Kuss Never used jacoco on groovy/grails modules before.
      • Marc Johnson same tooling used before, just not integrated with sonarqube before.
    • No other support for provisional acceptance pending Groovy upgrade.
    • Six votes in favor of full acceptance.Ā  Module approved.

TCR-39 UI Serials management Maccabee Levine:

  • Present Evaluation Continued
    • https://github.com/folio-org/tech-council/pull/69/files
    • Most criteria passed.Ā  Five did not.Ā  Several trivial.
      • Licensing issues are not a problem with this module in particular; upstream.Ā  So a TC process issue.
      • The only provided interface not already accepted was mod-serials-management.Ā  Now that is approved.
      • WCAG only two issues are upstream issues at Stripes framework issue.Ā  Dev team agreed to fix either in application or work with Stripes team.Ā  So not a blocker.
    • Two things left
      • Unit test coverage at 56.6%.Ā  Dev team working to improve actively.
      • Sonarqube no more security or duplication issues.Ā  Still code smells, 15 major + 2 critical a couple hours ago.
  • Technical Council Review
    • Jeremy Huff approval timeline?Ā Ā Marc Johnson need by today.
    • Jeremy Huff if we did provisional acceptance, what timeline does dev team expect?
      • Owen Stephens test can definitely be increased to 80% coverage by end of week.Ā  Critical code smells are trivial to fix (nesting too deep).Ā  Have not looked at the other code smells.
      • Ethan Freestone lots of quick wins to get test coverage up.Ā  Can get number above 80 easily.Ā  Trade-off with testing the larger, more complex components.Ā  Can work in parallel.Ā  Code smells should not be an issue, all pretty simple to fix.
      • Jeremy Huff looking at how 'major' code smells relate to 'critical'.Ā Ā Maccabee Levine demoed.
      • Owen Stephens sonarqube does give maintainability an A rating.Ā  Not sure about criteria.Ā  Expect to fix major & critical ones.Ā  Medium severity = major code smells.
      • Ethan Freestone most of the smells are simple to do.Ā  Refactors not hard to do, can get through the list quickly.
      • Marc Johnson why is the number important.Ā  Can we talk about giving a provisional grace period?
    • Maccabee Levine dev team is on board with fixing code smells and code coverage.Ā  suggest provisional acceptance with dev team addressing those items.Ā  dev team suggested two weeks.
      • Tod Olson agree.Ā  Just allow dev team to work on the things that give the most value first, vs. coverage %.
      • Jeremy Huff other failing criteria are outside the scope of this module.
      • Owen Stephens provisional acceptance is reasonable.Ā  Guidance on what tests to prioritize helpful.Ā  Two week timeframe is a good starting point.
    • Seven votes in favor of provisional acceptance.Ā  Major/critical code smells and test coverage to be fixed.
  • Ingolf Kuss andĀ Maccabee Levine will write up statements on why the modules were accepted despite failing criteria.



MEETING ENDED.
Time Permitting

Officially Supported Technologies (OST)

All

Standing agenda item to review/discuss any requested or required changes to officially supported technology lists


Time Permitting

Topic Backlog Grooming

All

Review the topics on our Topic Backlog to remove those that are no longer relevant, modify those that require change, and add topics that might be missing.


NAZoom Chat

Today

IngolfĀ KussĀ Ā toĀ Ā EveryoneĀ 11:16Ā AM
https://github.com/folio-org/tech-council/blob/TCR-40-mod-serials-management/module_evaluations/TCR-40_2024-02-29-mod-serials-management.MD

YouĀ Ā toĀ Ā EveryoneĀ 11:22Ā AM
"IfĀ TCĀ andĀ SubmitterĀ unanimouslyĀ agreeĀ onĀ moduleĀ changesĀ thatĀ wouldĀ resolveĀ anyĀ failures,Ā theĀ TCĀ mayĀ decideĀ toĀ provisionallyĀ acceptĀ theĀ moduleĀ withĀ anĀ agreed-uponĀ timelineĀ forĀ theĀ changesĀ toĀ beĀ completed.Ā WhenĀ SubmitterĀ notifiesĀ TCĀ thatĀ theĀ changesĀ areĀ complete,Ā theĀ reviewer(s)Ā mayĀ updateĀ theĀ evaluationĀ andĀ TCĀ mayĀ adjustĀ itsĀ decision."

OwenĀ StephensĀ Ā toĀ Ā EveryoneĀ 11:24Ā AM
IĀ hateĀ toĀ askĀ thisĀ question,Ā butĀ sinceĀ itā€™sĀ beenĀ anĀ issueĀ before.Ā AreĀ weĀ quorateĀ forĀ TCĀ vote?

TodĀ OlsonĀ 11:25Ā AM
IĀ countĀ sevenĀ votingĀ members.

MarcĀ JohnsonĀ 11:25Ā AM
WeĀ haveĀ 7Ā IĀ believeĀ andĀ inĀ theĀ pastĀ thatĀ wasĀ consideredĀ enoughĀ (IIRCĀ weĀ evenĀ acceptedĀ 6Ā once)

OwenĀ StephensĀ 11:25Ā AM
ThanksĀ bothĀ šŸ™‚

MarcĀ JohnsonĀ Ā toĀ Ā EveryoneĀ 11:28Ā AM
JacocoĀ isĀ whatĀ _every_Ā backendĀ moduleĀ buildĀ inĀ FOLIOĀ uses

MarcĀ JohnsonĀ Ā toĀ Ā EveryoneĀ 11:29Ā AM
WeĀ agreedĀ lastĀ weekĀ thatĀ theĀ unitĀ vs.Ā integrationĀ distinctionĀ wasĀ irrelevantĀ andĀ misunderstandingĀ ofĀ theĀ languageĀ inĀ theĀ criteria

IanĀ IbbotsonĀ Ā toĀ Ā EveryoneĀ 11:29Ā AM
JacocĀ seemsĀ notĀ toĀ beĀ honouringĀ theĀ @generatedĀ annotationĀ -Ā whichĀ shouldĀ allowĀ coverageĀ againstĀ onlyĀ originalĀ writtenĀ codeĀ -Ā asĀ soonĀ asĀ itĀ doesĀ theĀ coverageĀ shouldĀ leapĀ significantlyĀ https://github.com/jacoco/jacoco/issues/831

IngolfĀ KussĀ Ā toĀ Ā EveryoneĀ 11:31Ā AM
>Ā JacocoĀ isĀ whatĀ _every_Ā backendĀ moduleĀ buildĀ inĀ FOLIOĀ uses
ThatĀ surprisesĀ me,Ā becaueĀ forĀ mod-circulation-item,Ā e.g.,Ā IĀ tookĀ theĀ CodeĀ CoverageĀ fromĀ theĀ sonarqubeĀ page.

MarcĀ JohnsonĀ 11:31Ā AM
SonarĀ doesnā€™tĀ calculateĀ theĀ coverage,Ā itĀ justĀ interpretsĀ theĀ jacocoĀ report

IngolfĀ KussĀ 11:32Ā AM
ok,Ā IĀ wasĀ notĀ awareĀ ofĀ this.

YouĀ Ā toĀ Ā EveryoneĀ 11:33Ā AM

  • WeĀ shouldĀ alterĀ theĀ criteriaĀ toĀ requireĀ 80%Ā coverageĀ onĀ non-generatedĀ code.Ā Ā AndĀ thenĀ "IfĀ theĀ TCĀ determinesĀ thatĀ someĀ failedĀ criteriaĀ wouldĀ beĀ resolvedĀ byĀ non-controversialĀ changesĀ toĀ theĀ criteriaĀ themselvesĀ (orĀ referencedĀ requirementsĀ likeĀ theĀ OfficiallyĀ SupportedĀ Technologies),Ā TCĀ mayĀ decideĀ toĀ acceptĀ theĀ moduleĀ andĀ makeĀ theĀ agreed-uponĀ changes."



MarcĀ JohnsonĀ 11:34Ā AM
Thatā€™sĀ alreadyĀ implicitĀ becauseĀ theĀ toolsĀ inĀ ourĀ buildsĀ alreadyĀ excludeĀ generatedĀ codeĀ (whenĀ thatĀ featureĀ works)

OwenĀ StephensĀ Ā toĀ Ā EveryoneĀ 11:36Ā AM
mod-oa

OwenĀ StephensĀ Ā toĀ Ā EveryoneĀ 11:36Ā AM
NotĀ mod-agreements

YouĀ Ā toĀ Ā EveryoneĀ 11:36Ā AM
IĀ madeĀ aĀ motionĀ thatĀ weĀ provisionallyĀ acceptĀ mod-serials-management.Ā Ā TheĀ onlyĀ changeĀ requestedĀ (andĀ unanimouslyĀ agreed)Ā isĀ theĀ grailsĀ 6Ā upgrade

TodĀ OlsonĀ Ā toĀ Ā EveryoneĀ 11:47Ā AM
We'veĀ seenĀ nestingĀ tooĀ deepĀ inĀ theĀ pastĀ inĀ back-end,Ā whereĀ theĀ particularĀ limitĀ seemsĀ overlyĀ constrainedĀ inĀ context.

MarcĀ JohnsonĀ Ā toĀ Ā EveryoneĀ 11:50Ā AM
IIRCĀ inĀ theĀ past,Ā weā€™veĀ givenĀ aĀ moduleĀ aĀ wholeĀ releaseĀ cycleā€™sĀ graceĀ forĀ theseĀ kindsĀ ofĀ issue

IanĀ IbbotsonĀ Ā toĀ Ā EveryoneĀ 11:53Ā AM
HaveĀ toĀ moveĀ toĀ nextĀ callĀ -Ā thanksĀ allĀ -Ā goodĀ meeting.

MarcĀ JohnsonĀ Ā toĀ Ā EveryoneĀ 11:53Ā AM
TheĀ teamĀ haveĀ alreadyĀ beenĀ workingĀ onĀ addressingĀ theseĀ concernsĀ forĀ theĀ lastĀ fewĀ weeks

OwenĀ StephensĀ Ā toĀ Ā EveryoneĀ 11:55Ā AM
FinalĀ moduleĀ releaseĀ forĀ QĀ isĀ 19thĀ April.Ā TheseĀ issuesĀ canĀ definitelyĀ beĀ resolvedĀ beforeĀ then.Ā 2Ā weeksĀ seemsĀ likeĀ aĀ goodĀ target.Ā ButĀ guidanceĀ fromĀ TCĀ forĀ bestĀ valueĀ asĀ TodĀ hasĀ justĀ saidĀ wouldĀ beĀ veryĀ welcome

KirstinĀ Kemner-HeekĀ Ā toĀ Ā EveryoneĀ 11:58Ā AM
ThanksĀ aĀ lot!Ā ByeĀ :-)

IngolfĀ KussĀ Ā toĀ Ā EveryoneĀ 11:58Ā AM
IĀ amĀ happyĀ toĀ assistĀ inĀ writingĀ theĀ explanation.

TodĀ OlsonĀ 11:59Ā AM
MayĀ orĀ mayĀ notĀ beĀ ableĀ toĀ makeĀ it.Ā GoodĀ topic,Ā unclearĀ onĀ timeing.

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.


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

TC members to review policy guidance in Ramsons OST page and provide feedback