Hi all, Thanks a lot for the discussion! Using "#" also makes sense to me. And +1 to have these improvements in 1.10 as we don't want to introduce compatibility problems later.
Looking forward to the vote! Best, Hequn On Thu, Dec 5, 2019 at 10:02 AM jincheng sun <sunjincheng...@gmail.com> wrote: > Hi all, > > Thanks for the quick response Aljoscha & Wei ! > > It seems unify the options is necessary, and 1.10 will be code frozen. I > would be like to bring up the VOTE thread for this change ASAP, and more > detail can continue discuss in the PR. > > What do you think? > > Best, > Jincheng > > Aljoscha Krettek <aljos...@apache.org> 于2019年12月4日周三 下午5:11写道: > > > Perfect, thanks for the background info! I also found this section now, > > which mentions that it comes from Hadoop: > > > https://spark.apache.org/docs/latest/running-on-yarn.html#important-notes. > > > > I think the proposed changes are good! > > > > Best, > > Aljoscha > > > > > On 4. Dec 2019, at 04:34, Wei Zhong <weizhong0...@gmail.com> wrote: > > > > > > Hi Aljoscha, > > > > > > Thanks for your reply! Before bringing up this discussion I did some > > research on commonly used separators for options that take multiple > values. > > I have considered ",", ":" and "#". Finally I chose "#" as the separator > of > > "--pyRequirements". > > > > > > For ",", it is the most widely used separator. Many projects use it as > > the separator of the values in same level. e.g. "-Dexcludes" in Maven, > > "--files" in Spark and "-pyFiles" in Flink. But the second parameter of > > "--pyRequirements", the requirement cached directory, is not at the same > > level as its first parameter (the requirements file). It is secondary and > > is only needed when the packages in the requirements file can not be > > downloaded from the package index server. > > > > > > For ":", it is used as a path separator in most cases. e.g. main > > arguments of scp (secure copy), "--volume" in Docker and "-cp" in Java. > But > > as we support accept a URI as the file path, which contains ":" in most > > cases, ":" can not be used as the separator of "--pyRequirements". > > > > > > For "#", it is really rarely used as a separator for multiple values. I > > only find Spark using "#" as the separator for option "--files" and > > "--archives" between file path and target file/directory name. After some > > research I find that this usage comes from the URI fragment. We can > append > > a secondary resource as the fragment of the URI after a number sign ("#") > > character. As we treat user file paths as URIs when parsing command line, > > using "#" as the separator of "--pyRequirements" makes sense to me, which > > means the second parameter is the fragment of the first parameter. The > > definition of URI fragment can be found here [1]. > > > > > > The reason of using "#" in "--pyArchives" as the separator of file path > > and targer directory name is the same as above. > > > > > > Best, > > > Wei > > > > > > [1] https://tools.ietf.org/html/rfc3986#section-3.5 > > > > > >> 在 2019年12月3日,22:02,Aljoscha Krettek <aljos...@apache.org> 写道: > > >> > > >> Hi, > > >> > > >> Yes, I think it’s a good idea to make the options uniform. Using ‘#’ > as > > a separator for options that take two values seems a bit strange to me, > did > > you research if any other CLI tools have this convention? > > >> > > >> Side note: I don’t like that our options use camel-case, I think > that’s > > very non-standard. But that’s how it is now… > > >> > > >> Best, > > >> Aljoscha > > >> > > >>> On 3. Dec 2019, at 10:14, jincheng sun <sunjincheng...@gmail.com> > > wrote: > > >>> > > >>> Thanks for bringup this discussion Wei! > > >>> I think this is very important for Flink User, we should contains > this > > >>> changes in Flink 1.10. > > >>> +1 for the optimization from the perspective of user convenience and > > the > > >>> unified use of Flink command line parameters. > > >>> > > >>> Best, > > >>> Jincheng > > >>> > > >>> Wei Zhong <weizhong0...@gmail.com> 于2019年12月2日周一 下午3:26写道: > > >>> > > >>>> Hi everyone, > > >>>> > > >>>> I wanted to bring up the discussion of improving the Pyflink command > > line > > >>>> options. > > >>>> > > >>>> A few command line options have been introduced in the FLIP-78 [1], > > i.e. > > >>>> "python-executable-path", "python-requirements","python-archive", > etc. > > >>>> There are a few problems with these options, i.e. the naming style, > > >>>> variable argument options, etc. > > >>>> > > >>>> We want to make some adjustment of FLIP-78 to improve the newly > > introduced > > >>>> command line options, here is the design doc: > > >>>> > > >>>> > > > https://docs.google.com/document/d/1R8CaDa3908V1SnTxBkTBzeisWqBF40NAYYjfRl680eg/edit?usp=sharing > > >>>> < > > >>>> > > > https://docs.google.com/document/d/1R8CaDa3908V1SnTxBkTBzeisWqBF40NAYYjfRl680eg/edit?usp=sharing > > >>>>> > > >>>> Looking forward to your feedback! > > >>>> > > >>>> Best, > > >>>> Wei > > >>>> > > >>>> [1] > > >>>> > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-78%3A+Flink+Python+UDF+Environment+and+Dependency+Management > > >>>> < > > >>>> > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-78:+Flink+Python+UDF+Environment+and+Dependency+Management > > >>>>> > > >>>> > > >>>> > > >> > > > > > > > >