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
config definition tool can't build without config already generated #4946
Comments
Does anyone have an actual idea of how to solve this? e.g. List of generated variables used, found with
|
Does this have priority? |
In my head it does, but I haven't been told so or anything. 🤷♂️ |
yes, poking around with that one is how I discovered this. |
Yes, I have a proposal on how this should be address: we shall split configuration_definition code base and workflow a bit. See https://github.com/rusefi/rusefi/tree/master/java_tools/configuration_definition_base which was extracted with that specific idea in mind. While I've started I've definitely abandoned since, any chance @chuckwagoncomputing you would help? Root cause: poor separation of responsibilities in java code, specifically configuration_definition should not depend on "models" it's too much coupling As of Jan 1st 2023 we had too much functionalities all piles together with quite a bunch of circular dependencies. Specifically we have TriggerWheelInfo which is used by top level generation, and TriggerWheelInfo depends on rusefi_config.txt processing of
Actually that's totally actionable as atomic PR #5051 Once we exact "trivial" txt/c/java processing into separate step, we would move corresponding code into configuration_definition_base Once we have trivial trigger generation in configuration_definition_base we would introduce new java module "trigger api generated" and have configuration_definition subproject depend on "trigger api generated" subproject/module not on "models" TL,DR: configuration_definition should not depend on Fields.java |
Before we start throwing code at the wall, can we draw the dependency graph of what outputs actually depend on which inputs? I think others aren't clear on exactly what the circular-ish dependency currently is. This would be helpful for other people who aren't inside @rusefillc's brain to be able to help. |
I am not a good human, I see a bit of discrepancy between ask for clarity above and mck1117/wideband#192 not being merged :( Also |
but that has no loop - where is the part that the generator depends on something from Fields.java? I'm trying to narrow down whether it's a false dependency or an actual dependency. Can we start with a narrower problem of something like "config generator should not build |
Unfortunately https://github.com/rusefi/rusefi/wiki/Communication |
Not great not terrible
|
Currently unable to bootstrap a build with all generated files deleted (thinking about #4302).
Repro steps:
cd java_tools
rm ../java_console/models/src/main/java/com/rusefi/config/generated/Fields.java
./gradlew :config_definition:shadowJar
Fails with error (example, many similar trimmed):
Solution: config_definition shouldn't depend on any generated rusefi files.
The text was updated successfully, but these errors were encountered: