Questions tagged «open-source»

有关免费提供原始源代码并可以重新分发和修改的软件的问题。

29
对“开源,提交补丁”的典型反驳是什么?[关闭]
在产品(特别是开源产品)上建议某些功能的危险是,您会得到响应,“为什么不这样做?”。 这是有效的,而且您可以自己进行更改很酷。但是,我们实际上知道,随着程序员倾听用户的声音,即使这些用户是其他程序员,产品也确实会不断进步。而且,进行这些更改的有效方法可以包括已经在项目中工作并接受并实现该想法的人员。 有一些常用术语用来指代软件开发问题。例如Bikeshedding。是否有一个通用术语基本上可以回答:“是的,我知道我可以改变世界上的几乎任何东西,甚至是封闭源代码。我都可以被雇用,然后去编写该代码。但是在这种情况下,我只是在做实际上对于另一位已经非常适合轻松进行更改的编码人员有用的观察,或者只是在讨论各种可能性。” [ps(几天后)-我应该指出,“提交补丁”通常会用幽默的语气来表达,我正在寻求适当的机智回应。]
215 open-source 

11
我如何找到一个好的开源项目加入?[关闭]
我一年前才刚刚开始工作,出于与其他人相同的原因,我想加入一个开源项目:帮助创造有用的东西并进一步发展我的技能。 我的问题是,我不知道如何找到适合的项目。 如何找到适合初学者的项目?我应该搜索什么属性?什么是警告标志,一个项目可能不会是合适人选?有没有什么工具可以帮助人们与开源项目匹配? 有一个类似的问题在这里,但这个问题与就业做的,仅限于PHP / Drupal的。

14
是否可以以略有不同的方式重写开源项目的每一行,然后在封闭项目中使用它?
我正在考虑将某些代码用于GPL或LGPL用于iPhone项目。 如果我使用该代码(JavaScript)并以另一种语言重写了该代码以在iPhone上使用,那将是法律问题吗? 从理论上讲,发生的过程是我遍历了项目的每一行,了解了项目的执行情况,然后以一种新的语言重新实现了这些想法。 在我看来,这就像在学习如何实现某些东西,然后与原始许可分开重新实现。因此,您仅复制了算法,可以说您可以从原始项目以外的其他地方学到算法。 许可证是否涵盖特定的实现或算法? 编辑 - - - 看到这个话题建立良好的对话,我感到非常高兴。为了给项目提供更多支持,所涉及的代码进行了某种音频分析。我相信学习或实现它并非易事,尽管我准备着手执行此任务(我处于可以实现FFT算法的水平,并且将超越此范围。)低LOC脚本,因此我认为做直接移植并不难。 我真的很喜欢重新释放端口以及在应用程序中使用它的想法。我认为没有任何问题,这将是回馈社区的好方法。 我本来想不想讨论道德问题,但我很高兴自己没有参加,因为这似乎激起了辩论。 我仍然对使用开放源代码学习感到有些奇怪。这是否意味着不允许在开放源代码项目中使用从开放源代码项目中学到的任何东西?实施必须经过多长时间或不同时间才能不被视为违反许可?ky! 编辑2 -------- 后续问题

7
如何避免被更强大的贡献者遗忘?
如最近在这里报道: Xamarin分叉了Cocos2D-XNA(一个2D / 3D游戏开发框架),创建了可以包含在PCL项目中的跨平台库。 但是分叉的项目的创始人说: MIT许可证的目的是限制您的合理使用。不鼓励您购买软件,将其重新命名为自己的软件,然后如您所说的那样“朝新的方向发展”。 虽然不是非法的,但这是不道德的。 似乎新项目的GitHub 页面甚至没有表明它是典型的GitHub方式的分支,而是选择了一个易于删除的“历史记录”部分(请参阅底部)。 所以我的问题是: Xamarin的行为和行为方式是否符合道德? 如果您是单个开发人员或一小群没有资金的开发人员,是否可以避免这种情况? 我希望这可能是一个维基问题,也可能会有一些基于现代OSS伦理/哲学的客观答案。

8
为什么许多程序员将其代码移至github?
在过去的6个月或更长时间里,我已经看到很多代码托管在sourceforge.net以及其他托管网站“移至GitHub”上。仅使用短语“ Moved to Github”的Google搜索会返回多个结果,其中包含已移至github的文本。这对我来说非常令人困惑,我想知道,为什么人们要移动?这是否意味着GitHub更好,还是有我没有看到的一些特殊优势?

20
使用开源作为开发人员来赚钱?
我目前是一名学生(应用信息技术),我们用C#和Java进行大部分编程。我想知道作为一名开发人员,如何通过开源赚钱。我知道有提供支持或提供服务的故事,但我不是sysadmin,而且我不喜欢sysadmin的工作。实际上,我希望将来能使用一些C和C ++并进行一些底层开发。 所以我的实际问题是:开源软件的开发能赚钱吗? 编辑:只是指出启动我自己的开源项目不是必需的。

