Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature: clear terminal in watch mode by default #5636

Merged

Conversation

rgrinberg
Copy link
Member

Fix #5216

@rgrinberg rgrinberg added this to the 3.2.0 milestone Apr 28, 2022
@rgrinberg rgrinberg force-pushed the ps/rr/feature__clear_terminal_in_watch_mode_by_default branch 2 times, most recently from cec5a16 to cd11b02 Compare April 28, 2022 15:08
@snowleopard
Copy link
Collaborator

The new default fixes one issue (possibility of confusing results of different builds) but introduces a new one (nukes the history in some terminals). It's hard for me to judge the relative severity of these issues.

@rgrinberg rgrinberg force-pushed the ps/rr/feature__clear_terminal_in_watch_mode_by_default branch from cd11b02 to bf0a85b Compare April 30, 2022 01:29
@rgrinberg
Copy link
Member Author

@snowleopard looks like it's possible after all. please give this PR a try.

@snowleopard
Copy link
Collaborator

@snowleopard looks like it's possible after all. please give this PR a try.

Nice! I'll be able to check around Monday. It seems worth merging the fix separately from this PR though?

@rgrinberg
Copy link
Member Author

It seems worth merging the fix separately from this PR though?

What about just splitting it into two different commits? Save myself merge conflict resolution and hopefully it should be easy to review anyway.

@rgrinberg rgrinberg force-pushed the ps/rr/feature__clear_terminal_in_watch_mode_by_default branch from bf0a85b to 6edda81 Compare April 30, 2022 15:49
@snowleopard
Copy link
Collaborator

snowleopard commented Apr 30, 2022

What about just splitting it into two different commits? Save myself merge conflict resolution and hopefully it should be easy to review anyway.

I'm happy to accept and merge the fix immediately. However, I believe switching the default requires a broader discussion, say on the Dune dev meeting. It's great if the history is no longer nuked in my terminal but let's give other devs a chance to comment on this/try the new version on the main branch.

@rgrinberg
Copy link
Member Author

However, I believe switching the default requires a broader discussion, say on the Dune dev meeting. It's great if the history is no longer nuked in my terminal but let's give other devs a chance to comment on this/try the new version on the main branch

Sure, but do note that we already discussed this issue with the team in February. I wouldn't start this PR in the first place if I thought there would be some controversy about this. But let's do another quick round on Wednesday to give everyone a final chance to appeal.

@rgrinberg rgrinberg added the requires-team-discussion This topic requires a team discussion label Apr 30, 2022
@snowleopard
Copy link
Collaborator

Sure, but do note that we already discussed this issue with the team in February.

Yes, and if I remember correctly, we decided against changing the default (because of losing the history in some cases). With your new fix, I think we can discuss it again.

@snowleopard
Copy link
Collaborator

snowleopard commented May 3, 2022

Just to confirm that with Rudi's fix, my terminal no longer loses history when using --terminal-persistence clear-on-rebuild.

Regarding the team discussion: I'm not going to make it to the Dune meeting this week but let me record my opinion here. Now that the behaviour on the only terminal for which we knew we had a problem is fixed, I no longer have any firm ground to oppose the change of the default. If Dune devs are happy with the new default, let's go for it!

Fix #5216

Signed-off-by: Rudi Grinberg <[email protected]>

ps-id: 00DAEB6C-D14B-43AC-A393-AF77ACDD9EC4
@rgrinberg rgrinberg force-pushed the ps/rr/feature__clear_terminal_in_watch_mode_by_default branch from 6edda81 to cd1672d Compare May 4, 2022 14:37
@rgrinberg
Copy link
Member Author

@bobot agreed this was a good idea so this is good to go.

@rgrinberg rgrinberg merged commit 86c09e1 into main May 4, 2022
@rgrinberg rgrinberg removed the requires-team-discussion This topic requires a team discussion label May 4, 2022
rgrinberg added a commit to rgrinberg/opam-repository that referenced this pull request May 17, 2022
…ne-site, dune-rpc, dune-rpc-lwt, dune-private-libs, dune-glob, dune-configurator, dune-build-info, dune-action-plugin and chrome-trace (3.2.0)

CHANGES:

