-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Cherry picks for 0.14.0 branch #2333
Conversation
Client: py When no fields are present, we don't get the special constructor that uses __setattr__ to avoid these checks. So the default constructor sets message normally and triggers the anti-mutation tripwires.
Client: go This fixes the bug reported in apache#2315 (comment).
test/ThriftTest.thrift
Outdated
@@ -411,3 +411,17 @@ struct StructB { | |||
struct OptionalSetDefaultTest { | |||
1: optional set<string> with_default = [ "test" ] | |||
} | |||
|
|||
service ConflictingNamesTest { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The ThriftTest.thrift file serves a very specific purpose: It is the base for the cross language Test Suite.
Adding unrelated tests in that file is highly discouraged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK I'll create another PR to move this part out to a different thrift file, and if needed we can cherry pick that to 0.14.0 branch as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also cherry picked into this branch (thus added into this PR).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See comment
Why do we need that as a hotfix in 0.14.0? Could you explain? |
These 2 commits fix 2 regressions in 0.14.0:
exception LookMaNoFields {} You can create an instance of
|
c3ff3ff
to
7605806
Compare
+1 then. Wish we would finds these kind of issues earlier next time. |
These are all "corner cases" that only affect a small subset of use cases, so naturally they would only surface when more and more users start to adopt the new version. We didn't have enough people testing the 0.14.0 rc during the rc period. For a process improvement, I would propose that the next time before the release, we actually do the full release for the rc/beta (e.g. have the |
Or bad testcase design. I tend to refuse to accept such explanations, because it opens the slope to banana software. Sure, shit happens (Forrest Gump) but as developers we should strive to not let it happen. We expect our stuff to work perfectly and are astonished when it does not. The key problem with tests is, that developers are used to think constructive. But to write good test cases you have to be destructive. Pick the evil guy's hat and ask yourself: What would potentially break it? How can I bring that server down? Then put that it into a test case.
Problem is, we can't. The ASF has very clear rules: Everything that gets published has to be voted and accepted as a release. We can have internal pre-releases, but are not allowed to upload it to package managers. So if I don't overlook a thing (which is certainly possible) the only way would indeed be to have two official releases.
|
lib/go/test/tests/equals_test.go
Outdated
* specific language governing permissions and limitations | ||
* under the License. | ||
* | ||
* Contains some contributions under the Thrift Software License. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Contains some contributions under the Thrift Software License.
Does it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall LGTM, not tetsed. Except the addendum at the ASF header looks strange, Its not part of the normal ASF header and I wonder why you added it? Copypasta?
yea bad copy pasta. will fix. |
2bf0893
to
c755f0b
Compare
@Jens-G what do you think about also cherry-pick #2335 into 0.14.0 branch? https://issues.apache.org/jira/browse/THRIFT-5353?focusedCommentId=17286691&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17286691 is an explanation of the issue. Also I fixed the ASF headers. |
+1 |
OK added #2335 into this PR. |
* specific language governing permissions and limitations | ||
* under the License. | ||
* | ||
* Contains some contributions under the Thrift Software License. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Contains some contributions under the Thrift Software License. ...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You forgot one :-)
Once fixed: Are you going to merge into the branch or are you expecting me to do that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤦
Removed. both here and in #2334
Client: go Also add missing copyright header for files added in apache#2307.
Client: go When a thrift file includes 2 or more other thrift files, and those included thrift files do not have explicit go namespaces defined, the current import dedup logic would wrongly use their empty namespace and skip the second one, while the real import namespace should be inferred from the filename.
ccebb9f
to
e0786a4
Compare
@Jens-G did I address all your comments? |
Cherry pick the following PRs into 0.14.0 branch: