Skip to content
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

Backport Sonatype publishing and datatypes module for v0.3.x #407

Merged
merged 4 commits into from
Jan 8, 2020
Merged

Backport Sonatype publishing and datatypes module for v0.3.x #407

merged 4 commits into from
Jan 8, 2020

Conversation

ches
Copy link
Member

@ches ches commented Jan 4, 2020

Backports #394, #406, and #391

@feast-ci-bot
Copy link
Collaborator

Hi @ches. Thanks for your PR.

I'm waiting for a gojek member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@woop
Copy link
Member

woop commented Jan 4, 2020

/ok-to-test

@woop
Copy link
Member

woop commented Jan 5, 2020

@ches these flaky tests are driving me crazy. Meeting with the team this week to see if we can find the root cause.

@davidheryanto
Copy link
Collaborator

I think this pull request makes the javadoc-plugin runs on every build hence errors in our Javadoc will cause Maven build and CI to fail.

I think the current failure is due to these lines:

https://github.com/ches/feast/blob/36ea2394454f5dede1087c31ec640cea38675ed6/core/src/main/java/feast/core/service/SpecService.java#L144
We should encode <, > characters in Javadoc as &lt; and &gt; respectively

https://github.com/ches/feast/blob/36ea2394454f5dede1087c31ec640cea38675ed6/core/src/main/java/feast/core/service/SpecService.java#L85
@param GetFeatureSetRequest should be @param request

I found that by looking at full log output
Screenshot from 2020-01-05 16-14-10

Screenshot from 2020-01-05 16-15-24

@woop
Copy link
Member

woop commented Jan 5, 2020

@davidheryanto how do we bubble up these problems through the logs without having to click on the full build log? Is the exit code being ignored at the build stage?

@ches
Copy link
Member Author

ches commented Jan 5, 2020

Thanks @davidheryanto for digging out the cause.

I think this pull request makes the javadoc-plugin runs on every build hence errors in our Javadoc will cause Maven build and CI to fail.

Indeed #394 added the Javadoc plugin bound to the jar goal, so when end-to-end tests run mvn package that is triggering. That PR also fixed the doc formatting issues but some of the docs changed completely with functional changes on master, so I excluded them from the cherry-pick.

An end-to-end test phase is a frustrating time to fail on malformatted Javadoc… (and generating them is a bit of a waste of time outside of release preparation). Perhaps we can do something like:

  1. For tests, run mvn package with -Dmaven.javadoc.skip
  2. Worry about Javadoc cleanup at release preparation time, automated in a release build

Or if you'd like for contributors to maintain error-free Javadoc proactively:

  1. Run some type of Coding Standards check early in the build steps, including invoking a goal from the Javadoc plugin
  2. For tests, run mvn package with -Dmaven.javadoc.skip

Javadoc skip could be enabled by default in the root build, and disabled in a release profile.

