We have recently renamed Gobblin packages from gobblin.* to org.apache.gobblin.*. This is a backward incompatible change and has an impact on all types of Gobblin deployments. So, to make this migration seamless, we have taken the following approach: 

  1. Created a version-0 branch of the codebase. This branch contains last cut of code with gobblin.* package names and retains major version of 0.*. Thus all artifacts published with major version 0.* contains old code. 
  2. The master branch of all Gobblin has been bumped up to major version 1.*. This contains code with org.apache.gobblin.* package names. Thus all artifacts published with major version 1.* contains new code. 

Incompatible Changes

The following are the incompatible changes between the two major versions (0.* and 1.*):

  1. State store: The 1.* major version can read old state and write out new state files, however, the 0.* version cannot read new state files written by 1.* major version. 
  2. Config values with classnames: The 1.* major version does not honor gobblin.* classnames if present in config values, so those should be changed. Eg. source.class=gobblin.example.Wikipedia should be changed to source.class=org.apache.gobblin.example.Wikipedia. Generally 1.* major version should already have this changed, but if you encounter ClassNotFoundException after deployment, this could be a primary suspect. 

 Implications on the deployment 

  1. If you are deploying major version 1.* for the first time, please backup the state store. This will come in handy if you have to roll back to 0.* major version. (It is anyways a good practice to backup state store before any major deployment) 
  2. If you need to rollback to previous major version 0.*, then please ensure that no execution is ongoing. Thereafter restore the backed-up state files from #1 before redeploying and executing the major version 0.*

 

  • No labels