Skip to content

Add a script which constructs a fake single package for speeding up dev cycles - #6523

Merged
moritzkiefer-da merged 6 commits into
canton-network:mainfrom
obsidiansystems:fake-mono-package-for-ide
Jul 27, 2026
Merged

Add a script which constructs a fake single package for speeding up dev cycles#6523
moritzkiefer-da merged 6 commits into
canton-network:mainfrom
obsidiansystems:fake-mono-package-for-ide

Conversation

@cgibbard

@cgibbard cgibbard commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

This is something I set up locally to help other Obsidian people work on their changes to Splice a bit more quickly, and figured that it might also be useful to other Splice developers, so I'm making this PR.

The idea is to fashion a directory of symbolic links to the actual source files to serve as a single fake package that can be loaded by the LSP, making development cycles much shorter, as you no longer have to wait for sbt to build the DARs that your tests depend on, the LSP can often react to changes more or less instantaneously. (Of course, if your test itself is slow to run, you still need to wait for that... but an extra 12-20 seconds or something is a nice win regardless.)

NB: I also ran into an issue with the current Daml Language Server's timeout mechanism when I did this. PR of my fix to the LSP client. The initial load of the large fake package this creates (happens once on editor startup) may take just a little too long for the LSP client's fixed timeout, causing the whole scheme not to work out very well. The LSP kills damlc and then dies itself. Adding in a mechanism to reset the timer whenever damlc produces output proving that it's still working fixed that, but I also added a way to configure the timeouts.

Pull Request Checklist

Cluster Testing

  • If a cluster test is required, comment /cluster_test on this PR to request it, and ping someone with access to the DA-internal system to approve it.
  • If an upgrade test is required, comment /upgrade_test on this PR to request it, and ping someone with access to the DA-internal system to approve it.
  • If a hard-migration test is required (from the latest release), comment /hdm_test on this PR to request it, and ping someone with access to the DA-internal system to approve it.
  • If a logical synchronizer upgrade test is required (from canton-3.5), comment /lsu_test on this PR to request it, and ping someone with access to the DA-internal system to approve it.

PR Guidelines

  • Include any change that might be observable by our partners or affect their deployment in the release notes.
  • Specify fixed issues with Fixes #n, and mention issues worked on using #n
  • Include a screenshot for frontend-related PRs - see README or use your favorite screenshot tool

Merge Guidelines

  • Make the git commit message look sensible when squash-merging on GitHub (most likely: just copy your PR description).

@@ -0,0 +1,15 @@
# What is this?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we move this under daml/daml-ide-mono? feels a bit too niche for a top-level directory

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@moritzkiefer-da moritzkiefer-da left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thx

@moritzkiefer-da

Copy link
Copy Markdown
Contributor

you are missing the dco signoff

cgibbard added 2 commits July 24, 2026 10:17
…evelopment cycles by allowing the LSP to work cross-package when working on code.

Signed-off-by: Cale Gibbard <cale.gibbard@obsidian.systems>
Signed-off-by: Cale Gibbard <cale.gibbard@obsidian.systems>
@moritzkiefer-da moritzkiefer-da added the static Used to label PRs for which static tests suffice label Jul 27, 2026
@moritzkiefer-da

Copy link
Copy Markdown
Contributor
[error] (docs) generating daml/daml-ide-mono
[error] find: ‘daml’: No such file or directory

that looks like a legitimate failure, looks like the docs build infrastructure needs some adjustments to not run in that directory.

Signed-off-by: Cale Gibbard <cale.gibbard@obsidian.systems>
@cgibbard
cgibbard force-pushed the fake-mono-package-for-ide branch from 9f81041 to 6a58260 Compare July 27, 2026 07:39
Signed-off-by: Cale Gibbard <cale.gibbard@obsidian.systems>
@moritzkiefer-da

Copy link
Copy Markdown
Contributor

missing file header headerCreate should add that

Signed-off-by: Cale Gibbard <cale.gibbard@obsidian.systems>
@moritzkiefer-da
moritzkiefer-da merged commit b5936f2 into canton-network:main Jul 27, 2026
40 checks passed
jonored pushed a commit to obsidiansystems/splice that referenced this pull request Aug 3, 2026
…ev cycles (canton-network#6523)

---------

Signed-off-by: Cale Gibbard <cale.gibbard@obsidian.systems>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

static Used to label PRs for which static tests suffice

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants