开源项目中,如何管理项目的『专业版』的代码? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aincvy

开源项目中,如何管理项目的『专业版』的代码?

  •  
  •   aincvy 2020 年 11 月 20 日 3140 次点击
    这是一个创建于 1977 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一般情况下, 社区版的代码应该都会托管到 github 。

    这里, 我想问下, 如果做一个该软件的专业版本(收费版),如何管理代码?

    11 条回复    2020-11-20 15:14:32 +08:00
    imnpc
        1
    imnpc  
       2020 年 11 月 20 日
    本地开发的话建立 2 个项目

    社区版开发好的合并到专业版

    专业版代码单独提交到私有库
    cmdOptionKana
        2
    cmdOptionKana  
       2020 年 11 月 20 日 via Android
    可以共用的代码单独一个仓库,社区版与专业版都去引用它。如果不相信大厂,可以自建 git 服务器给专业版用。
    KagurazakaNyaa
        3
    KagurazakaNyaa  
       2020 年 11 月 20 日
    插件化,社区版写成平台和通用插件,专业版写成增强插件,然后专业版实际上就是变成几个独立的插件项目了
    9dP06m83vIV00l72
        4
    9dP06m83vIV00l72  
       2020 年 11 月 20 日
    分两个库,一个公共的,一个私有的,袋鼠数据库工具 目前就是这样子安排的。
    aincvy
        5
    aincvy  
    OP
       2020 年 11 月 20 日
    @imnpc 我的初始想法也是这样, 先使用 github 开发社区版本, 等时机成熟了,建立一个私有项目做专业版。
    但是想到 如果别人提交了 PR 什么的话, 处理起来会不会较为麻烦 ?
    aincvy
        6
    aincvy  
    OP
       2020 年 11 月 20 日
    @cmdOptionKana 那个共用的代码的仓库是不是约等于 社区版本了。。?
    aincvy
        7
    aincvy  
    OP
       2020 年 11 月 20 日
    @XiLingHost 刚刚简单的看了下,jetbrains 家族的 IDE 似乎就是这种形式 ? 这种形式下, 如何确保插件只工作在专业版授权下 可能是个问题
    KagurazakaNyaa
        8
    KagurazakaNyaa  
       2020 年 11 月 20 日
    @aincvy 插件做鉴权啊,就和一般软件的授权类似
    aincvy
        9
    aincvy  
    OP
       2020 年 11 月 20 日
    @XiLingHost 嗯,大致略微明白了, 有了些思路了。

    不过, 如果插件是用明文(*脚本*) 写的, 是不是就得考虑处理下插件机制了。。
    KagurazakaNyaa
        10
    KagurazakaNyaa  
       2020 年 11 月 20 日   1
    @aincvy 混淆和加密啊,甚至可以做联网验证
    donnior
        11
    donnior  
       2020 年 11 月 20 日
    把社区版作为商业版的 upstream
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     994 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 41ms UTC 19:33 PVG 03:33 LAX 12:33 JFK 15:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86