Repository navigation
Conversation
|
This is way too much to just dump in a PR without any discussion. Especially since we only discussed adding a packaging step for nix so it can be used in nix projects. Some of it is nice to have, like linting, but I don't know that we just want to adopt the current convention in eng team repos (e.g. where tool configs should go). Some of it seems like overkill in this repo (we don't need a whole docs folder for a tool with 2 commands). And I don't think we can just adopt a code of conduct or contributing guidelines without discussion in the team, especially if they contain placeholder values like Could you just add the nix packaging/derivation step in CI like you originally intended? |
Jeah, I thought we had that discussion. Look over the files and then lets clarify what you want changed and what the problem is. Why the Miri linting does not work and would need fixes, I disabled it for now... |
What agreement? you asked if you could add a flake.nix and nix packaging setup in the repo, "best practices" was not mentioned once in our conversation. When you said you also want to add some standard files, I did not expect it to be this many. And this is from the SIS repo template, not something the engineering team uses or has had any discussion on. As such I feel uncomfortable just adding this in more and more repos, essentially forcing adoption on the engineering team, without any discussion within the team. If I were to go by the status quo on the engineering team, there should be a devcontainer, not a nix dev shell, and that only in more complex repositories, which this is not.
It doesn't for me as I don't use git and it fails on line 3 of the justfile with
This is purely taste, I could just as well argue that the tools used/their config should be visible at a glance at the root of the repo, not hidden two folders deep where someone unfamiliar with this layout might miss them. Plus now there's editorconfig, envrc and gitattributes at the root, that's not very clean and arguably less relevant/more noise in a rust repo than rustfmt.toml and rust-toolchain.toml. What's the point of having them two subfolders deep to then have a command to symlink them to the root? That just feels like unnecessary extra steps. And in terms of best practices, having them at the root is what a majority of projects to, so principle of least surprise would put the configs at the root of the repo. Why is there even gitattributes/git-lfs stuff? Git lfs is not used in this repo, there are no large files. And there's other clutter. the whole scripts folder is superfluous, why add an additional layer of indirection instead of just having the commands in the justfile directly? They are only used in this one place (or in the case of lint-ub-rust.sh, not used at all). setup-config-files.sh is only needed because of the tools/config/ folder change, setup.sh only calls setup-config-files.sh, so neither of those has any reason for existing, except maybe "it might be needed later", which, well, then lets just add it later. I'm a big fan of adding things as they are needed, not front-loading complexity. |
|
Well, I understand your points. You also probably misunderstand that a PR is a suggestion. Either take it, suggest constructive changes or also refactor certain stuff yourself which doesnt fit "your-style" etc. In general I do BoyScoutRule #1: Leave the camp ground cleaner then it was before.
As said again: I am not imposing a Nix workflow on the engineering team and also don't see this PR as pushing any standards of silently adopting "opinionated" structure (your initial structure by the way is also opinionated, its grounded by no decisions as well). Leave it open or refuse the PR, I do not care. Maybe this discussion should influenve the BPA documentation and guide standards how the engineering team wants things to happen. I kindly remind you that there is a reason why things are sometimes as they are: e.g. why the
P.S: eventhough I worked for years with devcontainers, I would suggest at least tooling that thing over a container which just has the Nix devshell inside, all other use cases over the M$ spec with the install hooks/layers is -> garbage tooling... and introduces more hidden logic/breakage then it solves... Its another non-optimal way of building an image... For a fruitful collaboration on this repo I suggest, you point at what you would like to have removed and I try to iterate into this direction if it works. The above points are noted and I can adjust that. |
Completely disagree. Every repo must have an easy way to be able to contribute. Its not done by just dumping code into a Git repo and leave the setup to the contributor or reader... That means:
(I am here to help in good faith, but if genuinely opposed due to what ever reasons (no or unfinished standards from the eng. team etc and personal opinions) I suggest you rather close the PR and I can call it a day.) |
|
then let's leave this tabled for now. there are ongoing discussions in the eng. team, we had a meeting for a simple reproducible setup just yesterday for one of the repos, but have not decided on any approach, and I'd hate to introduce something before that discussion is settled. |
|
Ok, thats certainly welcome. Ah one point maybe to discuss:
I have a stronger opinion on this: Cause I have mostly seen this argumentation when something starts and you say: ah we do not need CI or linting, its only a small this and that... and then 3 months later everybody feels its now quite "complex" and then stuff is missing. Certain things I would definitely not introduce later, for my taste introduce
If there is an eng. practice to that and templates and guides: its a no brainer and people start to do that automatically in the future. |
Adds Nix packaging and flake export.
tools/nix.justsetuptools/configinto root only for certain LSPs needed. Otherwise no formatter files need to stay toplevel given treefmt-nix etc.[ ] Make this thing FAIR and contributable.nix-release.yamlAssisted-by: no agent. Hand plugged.