2
MIT,BSD和双重许可
我的理解是: MIT许可项目可以在BSD许可项目中使用/分发。 BSD许可的项目可以在MIT许可的项目中使用/分发。 MIT和BSD 2子句许可证本质上是相同的。 BSD 3子句= BSD 2子句+ “无认可”子句 颁发双重许可证允许用户从这些许可证中进行选择,而不必两者都绑定。 如果以上所有方法都正确,那么使用MIT / BSD 双重许可证有什么意义?即使BSD引用了3子句版本,用户也不能合法选择仅遵守MIT许可证吗? 看来,如果您确实希望应用“不认可”子句,则必须仅将其许可为BSD(不是双重许可)。如果您不关心“不认可”子句,那么仅MIT就足够了,而MIT / BSD就是多余的。 同样,由于MIT和BSD许可证都是“ GPL兼容 ”的,并且可以在GPL许可的项目中重新分配,因此MIT / GPL双重许可似乎也很多余。

9
您应该如何处理不再希望维护的热门项目?
我是一个拥有大量非技术用户群的项目的维护者。我已经将其维护了大约4年,并根据需要添加了新功能。 我现在想继续进行其他项目,并停止为此应用程序开发。由于用户的非技术性,过去几乎没有代码贡献。我不相信我会找到其他人来接手该项目。 错误,问题和功能请求-这些仍然存在。我仍在回复电子邮件以寻求帮助,因为我不确定是否应该忽略它们,告诉他们我不在使用该应用程序,还是应该响应仅在某些情况下才能发送电子邮件。 什么是“放弃”该项目但仍让用户使用该应用程序的最佳方法? 更新(2016年7月)-它没有按计划进行。我在自述文件中发布了一个公告,不久之后,我开始收到更实质性的文稿。通过错误修复,功能,文档和问题活动拉取请求。从那时起,该项目感到“焕然一新”,我现在很高兴与新项目一起维护它。我也有合作者。猜测可能是那种影响我对项目的看法的贡献,并且随着贡献质量的提高,它再也感觉不到杂事了。

7
是否有Bitbucket,Github,Kiln和类似DVCS浏览和管理工具的开源替代品?[关闭]
我知道提供DVCS浏览和管理的几种工具/服务,例如Bitbucket,Github,Kiln,SCM-Manager和Rhodecode。 但是,我正在考虑的用例是这样的: 任何源代码都必须位于雇主内部服务器上。 解决方案必须是开源的。 它应提供类似Bitbucket或Github的体验,包括项目Wiki,存储库浏览和管理以及社交编码方面(如代码审查)。 该解决方案应具有丰富的支持(如果不支持其他DVCS)。 其中只有SCM-Manager和RhodeCode可以接近,因为它们可以安装在您自己的服务器上并且是开源的。但是他们没有Bitbucket或Github经验。没有问题跟踪器或Wiki,并且用户界面虽然功能正常,但与Github或Bitbucket不相称。 我可以通过他们的存储库浏览器来接近Trac或Redmine,但不幸的是它们没有任何存储库管理功能。 是否有其他开源工具可以提供与Bitbucket,Github或Kiln类似的体验?

8
如何处理加入开源项目的困难程序员?
我有一个特定站点的开放源脚本(我试图在这里不使用任何名称来命名),我和其他一些开发人员最近将其移至GitHub。自从迁移到新系统以来,我们已经获得了几名新开发人员,特别是其中一位非常活跃的开发人员。但是,这个活跃的人已经开始更改许多项目。 首先,他删除了我们的版本控制系统(不像Git,而是那样-我们称它为version v4.1.16),并说最好在我们认为准备就绪时将代码推送到该站点。现在没有放置发布说明的集中位置,这已经很烦人了。 使我准备好收拾行装的事情是推脚本。该项目的另一位开发人员编写了一个简单的基于Python的推送脚本。由于我们在不同的地方在线保留了多个版本的脚本,因此我开始使用图形界面来编写一个较大的Java程序,以取代Python脚本。我在IRC上通知了所有人,我收到了程序员的一个非常讨厌的答复,他说旧的基于Python的脚本可以完成我所能做的一切,而且更加轻巧(他还评论说,他认为Python比Java更好,依此类推)。我查看了旧推脚本的代码,发现他说的功能都不存在。 所以现在我想知道该怎么办。我在这个项目上花了很多时间,所以我不想起床离开,但是我发现与这个新开发人员一起工作很困难。另一方面,他现在是项目的第一提交者,提交的数量比主要开发人员还要多。我不太确定该怎么做。还有其他人遇到过这个问题吗?如果是这样,您做了什么? 更新1:我已经禁用了每个人的提交访问权限,并且我要求人们接受请求请求。我还提出了一些解决其他问题的措施。其他人都没有对此表示任何支持。麻烦的开发人员只是说,那些不严格遵循“提交操作”的人会认为,当项目真的没有时,它就会变得杂乱无章。我显然不同意这一点,因此我正在认真考虑退出该项目。 更新2:首席开发人员开始对以下事实感到满意:我的一个提交应该删除了代码中的三个换行符(还原提交在我发布讨论后显示,甚至没有引用我的“提交”),然后他们两个开始讨论是否撤消我的提交访问权限。因此,我已经完成了合乎逻辑的事情,并离开了项目。感谢您对每个人的帮助!
65 open-source  team 

