alibaba / spring-cloud-alibaba

Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.
https://sca.aliyun.com
Apache License 2.0
27.96k stars 8.34k forks source link

[Discuss] the package name & maven groupId & version number #761

Closed fangjian0423 closed 5 years ago

fangjian0423 commented 5 years ago

[Discuss] the package name & maven groupId & version number

Hi, everyone! now spring-cloud-alibaba have moved away from spring-cloud repository.

The official policy will be announced in the future by spring-cloud team to explain why spring-cloud-alibaba move away from spring-cloud repository.

The package name will be changed from org.springframework.cloud.alibaba to com.alibaba.cloud.

The maven groupId change from org.springframework.cloud to com.alibaba.cloud. maven artifactId will be keep, we think the fewer modification the better.

since the package name & maven groupId modification, the version number will be changed. This is the mapping table between version number modification and Spring Cloud version number.

Spring Cloud Alibaba Version before change Spring Cloud Alibaba Version after change Spring Cloud Version
0.1.x 1.0.x Spring Cloud Edgware
0.2.x 1.1.x Spring Cloud Finchley
0.9.x 1.2.x Spring Cloud Greenwich

These modifications will effect the usage of spring-cloud-alibaba, we need the suggestions about package name & maven groupId & version number from community, please reply & discuss in the issue.

[讨论] 关于包名 & maven groupId & 版本号的修改

大家好,spring-cloud-alibaba 目前已经从 spring-cloud 的 github 仓库迁移到了 alibaba 仓库下。

spring-cloud 团队会在未来发出官方的公告解释为什么 spring-cloud-alibaba 会迁移到 alibaba 仓库下。

迁移意味着修改,下面是一些改动点的说明。

包名从 org.springframework.cloud.alibaba 变成 com.alibaba.cloud

maven groupId 从 org.springframework.cloud 变成 com.alibaba.cloud. maven artifactId 会保持原有的名字,我们认为我们改的越少,大家的改动也就越少。

由于包名和 maven groupId 进行了修改,版本号也需要进行修改,这是版本号修改前后跟 Spring Cloud 版本号的映射关系表:

Spring Cloud Alibaba 修改前的版本 Spring Cloud Alibaba 修改后的版本 Spring Cloud 版本
0.1.x 1.0.x Spring Cloud Edgware
0.2.x 1.1.x Spring Cloud Finchley
0.9.x 1.2.x Spring Cloud Greenwich

这些包名和 maven groupId 以及版本号的修改会影响目前 spring-cloud-alibaba 的使用者,我们需要社区的意见,也想听听社区的声音。大家可以在 issue 里进行答复和讨论。

xiejiashuai commented 5 years ago

This looks very good. Well Done.

zxhans commented 5 years ago

perfect

caorenpeng-kaer commented 5 years ago

我觉得OK,希望阿里巴巴 越来越好

killersteps commented 5 years ago

The promotion of nacos products is obviously lagging behind with other components. Can we speed up the iteration?

nisiyong commented 5 years ago

com.alibaba.cloud感觉这个名字含义太大了,有点歧义。这里的cloud其实是特定spring而言

vikenlove commented 5 years ago

唯一的建议 是希望 其他如nacos、seata sentinel dubbo 等 cloud 依赖POM版本号能及时更新。是在是更新的太慢了。导致无法升级。

senzhu commented 5 years ago

com.alibaba.springframework.cloud

lltx commented 5 years ago

前排支持!

zhendong590 commented 5 years ago

666

yanzhaohu commented 5 years ago

非常好,希望未来有一个完整的独立的微服务体系,赶超spring cloud!

eacdy commented 5 years ago

我认为如果

前版本 After
0.1 1.0
0.2 1.1
0.3 1.2

这样的方式有点模糊,特别是对使用0.9的童鞋来说,很可能会懵。

正常的逻辑,1.0比0.9新,应该支持更高版本;但却不是这样……

我建议采用类似Spring Cloud的版本命名方式:

