Closed ton31337 closed 1 month ago
Hi @ton31337 - thank you for this work.
Many of the tests on Python 3.7+ are now failing, and it needs investigating. I also provided two feedbacks on the code.
If we are going to provide a version, we can also not keep the 5.0.0 version as a default, as it is not right. This code is not 5.0.0 yet.
So we probably need to change 5.0.0 to something like main-{tag} or something which can be supported.
I would also say ideally documented but I never did myself so I think it would be a bit harsh to ask you to do it :-)
I replaced using version
, which is technically OK with a normal release (installed from the package managers, etc.).
Using the version.py file is right; modifying its content for the main branch is what is required as it is already modified on release, with the exact release version.
It could be main-COMMIT-YYMMDD, which could have COMMIT as unknown when the commit is unknown and YYMMDD as the build date if the commit is unset. Otherwise, it could be the date of the exabgp.
The version is taken out of the changelog: https://github.com/Exa-Networks/exabgp/blob/main/release#L199
Therefore the github release has it. https://github.com/Exa-Networks/exabgp/blob/main/release#L57
Probably need to update the PyPI release to the same version https://github.com/Exa-Networks/exabgp/blob/main/release#L281
So, maybe it's just fine using version
overall? It will use EXABGP_VERSION (numeric) for released packages, while branch + sha for git-based installations.
The release code needs to update how PYPI is released to match GitHub. I will deal with it. As the code could be run within a folder where the .git folder has been removed, it needs to provide a consistent output, hence my suggestion of tag and date.
I changed some bits, is this what we were talking about?
I can later look in the exabgp version string issue, but before I can merge, I will need a test for the OPEN.
Sure, will do this.
Seems that the version to test is non-deterministic. Will think on how to overcome this for CI/QA.
I am fixing other things so please wait for my patch:
def json(self):
return '{ "software-version": "%s" }' % self.software_version
is what you need to fix as {} in a fstring does not work well.
Do you want to implement https://www.rfc-editor.org/rfc/rfc9072.html ?
Do you want to implement https://www.rfc-editor.org/rfc/rfc9072.html ?
Sure, will check later, now traveling a bit.
The work on the software version is now completed. Thank you.
https://datatracker.ietf.org/doc/html/draft-abraitis-bgp-version-capability
This is already implemented by FRR, GoBGP, freertr, Wireshark, some more.
E.g.: