-
Notifications
You must be signed in to change notification settings - Fork 9
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
chore(dep-resolution): update dep-resolution RPC interface to support lockfiles #312
Conversation
Backwards compatibility summary:
|
@aryx @nmote I have these changes I want to make to the RPC interface. They aren't backwards compatible, so the check fails. As far as I can tell, though, there is no real need for backwards compatibility in these RPC types (if ATD had a module system so that we could use types from Can we ignore the backwards compatibility check here? Or should I restructure these changes to be backwards compatible? (I think the latter would probably look something like adding a new RPC call |
yes we can ignore the backward check. @mjambon is there a way to adjust the linting to give a list of toplevel type that don't need to go throught the backward compatibility check? (basically the RPC stuff and the semgrep-core output). |
dc8a4a6
to
c78ebe8
Compare
@aryx I'm finally ready to merge this and the accompanying There's no reason this needs to be in this week's release, so we should probably wait until after. |
Yes I can override the backward compatibility check because I'm admin on this repo I think. @mjambon too. |
@mjambon we need to be able to whitelist a few entry types to not be concerned by the backward compatibility check (e.g., the types for semgrep-core or here the types for Nat's RPC, or we need a module system so we can use |
The whitelist seems the easiest option. |
Thanks @aryx ! Agree that a whitelist seems nice; it would be good to be able to make changes to the RPC interfaces more easily. |
yes, and merging the semgrep-interface inside the semgrep-pro repo would accelerate things even more. |
Updates the RPC interface used to resolve dependencies in OCaml to support
lockfiles as well as manifests. This will allow us to begin porting lockfile
parsers to Ocaml as we move forward.
These changes also make it possible to report errors that do not cause dependency resolution to fail entirely.
These changes are not backwards compatible. However, they only affect types
that are used within the CLI, from the Python code to the OCaml code, so as long
as we are careful with releasing the changes to the CLI, it should be safe.
make setup && make
to update the generated code after editing a.atd
file (TODO: have a CI check)For example, the Semgrep backend need to still be able to consume data generated
by Semgrep 1.17.0.
See https://atd.readthedocs.io/en/latest/atdgen-tutorial.html#smooth-protocol-upgrades
This must be merged in sync with https://github.com/semgrep/semgrep-proprietary/pull/2571 since it has breaking changes.