Comments (4)
Another important point is versioning. Is there any policy here? E.g. LLVM breaks downstream always :) However, dot releases are assumed to be API and ABI compatible, they are for regression fixes only.
from p4c.
We tried to inform and ping downstream users about breaking changes. But the engagement was simply too low and keeping changes back because of an unknown user base was not ultimately not practical. It led to a lot of stagnation.
I do like the Boost approach where they maintain a changelog and tag breaking changes. This way you can quickly identify which changes could cause problems.
We can do this with a label for now. This way we can also retroactively tag breaking changes. We can also introduce an issue template which suggests "Instructions For Breaking Changes" as a header. This way we do not forget to document these changes... :)
Another important point is versioning. Is there any policy here?
We do not have a real version policy yet, we currently only have automated monthly releases and a version pegged to the current version of the P4 specification.
from p4c.
We tried to inform and ping downstream users about breaking changes. But the engagement was simply too low and keeping changes back because of an unknown user base was not ultimately not practical. It led to a lot of stagnation.
Sure, my whole point was to allow for breaking changes, but acknowledge them and make it easier (if possible) to migrate.
We can do this with a label for now. This way we can also retroactively tag breaking changes.
I like that. A label on the PR + description in the PR itself sounds good enough to me. Ideally we would include info in the changelog for each release so people who use releases would see them.
Another important point is versioning. Is there any policy here?
We do not have a real version policy yet, we currently only have automated monthly releases and a version pegged to the current version of the P4 specification.
Personally I have no strong feelings about versioning... we don't use the version when updating our downstream anyway.
from p4c.
I like that. A label on the PR + description in the PR itself sounds good enough to me. Ideally we would include info in the changelog for each release so people who use releases would see them.
I created a PR for this: #4692
from p4c.
Related Issues (20)
- BDWGC and Z3 interact badly
- Unify debug / user-side node stringification HOT 1
- Build errors with gcc 14 HOT 9
- Clean up P4C namespaces
- Compiler does not reject assignment of `int` to header / runtime use of `int`
- Invalid include in p4fmt.cpp HOT 5
- To Add BMv2 PNA backend in P4C. HOT 3
- Do not recalculate refmap inside inliner so often HOT 16
- Crash when `const bit` type initialized with an `enum` value is used in an expression
- custom extern implementation HOT 1
- eBPF: don't create 2 BPF maps for each table - don't create separate default action table
- `default` expression is accepted in select case expressions with multiple components HOT 14
- `IR::Argument` should store information about the direction of the associated parameter.
- How are the pre-compiled p4c packages for Ubuntu and Debian updated? HOT 1
- for loop incorrectly transformed by p4c HOT 2
- Question on order of files listed by doxygen output HOT 7
- Consider merging two different doc files on p4c IR into one HOT 3
- Broken link to Migration guide in doxygen-generated docs HOT 2
- `Compiler Bug: alias.h:246: Null result` when passing don't care (`_`) argument to action `out` parameter HOT 2
- ordered_map<cstring, ...> fiasko HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from p4c.