贡献力量¶
各位老师、同鞋,非常高兴你能点开这个文档~
在说怎样贡献代码之前,我们先啰嗦一下 FeelUOwn 项目的 主要目标 。
项目背景及目标¶
FeelUOwn 这个项目从 2015 年初开发到现在,已经 4 年有余, 从功能角度看,它已经具备最基本的功能,如本地歌曲扫瞄、歌曲播放、MV 播放、歌词。 基本模块也比较齐全,配置、插件、音乐库、远程控制等。
一开始,FeelUOwn 解决的问题是 Linux 上听在线音乐难。和现在百花齐放的生态不一样, 当年(=。=),Linux 上大部分播放器都只支持播放本地音乐,并且经常出现乱码现象。 我了解到的当时能听在线音乐的播放器有 deepin-music, 虾米电台等播放器。所以, 自己选择开发这个软件,更多历史请看这几篇博客 文章1 、 文章2 。
如今,当时的问题已经不复存在,FeelUOwn 主要目标之一是提升用户听音乐的体验。 具体来说,主要体现以下几个方面:
- 让用户听任何想听的音乐
- 辅助用户能够发现、享受音乐
另外,FeelUOwn 也尽力成为一个程序员最友好的音乐播放器。这主要体现在这些点:
- 可扩展性强
- 项目工程化
- 尊重 Unix 习俗
可以做哪些贡献?¶
我们为 FeelUOwn 项目做贡献时,也都会围绕这些目标来进行。
首先,如果大家自己觉得播放器缺少了功能或者特性,可以提 Issue,有好的想法, 也可以提,我们非常期待大家的建议和想法。如果大家自己有需求,并且自己有能力动手实现, 我们也建议先在 Issue 上或者交流群进行简单讨论,然后进行代码实现。
用户会通过 Issue 或者交流群来提出的需求或想法,我们会把它们都收集, 记录在 FeelUOwn GitHub 项目 中,其中有大大小小的 TODO, 大家如果对某个 TODO 有兴趣,就可以进行相应的开发, 开发之前最好可以在 Telegram 交流群中吼一声,或者和管理员(目前为 @cosven) 说一声, 这样,这个 TODO 会被移动到 In progress 这一栏中去,避免大家做重复的工作。
除了功能方面,我们也特别欢迎大家对项目代码进行改进、让项目更加工程化。 目前,FeelUOwn 有一些设计不优雅、或者性能较差的代码,一部分是我们可以发现的, 我们已经将其标记为 FIXME / TODO / DOUBT ;另外,有些设计不好的地方, 我们还没有特别明确(比如 PyQt 在 FeelUOwn 中的使用),大家如果对这些问题有兴趣, 欢迎 PR!另外,工程化方面,FeelUOwn 的文档、单元测试、打包等都可以更加完善, 欢迎感兴趣的朋友根据自己的爱好进行选择。
如何做贡献?¶
对于一些小的 bugfix, feature 开发, 文档补全等,大家可以自己动手,然后 PR。 对于大的特性开发或者改动,建议大家先将自己的想法整理成文字,提在 Issue 上, 和大家同步并讨论,之后再动手开发。
如果需要进行修改代码(包括文档等),可以参考 本地开发快速上手 , 代码风格请参考 代码风格 ,一些 FeelUOwn 架构设计相关的决策,可以参考 程序架构 和 接口参考手册 等文档。
最后值得一提的是,我们有一个开发者/用户交流群(邀请链接在 README 中),大家可以加入群里, 有任何 相关 或者 有意义的问题 ,都可以在群里进行讨论,有任何疑问, 也可以在群里沟通。感谢大家为 FeelUOwn 做出的贡献!