前版本 After
0.1 Edgware
0.2 Finchley
0.9 Greenwich

这样相对清晰一些。

weixing1204 commented 5 years ago

包名改了之后,感觉像是alibaba的云组件,跟spring-cloud没啥关系了。 不知道这样改了之后,最终还是按照spring-cloud的标准,还是会脱离spring-cloud,发展自己标准的微服务组件?

fangjian0423 commented 5 years ago

包名改了之后,感觉像是alibaba的云组件,跟spring-cloud没啥关系了。 不知道这样改了之后,最终还是按照spring-cloud的标准,还是会脱离spring-cloud,发展自己标准的微服务组件?

并没有脱离 spring-cloud,跟 spring cloud 官方还是合作的关系,可以参考 spring-cloud leader spencer 的留言: https://github.com/alibaba/spring-cloud-alibaba/issues/739#issuecomment-509394980

fangjian0423 commented 5 years ago

The promotion of nacos products is obviously lagging behind with other components. Can we speed up the iteration?

now we have our own release train, we can release new version by ourselves.

but we must make sure the modifications about pkg name & maven groupId & version number, it can't be changed if we use these new value.

penghao03 commented 5 years ago

包名,groupId 我觉得ok,关于版本号,有个个人想法:是不是可以参考sb和sc的版本号规律,毕竟sca三个主版本是根据sb和sc的不同版本来区分的;如果是1.0/1.1/1.2可能还需要专门理解相应的版本对应关系,对于刚接触的来说并不是太友好,何不如遵照sb的版本特点:

before After
0.1 1.5.x
0.2 2.0.x
0.9 2.1.x

第三位x可以根据alibaba体系下各个组件的版本迭代速度来自由把控;

也可以像上面周立大佬说的

前版本 After
0.1 Edgware
0.2 Finchley
0.9 Greenwich

哈哈,个人意见,大佬勿喷!

Isaac-Zhang commented 5 years ago

是否修改个人建议是找到或者可以给筒子们阐述一下为什么要修改?

  1. 目前来看,修改为com.alibaba.cloud确实会带来很大的歧义,毕竟这里的cloud 和我们常用的ali cloud很容易混淆。
  2. 从长远来说,这样的修改意义非凡,但是不要像17年之前的dubbo一样'伟'了...广大国内用户其实蛮希望能出一个领头羊来做技术演进的( 顺便帮小马哥打call:-) )...而且目前阿里是首选也是唯一。
  3. 培养用户转变spring cloudalibaba cloud的难度系数多大,如何能加速落地,增强认知。
Isaac-Zhang commented 5 years ago

The project did not get kicked out :-) One of the reasons for the move is so that the Alibaba team is not bottlenecked by the spring team for releases. By moving to their own org, they are administrators of the project and #734 allows Alibaba to perform their own releases using their own maven coordinates. Look for continued cooperation, joint blog posts announcing releases and more!

看到这个,我理解的迁移项目是因为release受阻,确实没看出来为什么要改groupId & version...

Lovnx commented 5 years ago

同觉得版本没有什么辨识度!

before After
0.1 1.5.x
0.2 2.0.x
0.9 2.1.x

既然SC官方用伦敦地铁站来命名版本,那我们可以用北京地铁站或者中国地名啊等等,比如这样

前版本 SC SCA version .......
0.1 Edgware xiErqi(西二旗) Erguotou(二锅头)
0.2 Finchley Fuxingmen(复兴门) Fenjiu(汾酒)
0.9 Greenwich yongheGong(雍和宫) Guihuajiu(桂花酒)

总之。。。就是一些中国元素了。。。

fangjian0423 commented 5 years ago

The project did not get kicked out :-) One of the reasons for the move is so that the Alibaba team is not bottlenecked by the spring team for releases. By moving to their own org, they are administrators of the project and #734 allows Alibaba to perform their own releases using their own maven coordinates. Look for continued cooperation, joint blog posts announcing releases and more!

看到这个,我理解的迁移项目是因为release受阻,确实没看出来为什么要改groupId & version...

  1. release 受阻只是其中一个原因
  2. maven central 发版本,不同的 org 是有不同的账号的,无法跨 org 发版本。所以必须切换成 alibaba oss 对应的 groupId。 version 的话因为 pkg name & maven coordinate 都改了,换个全新的版本号更加适合
Isaac-Zhang commented 5 years ago

The project did not get kicked out :-) One of the reasons for the move is so that the Alibaba team is not bottlenecked by the spring team for releases. By moving to their own org, they are administrators of the project and #734 allows Alibaba to perform their own releases using their own maven coordinates. Look for continued cooperation, joint blog posts announcing releases and more!

看到这个,我理解的迁移项目是因为release受阻,确实没看出来为什么要改groupId & version...

  1. release 受阻只是其中一个原因
  2. �maven central 发版本,不同的 org 是有不同的账号的,无法跨 org 发版本。所以必须切换成 alibaba oss 对应的 groupId。 version 的话因为 pkg name & maven coordinate 都改了,换个全新的版本号更加适合

http://maven.aliyun.com/mvn/ 作为主 maven central,让他们follow us. ( ̀⌄ ́)

liudaomanbu commented 5 years ago

The project did not get kicked out :-) One of the reasons for the move is so that the Alibaba team is not bottlenecked by the spring team for releases. By moving to their own org, they are administrators of the project and #734 allows Alibaba to perform their own releases using their own maven coordinates. Look for continued cooperation, joint blog posts announcing releases and more!

看到这个,我理解的迁移项目是因为release受阻,确实没看出来为什么要改groupId & version...

  1. release 受阻只是其中一个原因
  2. �maven central 发版本,不同的 org 是有不同的账号的,无法跨 org 发版本。所以必须切换成 alibaba oss 对应的 groupId。 version 的话因为 pkg name & maven coordinate 都改了,换个全新的版本号更加适合

个人感觉com.alibaba.cloud也是有点误导性的包名,感觉像是阿里云体系一样的概念. 虽然有org的relase问题,所以必须以com.alibaba开头. 那是不是可以考虑包名是com.alibaba.springframework.cloud? 这样能够让人明白这不是阿里云体系而是spring cloud体系?

liaocanjie commented 5 years ago

别争了,用汉字做版本号。

iwhalecloud-platform commented 5 years ago

我觉得alibaba-cloud算spring-cloud里面的一个体系,基于spring-cloud来的。首先包名没有spring-cloud,这样感觉是跟spring-cloud平等的。其实不是。还有版本 我觉得还是跟spring-cloud走,不要用数字。如果使用数字1.x、2.x ,会让不懂的人无法跟spring-cloud版本做映射。还要去百度才知道。

GreedyPirate commented 5 years ago

关于版本号,个人支持用数字做版本号,简单直观,对新人友好,也容易表示小版本,而且我很好奇SC 26个字母用完了该用啥

xiejiashuai commented 5 years ago

别争了,用汉字做版本号。

我觉得alibaba-cloud算spring-cloud里面的一个体系,基于spring-cloud来的。首先包名没有spring-cloud,这样感觉是跟spring-cloud平等的。其实不是。还有版本 我觉得还是跟spring-cloud走,不要用数字。如果使用数字1.x、2.x ,会让不懂的人无法跟spring-cloud版本做映射。还要去百度才知道。

novicezk commented 5 years ago

数字版本号+1 , 文档首页写明跟 Spring Cloud 版本号的映射关系就好了

slievrly commented 5 years ago

可否直接使用spring cloud的版本号,E,F,G系列,这样减少了版本对齐的思维转换,更贴近spring cloud.

killersteps commented 5 years ago

I believe that more than one person is curious: why can netflix still use the package name of org.springframework.cloud.netflix, but alibaba does not, is it just because of release? Or because of some other reasons for project incubation, Sorry, some of the previous dubbo things affected the view of this matter. The point is: why is netflix still available?like ribbon, etc.

nisang commented 5 years ago

改动包名,什么的都是小事了,但是改动了,能否针对阿里系的所有组件进行支持 如fastjson,druid,dubbo 能比spring cloud 迭代要快些,jdk方面的支持能否向jdk11靠,编码方面,能否采用更灵活的新特性支持。 jdk 11 比 jdk 8 其提升的效率是1.2 倍,cpu中断时间大幅缩小 grpc支持什么的,都能使用最新的更快的工具

xiejiashuai commented 5 years ago

I believe that more than one person is curious: why can netflix still use the package name of org.springframework.cloud.netflix, but alibaba does not, is it just because of release? Or because of some other reasons for project incubation, Sorry, some of the previous dubbo things affected the view of this matter. The point is: why is netflix still available?like ribbon, etc.

Isaac-Zhang commented 5 years ago

I believe that more than one person is curious: why can netflix still use the package name of org.springframework.cloud.netflix, but alibaba does not, is it just because of release? Or because of some other reasons for project incubation, Sorry, some of the previous dubbo things affected the view of this matter. The point is: why is netflix still available?like ribbon, etc.

Ali is the company that can challenge Spring's dominance. Is Spring afraid? (>_<)

xiejiashuai commented 5 years ago

I believe that more than one person is curious: why can netflix still use the package name of org.springframework.cloud.netflix, but alibaba does not, is it just because of release? Or because of some other reasons for project incubation, Sorry, some of the previous dubbo things affected the view of this matter. The point is: why is netflix still available?like ribbon, etc.

Ali is the company that can challenge Spring's dominance. Is Spring afraid? (>_<)

killersteps commented 5 years ago

I believe that more than one person is curious: why can netflix still use the package name of org.springframework.cloud.netflix, but alibaba does not, is it just because of release? Or because of some other reasons for project incubation, Sorry, some of the previous dubbo things affected the view of this matter. The point is: why is netflix still available?like ribbon, etc.

  • I think the answer is this netlifx oss has already been used widely,once moved from spring cloud can cause to many users to changed

As said, the so-called spring requirements change becomes meaningless because there is no concept of "unification"

killersteps commented 5 years ago

Ali is the company that can challenge Spring's dominance.

this is a joke,hah

yanzhaohu commented 5 years ago

阿里的员工都有花名,其实开源项目的版本也可以按照花名,或者按照修真类的小说的等级来进行版本号

ly641921791 commented 5 years ago

I think using numbers as version numbers is more intuitive for the order of the versions. Not everyone wants to know how many stations in London's subway, what is the name of each station?

fangjian0423 commented 5 years ago

I like using numbers as version numbers, 1.0 for E, 1.1 for F & 1.2 for G.

when spring-cloud-alibaba in spring-cloud-incubator repository, we use 0.1 & 0.2 & 0.9 version number.

1.0 means a new start and we should start with it.

but some developers will confuse about it, because 1.0 is higher than 0.9, but 1.0 is for E, 0.9 is for G.

so maybe using letters as version numbers is a better choice.

=============

我喜欢数字作为版本号,1.0 对应 E,1.1 对应 F,1.2 对应 G。

当 spring-cloud-alibaba 在 spring-cloud-incubator 孵化器仓库的时候,我们就使用了 0.1, 0.2 和 0.9 版本号。

1.0 意味着一个新的开始,我们应该从 1.0 开始。

但是肯定有一些开发者对版本号有疑惑,因为 1.0 版本号高于 0.9,但是 1.0 对应 E 版本,0.9 却对应 G 版本。

所以用字母作为版本号可能是一个更好的选择。

wuShanYunYu0612 commented 5 years ago

maven groupId 使用com.alibaba.cloud 让人感觉有点脱离SC的实现, 可以试试 com.alibaba.spring.cloud. 版本好,更倾向于使用字母,根随sc的版本字母

mgliang commented 5 years ago