(Aside: I've noticed Spotless formatting check isn't happening currently, because it defaults to verify phase and CI doesn't go that far—been meaning to raise this elsewhere, it could fall under such a fail-fast standards check).

Let's take that discussion to a separate issue, I'll fix the straggler HTML encoding issues here momentarily to get CI green for this one.

* Use Nexus staging pluging for deployment

* Fix Javadoc error

* Hard coded parent version as variable substitution is not supported
@ches
Copy link
Member Author

ches commented Jan 5, 2020

/retest

@ches
Copy link
Member Author

ches commented Jan 6, 2020

Investigating the failure will take me some time—I don't want to shirk that responsibility, but before I spend it can anyone quickly recognize it as something that has been fixed on master that I should maybe pull in? Because it seems unlikely to me that it's a regression introduced by this branch, GitHub doesn't seem to show that status checks passed on the latest commit on v0.3-branch.

To save you a click, it's a single failure in the bq-batch-retrieval.py suite, the test_get_batch_features_with_file case:

>   assert output["entity_id"].to_list() == [int(i) for i in output["file_feature_set_v1_feature_value"].to_list()]
E   TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

bq-batch-retrieval.py:90: TypeError

The print statement of the dataframe in question shows:

  file_feature_set_v1_feature_value  
0                              None  
1                              None  
2                              None  
3                              None  
4                              None  

@davidheryanto
Copy link
Collaborator

I think it is due to missing wait after running Feast apply.
I hope this will fix that.
#412

@ches ches mentioned this pull request Jan 7, 2020
@davidheryanto
Copy link
Collaborator

/retest

@ches
Copy link
Member Author

ches commented Jan 8, 2020

I'll bring #406 into this PR as we discussed there, but I would really like to get #391 closed first.

@woop
Copy link
Member

woop commented Jan 8, 2020

Thanks @davidheryanto for digging out the cause.

I think this pull request makes the javadoc-plugin runs on every build hence errors in our Javadoc will cause Maven build and CI to fail.

Indeed #394 added the Javadoc plugin bound to the jar goal, so when end-to-end tests run mvn package that is triggering. That PR also fixed the doc formatting issues but some of the docs changed completely with functional changes on master, so I excluded them from the cherry-pick.

An end-to-end test phase is a frustrating time to fail on malformatted Javadoc… (and generating them is a bit of a waste of time outside of release preparation). Perhaps we can do something like:

  1. For tests, run mvn package with -Dmaven.javadoc.skip
  2. Worry about Javadoc cleanup at release preparation time, automated in a release build

Or if you'd like for contributors to maintain error-free Javadoc proactively:

  1. Run some type of Coding Standards check early in the build steps, including invoking a goal from the Javadoc plugin
  2. For tests, run mvn package with -Dmaven.javadoc.skip

Javadoc skip could be enabled by default in the root build, and disabled in a release profile.

(Aside: I've noticed Spotless formatting check isn't happening currently, because it defaults to verify phase and CI doesn't go that far—been meaning to raise this elsewhere, it could fall under such a fail-fast standards check).

Let's take that discussion to a separate issue, I'll fix the straggler HTML encoding issues here momentarily to get CI green for this one.

I prefer the latter option so that we proactively maintain error-free docs.

Are we happy to move this to an issue?

@woop
Copy link
Member

woop commented Jan 8, 2020

/lgtm
/approve

@feast-ci-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ches, woop

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ches
Copy link
Member Author

ches commented Jan 8, 2020

Are we happy to move this to an issue?

Sorry I didn't update my comment, but I created one already at #408.

I will bring the changes from #406 into this branch as part of the backport, just wanting to get #391 through first. We can mark this PR on hold in the meantime.

@ches ches changed the title Backport Sonatype publishing and datatypes module for v0.3.x [on hold] Backport Sonatype publishing and datatypes module for v0.3.x Jan 8, 2020
davidheryanto and others added 2 commits January 8, 2020 15:51
* Use back revision variable in pom.xml
So user or CI system can easily override revision from external sources such as Git tag name

* Add flatten maven plugin
This plugin is useful during deployment so the final pom is resolved without parent dependency, i.e. we do not necessarily need to upload parent library

* Increase versions for maven source,javadoc,spotless plugins
So it has newer features and more fixes

* Add gpg-plugin needed to sign releases

* Use oss configure for flatten plugin, add developers info in pom.xml (required for releasing library

* Add publish-java-sdk script

* Add more logs to publish-java-sdk.sh

* Add ProwJob publish-java-sdk

* Use GPG_KEY_IMPORT_DIR variable

* Update revision in pom.xml to 0.4.2-SNAPSHOT
Rather than the Maven protobuf plugin running on the same symlinked
definitions in several Java modules, localize this process into one
module that the others depend on.

This provides a single module that can be depended on by third-party
extensions with the bare minimum of dependencies.

Also removes proto files that are no longer used.
@ches ches changed the title [on hold] Backport Sonatype publishing and datatypes module for v0.3.x Backport Sonatype publishing and datatypes module for v0.3.x Jan 8, 2020
@@ -69,4 +69,4 @@ gpg --import --batch --yes $GPG_KEY_IMPORT_DIR/private-key
echo "============================================================"
echo "Deploying Java SDK with revision: $REVISION"
echo "============================================================"
mvn --projects sdk/java -Drevision=$REVISION --batch-mode clean deploy
mvn --projects datatypes/java,sdk/java -Drevision=$REVISION --batch-mode clean deploy
Copy link
Member Author

@ches ches Jan 8, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidheryanto I went with the bare minimum of augmenting the script here, since it makes sense that these are always published together by the same job, the conditions for when to run are the same, etc. Do you think anything more than this is needed, docs or otherwise?

We will need to forward-port this change to master, I forgot it in #391 since the release process came after I started.

@woop
Copy link
Member

woop commented Jan 8, 2020

/lgtm

@feast-ci-bot feast-ci-bot merged commit 801408a into feast-dev:v0.3-branch Jan 8, 2020
@woop
Copy link
Member

woop commented Jan 8, 2020

Are we happy to move this to an issue?

Sorry I didn't update my comment, but I created one already at #408.

I will bring the changes from #406 into this branch as part of the backport, just wanting to get #391 through first. We can mark this PR on hold in the meantime.

Oh damn, I didn't see there were new comments here. I already did an /lgtm so the merge went ahead.

Can we use a separate PR for that?

@ches
Copy link
Member Author

ches commented Jan 8, 2020

Oh damn, I didn't see there were new comments here. I already did an /lgtm so the merge went ahead.

Can we use a separate PR for that?

I already cherry-picked in the squash of #406 here so we're good with that. The only open part was my question to David just above from the last commit I tacked on. If we need any change for that I'll open a new PR.

@ches ches deleted the sonatype-and-datatypes-backport branch January 8, 2020 09:43
@woop
Copy link
Member

woop commented Jan 8, 2020

Oh damn, I didn't see there were new comments here. I already did an /lgtm so the merge went ahead.
Can we use a separate PR for that?

I already cherry-picked in the squash of #406 here so we're good with that. The only open part was my question to David just above from the last commit I tacked on. If we need any change for that I'll open a new PR.

Ok, in that case it should be fine I think!

feast-ci-bot pushed a commit that referenced this pull request Jan 9, 2020
This forward-ports a straggling commit from #407: it was missed when
initially creating the datatypes module because Sonatype publishing
setup was added concurrently.
khorshuheng pushed a commit to khorshuheng/feast that referenced this pull request Feb 13, 2020
This forward-ports a straggling commit from feast-dev#407: it was missed when
initially creating the datatypes module because Sonatype publishing
setup was added concurrently.
davidheryanto pushed a commit that referenced this pull request Feb 13, 2020
* Update Changelog (#423)

* Initial commit of changelog up to 0.4.3

* Remove unreleased changes on master

* Add missing changelog manually

Co-authored-by: Khor Shu Heng <[email protected]>

* Introduce datatypes/java module for proto generation (#391)

Rather than the Maven protobuf plugin running on the same symlinked
definitions in several Java modules, localize this process into one
module that the others depend on.

This provides a single module that can be depended on by third-party
extensions with the bare minimum of dependencies.

Also removes proto files that are no longer used.

* Update basic Feast example to Feast 0.4 (#424)

* Add documentation for bigquery batch retrieval (#428)

* Add documentation for bigquery batch retrieval

* Fix formatting for multiline comments

* Bump hibernate-validator from 6.0.13.Final to 6.1.0.Final in /ingestion (#421)

Bumps [hibernate-validator](https://github.com/hibernate/hibernate-validator) from 6.0.13.Final to 6.1.0.Final.
- [Release notes](https://github.com/hibernate/hibernate-validator/releases)
- [Changelog](https://github.com/hibernate/hibernate-validator/blob/master/changelog.txt)
- [Commits](hibernate/hibernate-validator@6.0.13.Final...6.1.0.Final)

Signed-off-by: dependabot[bot] <[email protected]>

* Publish datatypes/java along with sdk/java (#426)

This forward-ports a straggling commit from #407: it was missed when
initially creating the datatypes module because Sonatype publishing
setup was added concurrently.

* Remove "resource" concept and the need to specify a kind in feature sets (#432)

* Update GKE installation and chart values to work with 0.4.3 (#434)

* Fix logging (#430)

Allow log level to be set via environmental variable.
Add ability to set appender type in serving.
Remove logback-classic from ingestion as it is a library so should not bring its own impl.
Upgrade log4j to 2.12.1 to support objectMessageAsJsonObject.
Fix logger config targeting feast package in serving an add same concept for core.

* Bump chart version

* Update Changelog (#447)

* Update Changelog

* Remove closed issues

Co-authored-by: Willem Pienaar <[email protected]>
Co-authored-by: Ches Martin <[email protected]>
Co-authored-by: Chen Zhiling <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lionel Vital <[email protected]>
Co-authored-by: Iain Rauch <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants