-
Notifications
You must be signed in to change notification settings - Fork 170
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
.id files in Filecoin Spec #998
Comments
It is not useful to the engineering teams. |
What about people outside the engineering teams ? new implementers, general users that want to understand how filecoin works ? What about the go files generated from them that live (mostly in the spec repo), should we instead embed go files from the implementation repo ? |
As the author of As it turned out, neither of these key features ended up being used at any significant scale. Since many mainstream languages, notably Golang itself, do not provide sum types, the decision as I understand it was to simply avoid using them when possible (and simulate them with explicitly tagged structs instead, when absolutely necessary). This in turn made the serialization/hashing task more straightforward, and reduced the additional benefit of the more flexible code generation approach proposed in the So, in summary, I would distinguish between a few separate questions.
|
For data structures a natural choice would be IPLD Schemas. They spec once had them, but they got removed at one point (some people still mourning). |
We’ve actually found it quite useful to have a clear distinction between logic/compute and the layout of data structures. Since these are serialized and sent over networks there are implications that always go beyond how we are using them during the initial implementation. Using IPLD Schemas has been really helpful here, we’ve been able to have clear conversations about data structure layout in a language-agnostic way and in a DSL we all quickly have come to understand. IPLD Schemas also have the added benefit of not having language features that might allow you to paper over serialization issues and data model limitations which are all constraints that are in place for a reason and should be considered in the design of these layouts. I don’t have a strong opinion on |
I'll mention a couple of quick things from my perspective while working on IPLD Schemas (... Mikeal already beat me to half of them!):
tl;dr If you'd love to use IPLD Schemas in your specs, we'd love to support you. |
Just to provide a quick clarification from the specs project side on the following:
The goal is that it should be able to eventually do (as per the initial vision for the site). However, for the time being and in order to avoid extra work that does not seem to be necessary at this specific point in time, we have decided to hibernate this goal. None of the updates done on the website right now is prohibitive to switching back to compilable code and the decision is deferred for later. That said, any decision taken on .id or not .id (and the tradeoffs it carries with it) should be sustainable in the longer term. |
TL:DR is that there is consensus to move away from .id, as far as I can gather. Some more thoughts:
I think that's great and we should move towards that direction in the future given the expertise and tools exist. But it does not fall within the short-term targets of the specs project to FIL launch.
Absolutely.
Agreed. As mentioned above, this is the long-term vision, but not something we should target in the short term.
Agreed. -- Thanks everyone for the feedback. Closing this issue. Discussion on "code in spec" continues here: #1065 |
As we are updating the Filecoin Specs site, we have been finding several outdated code chunks that mostly come from
*.id
interface files. We would like to understand how to best make use of this interface language, if it is useful to the engineering teams and the community at large, or if we should move to some other way of including and pointing to up-to-date code as we move forward.Ultimately, if the filecoin teams want to make use of it going forward, we need to understand why it has not been kept up-to-date, as well as figure out convenient ways to keep it so.
The text was updated successfully, but these errors were encountered: