贡献力量

各位老师、同鞋,非常高兴你能点开这个文档~

在说怎样贡献代码之前,我们先啰嗦一下 FeelUOwn 项目的 主要目标

项目背景及目标

FeelUOwn 这个项目从 2015 年初开发到现在,已经 4 年有余, 从功能角度看,它已经具备最基本的功能,如本地歌曲扫瞄、歌曲播放、MV 播放、歌词。 基本模块也比较齐全,配置、插件、音乐库、远程控制等。

一开始,FeelUOwn 解决的问题是 Linux 上听在线音乐难。和现在百花齐放的生态不一样, 当年(=。=),Linux 上大部分播放器都只支持播放本地音乐,并且经常出现乱码现象。 我了解到的当时能听在线音乐的播放器有 deepin-music, 虾米电台等播放器。所以, 自己选择开发这个软件,更多历史请看这几篇博客 文章1文章2

如今,当时的问题已经不复存在,FeelUOwn 主要目标之一是提升用户听音乐的体验。 具体来说,主要体现以下几个方面:

  1. 让用户听任何想听的音乐
  2. 辅助用户能够发现、享受音乐

另外,FeelUOwn 也尽力成为一个程序员最友好的音乐播放器。这主要体现在这些点:

  1. 可扩展性强
  2. 项目工程化
  3. 尊重 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 做出的贡献!