版本号+1 应该是的大多数人的共识吧

xiejiashuai commented 5 years ago

I believe that more than one person is curious: why can netflix still use the package name of org.springframework.cloud.netflix, but alibaba does not, is it just because of release? Or because of some other reasons for project incubation, Sorry, some of the previous dubbo things affected the view of this matter. The point is: why is netflix still available?like ribbon, etc.

  • I think the answer is this netlifx oss has already been used widely,once moved from spring cloud can cause to many users to changed

As said, the so-called spring requirements change becomes meaningless because there is no concept of "unification"

killersteps commented 5 years ago

I believe that more than one person is curious: why can netflix still use the package name of org.springframework.cloud.netflix, but alibaba does not, is it just because of release? Or because of some other reasons for project incubation, Sorry, some of the previous dubbo things affected the view of this matter. The point is: why is netflix still available?like ribbon, etc.

  • I think the answer is this netlifx oss has already been used widely,once moved from spring cloud can cause to many users to changed

As said, the so-called spring requirements change becomes meaningless because there is no concept of "unification"

  • Hours ago ,I ask Spencer Gibb same question , his answer is following

    • Because the spring team maintains them and owns springframework.org

So? Netfilx also needs to be changed?

fangjian0423 commented 5 years ago

天干地支,简称为干支,源自中国远古时代对天象的观测。

版本号使用 "天干地支" 是个不错的建议:

十天干: 甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ)

十二地支: 子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、辰(chén)、巳(sì)、午(wǔ)、未(wèi)、申(shēn)、酉(yǒu)、戌(xū)、亥(hài)。其中子、寅、辰、午、申、戌为阳支,丑、卯、巳、未、酉、亥为阴支

十二地支对应十二生肖,十二生效也有对应的英文名:

地支和生肖的对应关系: 子-鼠,丑-牛,寅-虎,卯-兔,辰-龙,巳-蛇, 午-马,未-羊,申-猴,酉-鸡,戌-狗,亥-猪。

生肖英文名: Rat 鼠,Ox 牛,Tiger 虎,Rabbit 兔,Dragon 龙,Snake 蛇,Horse 马,Goat 羊,Monkey 猴,Rooster 鸡,Dog 狗,Boar 猪

更加倾向于选择十二生肖 😁

从 Edgware 开始支持, Rat 支持 Edgware, Ox 支持 Finchley, Tiger 支持 Greenwich,Rabbit 支持 Hoxton ....

Lovnx commented 5 years ago

天干地支,简称为干支,源自中国远古时代对天象的观测。

版本号使用 "天干地支" 是个不错的建议:

十天干: 甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ)

十二地支: 子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、辰(chén)、巳(sì)、午(wǔ)、未(wèi)、申(shēn)、酉(yǒu)、戌(xū)、亥(hài)。其中子、寅、辰、午、申、戌为阳支,丑、卯、巳、未、酉、亥为阴支

十二地支对应十二生肖,十二生效也有对应的英文名:

地支和生肖的对应关系: 子-鼠,丑-牛,寅-虎,卯-兔,辰-龙,巳-蛇, 午-马,未-羊,申-猴,酉-鸡,戌-狗,亥-猪。

生肖英文名: Rat 鼠,Ox 牛,Tiger 虎,Rabbit 兔,Dragon 龙,Snake 蛇,Horse 马,Goat 羊,Monkey 猴,Rooster 鸡,Dog 狗,Boar 猪

更加倾向于选择十二生肖 😁

从 Edgware 开始支持, Rat 支持 Edgware, Ox 支持 Finchley, Tiger 支持 Greenwich,Rabbit 支持 Hoxton ....

感觉要首字母相同才好😁 还真不好找。。。

fangjian0423 commented 5 years ago