1
如果我在MIT许可下的Github上创建一个项目,该如何处理所有权和版权声明?
如果我计划派生一个MIT项目并对其进行重大修改和重命名,我该如何处理主许可证文件上MIT许可证上方的版权声明。我会列出原始作者和我的公司,还是仅列出原始作者?我对作者的归属有哪些法律选择?我也打算在麻省理工学院获得我们的软件许可,并保持开源。

6
为什么没有开源项目的代码概述?[关闭]
那里有非常复杂的开源项目,我想我可以为其中的一些项目做出一些贡献,我希望我能做出一些贡献,但是进入的门槛太高了,原因有一个:在同一时间更改一行代码大型项目,您必须了解所有内容。 您不需要阅读所有代码(即使您阅读,也不够用)并了解每一行的内容以及原因,因为代码可能是模块化和分区化的,所以有适当的抽象,但是即使如此,你需要获得一个概述该项目,这样你就可以知道哪里是模块,其中确实有另外一个模块接口,究竟各模块做的,为什么,以及其中的目录和文件均对这些事情的发生。 我称此代码概述为开放源代码项目可以在网站或文档中向外部人员解释其代码的部分的名称。我认为这将使潜在的贡献者受益,因为他们将能够确定他们可以建立的地方,所涉及的实际主要编码人员,因为他们将能够在编写所有内容的同时重组他们的思想,并会像他们那样帮助用户。帮助理解并更好地报告他们遇到的错误,甚至可能成为贡献者。 但是我仍然从未见过这些“代码概述”之一。为什么?是否有类似的事情,我想念他们?与我描述的功能相同的事情?还是这是一个完全无用的想法,因为除我之外,每个人都可以轻松理解具有数千行代码的项目?

1
安排第三方图书馆许可“文书工作”的最佳实践是什么?
我正在开发一个小型开源项目。该应用程序使用发行了许多许可证的许多第三方库:Apache,MIT,BSD,LGPL和CDDL。 这些许可证中的每一个都有其自己的“文书工作”要求。例如,Apache许可证v2.0指出: 如果作品包括“注意”文本文件作为其分发的一部分,则您分发的任何衍生作品都必须包括该通知文件中包含的署名声明的可读副本。 MIT许可证包含版权声明,并指出: 以上版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。 BSD许可证还包含版权声明,并指出: 二进制形式的重新分发必须在分发随附的文档和/或其他材料中复制以上版权声明,此条件列表以及以下免责声明。 LGPL v.3说: (您应该)在合并作品的每份副本中都特别注明使用了该库,并且该许可证涵盖了该库及其使用。 LGPL和CDDL许可证还要求提供源代码以及库的二进制形式,因此应在某处提供有关获取源代码的方式的信息。 整理所有这些数据的最佳实践是什么?我是否应该创建一个文本文件并将所有NOTICE文件,MIT和BSD许可证等的内容复制到该文件中?...还是应该为每个库创建一个单独的目录,然后将与该库相关的所有数据放入该目录?… 或者是其他东西? 在已发布的项目中看到此“文书”的任何示例也将很有趣。 更新: 我已阅读您是否必须在每个源文件中都包含许可证声明?,但不能解决我的问题。我的问题与项目中使用的第三方库有关,而该问题与项目自己的源代码中的标头有关。

5
源文件中的版权声明/免责声明
在开放源代码项目的每个源文件中放置版权声明,各种法律免责声明,甚至有时是完整的许可协议是一种常见的做法。这对于(1)开源项目和(2)闭源项目真的必要吗?通过将这些声明放在源文件中,您试图实现或防止什么? 我知道这是一个法律问题,而且我怀疑我们是否可以在程序员那里得到一个完全称职的答案。所以(这是针对程序员的,不是吗?)当您在源文件中放入合法内容时,也将听到一个有趣的消息。 ,是因为“每个人都这样做”还是您得到了法律建议?这是什么原因?

8
什么是“默认”软件许可证?
如果我发布了一些代码和二进制文件,但没有附带任何许可证,则默认情况下(在美国,我在哪里)适用哪些法律条款。我知道我什么都不做就自动拥有版权,但是对此有什么限制? 如果我将代码上传到github并宣布免费下载/随意提供,那么人们是否可以修改和关闭我的工作?我没有说他们不能像GPL那样,但是我也不认为默认情况下窃取我的作品也是可以接受的。 那么人们可以和不能使用免费提供的但绝对没有许可条款的代码做什么呢?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.