- Fixed ``dune describe workspace --with-deps`` so that it correctly
  handles Reason files, as well as files any other dialect. (ocaml/dune#5701, @esope)

- Disable alerts when compiling code in vendored directories (ocaml/dune#5683,
  @NathanReb)

- Fixed ``dune describe --with-deps``, that crashed when some
  preprocessing was required in a dune file using ``per_module``.
  (ocaml/dune#5682, fixes ocaml/dune#5680, @esope)

- Add `$ dune describe pp` to print the preprocssed ast of sources. (ocaml/dune#5615,
  fixes ocaml/dune#4470, @cannorin)

- Report dune file evaluation errors concurrently. In the same way we report
  build errors. (ocaml/dune#5655, @rgrinberg)

- Watch mode now default to clearing the terminal on rebuild (ocaml/dune#5636, fixes,
  ocaml/dune#5216, @rgrinberg)

- The output of jobs that finished but were cancelled is now omitted. (ocaml/dune#5631,
  fixes ocaml/dune#5482, @rgrinberg)

- Allows to configure all the default destination directories with `./configure`
  (adds `bin`, `sbin`, `data`, `libexec`). Use `OPAM_SWITCH_PREFIX` instead of
  calling the `opam` binaries in `dune install`. Fix handling of multiple
  `libdir` in `./configure` for handling `/usr/lib/ocaml/` and
  `/usr/local/lib/ocaml`. In `dune install` forbid relative directories in
  `libdir`, `docdir` and others specific directory setting because their handling
  was inconsistent (ocaml/dune#5516, fixes ocaml/dune#3978 and ocaml/dune#5455, @bobot)

- `--terminal-persistence=clear-on-rebuild` will no longer destroy scrollback
  on some terminals (ocaml/dune#5646, @rgrinberg)

- Add a fmt command as a shortcut of `dune build @fmt --auto-promote` (ocaml/dune#5574,
  @tmattio)

- Watch mode now tracks copied external files, external directories for
  dependencies, dune files in OCaml syntax, files used by `include` stanzas,
  dune-project, opam files, libraries builtin with compiler, and foreign
  sources (ocaml/dune#5627, ocaml/dune#5645, ocaml/dune#5652, ocaml/dune#5656, ocaml/dune#5672, ocaml/dune#5691, ocaml/dune#5722, fixes ocaml/dune#5331,
  @rgrinberg)

- Improve metrics for cram tests. Include test names in the event and add a
  category for cram tests (ocaml/dune#5626, @rgrinberg)

- Allow specifying multiple licenses in project file (ocaml/dune#5579, fixes ocaml/dune#5574,
  @liyishuai)

- Match `glob_files` only against files in external directories (ocaml/dune#5614, fixes
  ocaml/dune#5540, @rgrinberg)

- Add pid's to chrome trace output (ocaml/dune#5617, @rgrinberg)

- Fix race when creating local cache directory (ocaml/dune#5613, fixes ocaml/dune#5461, @rgrinberg)

- Add `not` to boolean expressions (ocaml/dune#5610, fix ocaml/dune#5503, @rgrinberg)

- Fix relative dependencies outside the workspace (ocaml/dune#4035, fixes ocaml/dune#5572, @bobot)

- Allow to specify `--prefix` via the environment variable
  `DUNE_INSTALL_PREFIX` (ocaml/dune#5589, @vapourismo)

- Dune-site.plugin: add support for `archive(native|byte, plugin)` used in the
  wild before findlib documented `plugin(native|byte)` in 2015 (ocaml/dune#5518, @bobot)

- Fix a bug where Dune would not correctly interpret `META` files in alternative
  layout (ie when the META file is named `META.$pkg`). The `Llvm` bindings were
  affected by this issue. (ocaml/dune#5619, fixes ocaml/dune#5616, @nojb)

- Support `(binaries)` in `(env)` in dune-workspace files (ocaml/dune#5560, fix ocaml/dune#5555,
  @emillon)

- (mdx) stanza: add support for (locks). (ocaml/dune#5628, fixes ocaml/dune#5489, @emillon)

- (mdx) stanza: support including files in different directories using relative
  paths, and provide better error messages when paths are invalid (ocaml/dune#5703, ocaml/dune#5704,
  fixes ocaml/dune#5596, @emillon)

- Fix ctypes rules for external lib names which aren't valid ocaml names
  (ocaml/dune#5667, fixes ocaml/dune#5511, @Khady)
@Alizter Alizter deleted the ps/rr/feature__clear_terminal_in_watch_mode_by_default branch November 10, 2022 23:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Make --terminal-persistence clear-on-rebuild the default
2 participants