You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/06/06 15:37:00 UTC

[jira] [Work logged] (BEAM-3608) Pre-shade Guava for things we want to keep using

     [ https://issues.apache.org/jira/browse/BEAM-3608?focusedWorklogId=109434&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-109434 ]

ASF GitHub Bot logged work on BEAM-3608:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 06/Jun/18 15:36
            Start Date: 06/Jun/18 15:36
    Worklog Time Spent: 10m 
      Work Description: kennknowles opened a new pull request #5570: [BEAM-3608] Pre-shade Guava
URL: https://github.com/apache/beam/pull/5570
 
 
   This adds a module `beam-vendor-guava-20` that is just a namespaced redistribution of Guava 20.0. We would then depend on and ship this.
   
   Benefits
   
    - Faster build, since we don't shade every project, only these vendor modules (which actually are very fast because there are far fewer classes being scraped)
    - Readable code because it doesn't get modified during build
    - You can actually use two versions and adapt between them if you need to
   
   Reference: https://lists.apache.org/thread.html/12383d2e5d70026427df43294e30d6524334e16f03d86c9a5860792f@%3Cdev.beam.apache.org%3E
   
   Open questions:
   
    - Should I put minor version in everything? Technically it shouldn't be needed, but in practice I imagine it could be.
   
   ------------------------
   
   Follow this checklist to help us incorporate your contribution quickly and easily:
   
    - [x] Format the pull request title like `[BEAM-XXX] Fixes bug in ApproximateQuantiles`, where you replace `BEAM-XXX` with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
    - [x] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
   
   It will help us expedite review of your Pull Request if you tag someone (e.g. `@username`) to look at it.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Issue Time Tracking
-------------------

            Worklog Id:     (was: 109434)
            Time Spent: 10m
    Remaining Estimate: 0h

> Pre-shade Guava for things we want to keep using
> ------------------------------------------------
>
>                 Key: BEAM-3608
>                 URL: https://issues.apache.org/jira/browse/BEAM-3608
>             Project: Beam
>          Issue Type: Sub-task
>          Components: runner-core, sdk-java-core
>            Reporter: Kenneth Knowles
>            Assignee: Kenneth Knowles
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Instead of shading as part of our build, we can shade before build so that it is apparent when reading code, and in IDEs, that a particular class resides in a hidden namespace.
> {{import com.google.common.reflect.TypeToken}}
> becomes something like
> {{import org.apache.beam.private.guava21.com.google.common.reflect.TypeToken}}
> So we can very trivially ban `org.apache.beam.private` from public APIs unless they are annotated {{@Internal}}, and it makes sharing between our own modules never get broken by shading again.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)