Github user ctubbsii commented on a diff in the pull request:

    https://github.com/apache/accumulo/pull/131#discussion_r71937940
  
    --- Diff: assemble/src/main/scripts/generate-download-script.sh ---
    @@ -0,0 +1,56 @@
    +#! /usr/bin/env bash
    +
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
    +# This script will generate a DEPENDENCIES listing of packaged dependencies
    +
    +in=target/dependencies.raw.txt
    +out=target/download-dependencies
    +
    +cat >"$out" <<'EOF'
    +#! /usr/bin/env bash
    +# This script downloads the following jars, identified by their maven
    +# coordinates, using the maven-dependency-plugin.
    +#
    +# DISCLAIMER: This is only one possible way to download a set of 
dependencies
    --- End diff --
    
    > Long term, perhaps.
    
    I'm trying to look for long-term benefits, yes, at the cost of some 
short-term road bumps. I am also trying to make those short-term road bumps 
minimal, though... hence the inclusion of this downloader script to ease people 
along. If I could make this particular road bump even smaller, I'd do it. I'm 
not sure how much smaller it can get, though.
    
    > It doesn't invalidate the ability for downstream people to still do 
whatever they want.
    
    True, but I think it's a bad thing to do by default, and is going to 
encourage bad practice. Relocating is also another word for a certain kind of 
"forking". By relocating/forking the code into our own, we're taking on the 
future responsibility of those dependencies, rather than deferring to their 
respective communities. I think that's not something we should do.
    
    > These classes should also not be getting dynamically loaded, should they
    
    Depends on what's loading what. We may not have any dynamically loaded 
dependencies on these particular libraries, but we easily could in the future 
(for example, to support both jline1 and jline2), and we have no idea what the 
dependencies themselves are doing which would be affected by relocation.
    
    > It would simplify the case for users who just want to get up and running 
(that are not release engineering experts).
    
    I'm not convinced that relocation would help users get going out-of-box, 
and certainly not significantly over running a simple downloader script to 
gather dependencies, and I think this would be a short-sighted change favoring 
small short-term benefits over the long-term health of the project. Depending 
on how it's done (automated, or copy/pasted/renamed), it could also add a lot 
of technical debt to Accumulo, locking it in to using code which diverges from 
our dependencies' patched upstreams.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to