天干地支,简称为干支,源自中国远古时代对天象的观测。 版本号使用 "天干地支" 是个不错的建议: 十天干: 甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ) 十二地支: 子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、辰(chén)、巳(sì)、午(wǔ)、未(wèi)、申(shēn)、酉(yǒu)、戌(xū)、亥(hài)。其中子、寅、辰、午、申、戌为阳支,丑、卯、巳、未、酉、亥为阴支 十二地支对应十二生肖,十二生效也有对应的英文名: 地支和生肖的对应关系: 子-鼠,丑-牛,寅-虎,卯-兔,辰-龙,巳-蛇, 午-马,未-羊,申-猴,酉-鸡,戌-狗,亥-猪。 生肖英文名: Rat 鼠,Ox 牛,Tiger 虎,Rabbit 兔,Dragon 龙,Snake 蛇,Horse 马,Goat 羊,Monkey 猴,Rooster 鸡,Dog 狗,Boar 猪 更加倾向于选择十二生肖 😁 从 Edgware 开始支持, Rat 支持 Edgware, Ox 支持 Finchley, Tiger 支持 Greenwich,Rabbit 支持 Hoxton ....

感觉要首字母相同才好😁 还真不好找。。。

如果选择中国特色的东西的话,首字母确实是不好对上的。

不过感觉还可以,Edgware 开始支持,从十二生肖 Rat 鼠可以。 😁

khiker007 commented 5 years ago

when the new version will release is my only want to know

fangjian0423 commented 5 years ago

official policy announcement: https://spring.io/blog/2019/07/24/simplifying-the-spring-cloud-release-train

ACANX commented 5 years ago

关于版本号,个人支持用数字做版本号,简单直观,对新人友好,也容易表示小版本,而且我很好奇SC 26个字母用完了该用啥

参考Ubuntu使用两位首字母作版本号

fangjian0423 commented 5 years ago

目前决定 bom 版本号采用跟 Spring Cloud 一样的伦敦地铁站名,starter & 模块版本号采用数字:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>Greenwich.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Greenwich.RELEASE 内部的 starter 版本号为 1.2.x:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>1.2.0</version>
</dependency>

版本对应关系:

Spring Cloud Alibaba Bom 版本号 Starter & 模块名 版本号 Spring Cloud 版本号
Spring Cloud Alibaba Edgware 1.0.x Spring Cloud Edgware
Spring Cloud Alibaba Finchley 1.1.x Spring Cloud Finchley
Spring Cloud Alibaba Greenwich 1.2.x Spring Cloud Greenwich
fangjian0423 commented 5 years ago

由于两边版本节奏不一样,以 Greenwich 为例

Spring Cloud Alibaba Bom 版本号 Starter & 模块名 版本号 Spring Cloud 版本号
Spring Cloud Alibaba Greenwich.RELEASE 1.0.0 Spring Cloud Greenwich.SR2
Spring Cloud Alibaba Greenwich.SR1 1.0.1 Spring Cloud Greenwich.SR3
Spring Cloud Alibaba Greenwich.SR2 1.0.2 Spring Cloud Greenwich.SR3
Spring Cloud Alibaba Greenwich.SR3 1.0.3 Spring Cloud Greenwich.SR4

虽然都是 Greenwich 大版本,但是小版本号不一样。以 Spring Cloud Greenwich.SR4 为例,需要记住 Spring Cloud Alibaba 的版本为 Greenwich.SR3,Starter & 模块名版本为 1.0.3。这样需要记住 3 个版本号。

参考孵化器时的做法,Bom 的版本号跟 Starter & 模块名 版本号一致。这样需要记住 2 个版本号:

Spring Cloud Alibaba Bom 版本号 Starter & 模块名 版本号 Spring Cloud 版本号
Spring Cloud Alibaba 1.0.0 1.0.0 Spring Cloud Greenwich.SR2
Spring Cloud Alibaba 1.0.1 1.0.1 Spring Cloud Greenwich.SR3
Spring Cloud Alibaba 1.0.2 1.0.2 Spring Cloud Greenwich.SR4
romeoblog commented 5 years ago

只需记住 2 个版本号 比 记住 3 个版本号 显得更方便直接