贡献力量 ============= 各位老师、同鞋,非常高兴你能点开这个文档~ 在说怎样贡献代码之前,我们先啰嗦一下 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 上, 和大家同步并讨论,之后再动手开发。 如果需要进行修改代码(包括文档等),可以参考 :doc:`dev_quickstart` , 代码风格请参考 :doc:`coding_style` ,一些 FeelUOwn 架构设计相关的决策,可以参考 :doc:`arch` 和 :doc:`api` 等文档。 最后值得一提的是,我们有一个开发者/用户交流群(邀请链接在 README_ 中),大家可以加入群里, 有任何 *相关* 或者 `有意义的问题`_ ,都可以在群里进行讨论,有任何疑问, 也可以在群里沟通。感谢大家为 FeelUOwn 做出的贡献! .. _文章1: http://cosven.me/blogs/57 .. _文章2: http://cosven.me/blogs/58 .. _FeelUOwn GitHub 项目: https://github.com/cosven/FeelUOwn/projects/5 .. _有意义的问题: https://zh.wikipedia.org/wiki/%E6%8F%90%E9%97%AE%E7%9A%84%E6%99%BA%E6%85%A7 .. _README: https://github.com/cosven/feeluown