# 2026.08.04 Weekly Meeting

**URL:** <https://discourse.slicer.org/t/2026-08-04-weekly-meeting/47761>\
**Category:** Weekly meetings\
**Created:** [July 29, 2026, 1:28pm UTC](https://discourse.slicer.org/t/2026-08-04-weekly-meeting/47761 "2026-07-29T13:28:46Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ebrahim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ebrahim/32/13403_2.png) [@ebrahim](https://discourse.slicer.org/u/ebrahim)\
**Post date:** [July 29, 2026, 1:28pm UTC](https://discourse.slicer.org/t/2026-08-04-weekly-meeting/47761/1 "2026-07-29T13:28:46Z")

</div>

Title: 2026.08.04 Weekly Meeting

Next Tuesday, we will be having our next weekly hangout at **10:00 AM ET until 11:00 AM ET.**

Anyone is welcome to join at this link: [Google Meet meeting](https://meet.google.com/ymg-ahrz-www)

* * *

> **Weekly Meeting**
>
> **Starts:** August 4, 2026, 10:00am (America/New\_York)\
> **Link:** <https://meet.google.com/ymg-ahrz-www>

**Agenda:**

Please post to this thread to put a topic on the agenda! We will try to prioritize agenda items during the meeting.

* * *

Thanks  
Sam and Ebrahim

---

<div class="post-metadata">

**Author:** ![ebrahim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ebrahim/32/13403_2.png) [@ebrahim](https://discourse.slicer.org/u/ebrahim)\
**Post date:** [July 29, 2026, 1:29pm UTC](https://discourse.slicer.org/t/2026-08-04-weekly-meeting/47761/2 "2026-07-29T13:29:48Z")

</div>

Consider discussing items we did not get to last time:

- middle click on markups: [Unintentionally moving whole markup nodes · Issue #9303 · Slicer/Slicer · GitHub](https://github.com/Slicer/Slicer/issues/9303)
- AI assistance, authorship, and responsibility: [BUG: Restore dropped Python wrapping hierarchy dependencies by pieper · Pull Request #9305 · Slicer/Slicer · GitHub](https://github.com/Slicer/Slicer/pull/9305#issuecomment-5050694165)
- dependabot grouping and upgrade frequency

---

<div class="post-metadata">

**Author:** ![Thibault\_Pelletier](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/thibault_pelletier/32/4767_2.png) [@Thibault\_Pelletier](https://discourse.slicer.org/u/Thibault_Pelletier)\
**Post date:** [July 30, 2026, 6:45pm UTC](https://discourse.slicer.org/t/2026-08-04-weekly-meeting/47761/3 "2026-07-30T18:45:21Z")

</div>

I would also like to discuss the following PR: [ENH: Merge the SlicerLayerDisplayableManager extension as a core module by Thibault-Pelletier · Pull Request #9184 · Slicer/Slicer · GitHub](https://github.com/Slicer/Slicer/pull/9184)

---

<div class="post-metadata">

**Author:** ![ebrahim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ebrahim/32/13403_2.png) [@ebrahim](https://discourse.slicer.org/u/ebrahim)\
**Post date:** [August 3, 2026, 1:31pm UTC](https://discourse.slicer.org/t/2026-08-04-weekly-meeting/47761/4 "2026-08-03T13:31:31Z")

</div>

bump: This meeting is tomorrow

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [August 3, 2026, 1:59pm UTC](https://discourse.slicer.org/t/2026-08-04-weekly-meeting/47761/5 "2026-08-03T13:59:07Z")

</div>

I have several PRs pending that I want to talk through tomorrow.

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [August 4, 2026, 1:38pm UTC](https://discourse.slicer.org/t/2026-08-04-weekly-meeting/47761/6 "2026-08-04T13:38:49Z")

</div>

I’m doublebooked at 10, so I’ll join the meeting late.

---

<div class="post-metadata">

**Author:** ![ebrahim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ebrahim/32/13403_2.png) [@ebrahim](https://discourse.slicer.org/u/ebrahim)\
**Post date:** [August 4, 2026, 3:46pm UTC](https://discourse.slicer.org/t/2026-08-04-weekly-meeting/47761/7 "2026-08-04T15:46:19Z")

</div>

Notes from meeting

## Agenda

- Thibault’s [Slicer#9184](https://github.com/Slicer/Slicer/pull/9184) getting LayerDM into core
- Steve’s several PRs
- [Middle click on markups](https://github.com/Slicer/Slicer/issues/9303)
- [AI assistance, authorship, and responsibility](https://github.com/Slicer/Slicer/pull/9305#issuecomment-5050694165)
- Mauro’s install script
- Dependabot grouping and upgrade frequency

## LayerDM to core

[Slicer#9184](https://github.com/Slicer/Slicer/pull/9184)

PR is rebased and ready. It is deliberately not cluttered with refactoring so that it is easier to review, and so that refactoring can be done in follow up work.

## Middle click on markups discussion

> <https://github.com/Slicer/Slicer/issues/9303>
>
> As presented in the forum, https://discourse.slicer.org/t/accidentally-moving-al…l-markups-in-a-pointlist/47685/9
> 
> With middle click it is possible to translate an entire markup node. This behavior might have been intentional but I consider a bug, briefly for reasosn
> 
> 1. Middle-clik drag already has an action which is to translate camera. This itself is my main objection, and makes it extremely easy to make this error. 
> 2. There is no way to recover this accident from. No global undo. This inflates affect of the mistake. 
> 3. Disable lock in markup module disables every interaction, not just this. 
> 
> AFAIK, the first two points makes this feature a bug.
> 
> As I said I personally cannot foresee any need of this (why would someone randomly move things in space and change data? Widgets give far more control to do the same things.) However, if for some reason it is needed for an application the mouse combination should be altered (add a shift or ctrl or something). Alternatively add a global application setting to disable/enable this feature (I would say it should be opt-in, ie. off by default). 
> 
> @lassoan @Sunderlandkyl

Adding undo/redo is something Andras has been working on and is really starting to come together now. This will remove a lot of the frustration from these kinds of issues.

For this issue specifically, also hotkey customization will be good. Then the debate becomes what should be the defaults.

## AI authorship

[(Start of discussion)](https://github.com/Slicer/Slicer/pull/9305#issuecomment-5050694165)

The “co-authored by” …  
on the one hand PR authors should take full responsibility for what they are writing, so we don’t want this tag. On the other hand it is useful to know which LLM was used, because they have different blind spots.

And maybe it depends on the situation. A random first time contributor with a giant AI generated PR is different from a regular maintainer who is using an LLM to help with a bug fix.

Maybe at this time it is too early to have a hard policy.

## Slicer installer script

> <https://github.com/Slicer/Slicer/pull/9294>
>
> \[Original repository\](https://github.com/mauigna06/slicer-installer/tree/main)
> …
> As discussed on the Slicer meeting, this is a PR to make the slicer-installer script available. 
> A few governance questions I could not answer myself:
> 
> \> a no-interaction mode, for people who want to use the script in automations
> 
> 1. When the target version is already installed and you haven’t set SLICER\_IF\_EXISTING env variable, what should a no-interaction run do: reinstall it (today’s no-terminal behavior) or exit 0 without touching it? This is the idempotency question — it decides whether repeated automation runs re-download ~1 GB or become no-ops.
> 2. Do you also need quiet output (no logo, no progress bar) for logs, or is suppressing prompts enough? (default: prompts only — logo and progress bars are already suppressed when output isn’t a terminal)
> 3. Linux/macOS only, or do you automate the Windows installer too?
> 
> \> an automatic dependency installation mode, for people who want to use the script to create docker images
> 
> 4. If installing dependencies fails, should the whole install fail (good for RUN steps in a Dockerfile) or warn and continue?
> 5. If the script is not root, should it attempt sudo (which may password-prompt — colliding with no-interaction mode) or refuse and print the command as it does today?
> 6. Do you run Slicer headless in the container (e.g. xvfb-run Slicer --no-main-window)? If so, should the mode optionally install headless extras like xvfb, or stay strictly at Slicer’s runtime library list?
> 
> \> the possibility of packaging an installer script into the tarball, in the linux case
> 
> 7. Who is it for: people who manually download the tarball from \[download.slicer.org\](http://download.slicer.org/) and want the wiring (launcher symlink, menu entry, deps hint) afterwards, or is the goal to get upstream Slicer packaging to bundle the script officially?
> 8. When run from an extracted tree, should it wire that tree up in place (wherever it was extracted), move it to the standard ~/.local/opt location, or ask?
> 9. Should it be the same install.sh gaining an offline/local mode (one file, could be dropped into the tarball as-is), or a separate minimal script that contains only the wiring logic?
> 10. Must it work fully offline (no checksum/version lookups at all)?
> 11. Should it also offer uninstall of that copy? (default: yes — the uninstall logic already exists in uninstall\_linux)
> 
> \> representing system dependencies in a separate file that the script references and that the docs can also reference to report system dependencies, so that they are in one place and never go out of sync
> 
> 12. Who consumes the file besides this repo’s README — e.g. the official Slicer docs or a Discourse post wanting a stable URL? Decides whether the file format/location becomes a public contract.
> 13. Plain text lists per package manager (deps/apt.txt, deps/dnf.txt, deps/pacman.txt) or something structured (JSON/YAML) for machine consumption?
> 14. Is a repo-internal sync acceptable — the lists get embedded into install.sh by a generator, with a CI check that fails on drift — or do you want the script to fetch the file at runtime so even old script copies stay current? Runtime fetching adds a network failure mode to curl | sh; embedding keeps the script self-contained.
> 15. Should the file format express conditionals (e.g. libasound2t64 vs libasound2 depending on Ubuntu release), or does that logic stay in the script with the file listing the canonical names?

Language selection and revision selection now supported!

Still working on separation into outer script and inner script.  
Now it’s proposed that all three platfroms have an inner script, not just linux, since there are now “post-install” steps that are relevant to all three platoforms.

## Dependabot

> <https://github.com/Slicer/Slicer/blob/main/.github/dependabot.yml>

[Grouping dependencies](https://docs.github.com/en/code-security/tutorials/secure-your-dependencies/optimizing-pr-creation-version-updates#grouping-related-dependencies-together)

Yes, let’s switch to monthly. And group things.
