Questions tagged «open-source»

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


3
为什么必须将我的开源软件许可证保留在根目录下?
几乎所有开源软件许可证都要求(或者至少律师通常建议他们要求)用户将完整许可证包含在他们要保护的项目的根目录中。 与我交谈的一位律师建议,这是CD时代的遗产,当时有必要在珠宝盒中包括完整的许可证。 但是今天,我们生活在云时代。例如,为什么我不能简单地在我的网站上托管完整的许可证,而在源文件的标题中包含该许可证的标题+ URL? 奖励:如果大家普遍同意必须在根目录中保留完整的许可证,那么FSF的OSI为什么不批准您可以通过URL引用的许可证,这又是什么使某人无法创建该许可证?

3
开源,版权和普通错误修正
假设开发人员已为其封闭源商业应用程序开发了一个库。由于他们想回馈给开源社区,因此他们在GPL等标准下发布了该库,但是继续在自己的应用程序中使用它。由于它们拥有版权,所以很好。 现在,GPL版本的用户发现了一个错误,对其进行了修复并将修补程序提交给原始开发人员。据我了解,要在其封闭源应用程序中使用此错误修正,开发人员需要获得提交者的许可。如果提交者拒绝,则开发人员必须找到另一种方法来修复封闭源版本中的错误。 但是,如果错误修正本身真的不重要怎么办?像正确初始化变量还是检查空指针?给定错误描述,任何半熟练的程序员都可以在几分钟内找到并解决问题?此补丁仍受版权保护吗?还是原始开发人员可以在未经提交者同意的情况下在其封闭源应用程序中实施相同的修复程序? 注意:这确实是一个假设的场景,而不是那些“我的“朋友”有此问题”的问题

2
使用未经修改的GPL(v2 +)程序作为核心依赖项运行软件即服务:是否必须发布SaaS源代码?
我正在设计一个软件即服务项目,该项目只能在线访问。我可能对GNU GPL(v2或更高版本)所涵盖的可执行文件有严格的依赖性。 我了解我的代码(如果要分发的话)也必须按照GPL条款进行分发。我非常确定,通过网络运行服务不会传递/分发代码。因此,我是否认为可以使用GPL依赖关系而不必披露我的所有代码是否正确? 为此,我可以提供一个具体的示例:假设我在在线文档处理系统上进行设计,就像Google Docs。我希望能够基本上将任何文件类型上传到系统中,并将其转换为任何内部格式。与其尝试创建一个转换器,不如使用一个我知道的可以进行转换的现有程序。该程序是具有GNU GPL v2(或更高版本)许可的可执行文件。我可以在不提供源代码的情况下合法拥有软件即服务吗?

3
开源项目中是否有代码审查?如果是这样,使用什么工具来做到这一点?
我知道在商业开发中大力推动代码审查。但是,代码审查是在开源软件中使用还是基于信任?如果是这样,那么他们的表现如何?[是否是延迟提交,即“预提交环境”,是否存在允许将该补丁发送给另一个开发者的工具]? 是否有任何使用代码审查的项目? 据我了解,Linux内核主要基于提交者的信任。MySQL是基于主要作者的认可和对性能的影响。


3
GitHub:是否有用于管理问题列表和项目积压的外部工具
最近,我在GitHub上发布了我的一个项目1,当我探索该站点的功能时,我注意到它们有一个相当不错的问题跟踪部分。 我想使用该部分,因为a)他人可以根据需要报告错误,b)其他人可以看到我知道的错误。但是,正如其他人指出的那样,为了创建项目待办事项,不能优先考虑问题列表。到目前为止,我的待办事项一直是一个文本文件,但是我希望能够将其集成,这样就不会在不同的地方维护相同的信息。 拥有一个完整的清单,这也是我们在工作中经常实践的事情,它非常有用,因为我可以打开一个文件,从第1行开始,一次坐着解开2或3个项目,而不必回到完整的问题/故事桶。GitHub不提供此功能。 GitHub所提供的是一个非常不错且干净的API,因此问题可以轻松导出到其他任何东西。我搜索了是否还有其他网站(例如Trello)与GitHub问题集成在一起,但没有找到任何东西。 有人知道这样的产品,服务或离线工具吗?那些使用GitHub的人,您在管理积压方面有什么经验?我有点讨厌手动管理两个断开连接的列表的想法,就像有人似乎对Wiki项目页面所做的那样。 1-无耻的插头不允许这个网站吗?搜索但没有找到明确的答案。如果这是错误的做法,请停止操作,不要继续阅读 作为开发人员,我厌倦了每天浏览30组相同文件夹的麻烦,因此我编写了一个可自动折叠的小实用程序,该实用程序固定在桌面上,可以轻松访问经常使用的文件夹。

2
如何使用废弃的github项目中的代码
我最近遇到了我可以真正使用的github项目,但似乎被放弃了,有很多问题和重要的拉取请求,也许有100多个fork。通常,没有替代项目。 我可以按原样使用代码吗?我会选择叉子而不理会其他人吗?是否可以从拉取请求中手动拉入代码?怎么样?我或其他任何人是否有可能以某种方式组织和从原始编码员遗留的地方起飞?

9
对我而言,在开源项目中开始使用版本控制的最佳方法是什么?
有人建议,由于项目的规模和缺乏技能,我将其开源,因此我签出了Google Code,开始制作一个项目,现在问我是否要让该项目具有Git,Mercurial或Subversion?代码托管。 我什至不知道什么是代码托管,而搜索只是让所有这些问题之间的争论让我更加困惑,而且由于Google Code询问我想要哪种类型的许可证,这种情况甚至变得更糟。 我想我不太了解开放源代码的真正含义,有人能大致解释一下这是什么吗?非常感激。 编辑在这三个版本的代码托管上,已经收到了很多不错的答复,但是我认为我无法传达一个真正的问题:基本上我不知道这个开源的东西是如何工作的,为什么还要在这样的地方托管代码? ?这是否意味着我必须从当前托管中删除该站点,或者这是一种完全不同的托管类型?当我使网站开源时会发生什么,我拥有什么权利,我放弃了什么权利。它是如何工作的,人们只是来免费向我扔代码吗?也许这些是愚蠢的问题,如果是这样的话,那么我想我需要愚蠢的答案,除了共享代码的概念外,我真的不知道什么是开源。

2
发布开源PHP应用程序的最佳实践
我是一名以PHP为生的开发人员,但之前从未从事过任何开源项目或为任何开源项目做出过贡献。 我正在开发自己使用的CMS。我有一个可以正常工作的原型,我认为一旦准备就绪(可能需要几个月的时间),PHP社区可能会对这感兴趣。 我是一个相当有信心的开发人员,但是在某些领域我缺乏知识,尤其是在涉及开源问题时: 公开项目和/或找到其他可能对协作感兴趣的最佳方法是什么 我的CMS由CakePHP提供支持,并且基本上位于其之上。我在GitHub上创建了CakePHP项目:我以前使用过版本控制系统(SVN),但对于GIT来说还很陌生,因此请确保我以“最佳方式”进行操作 如何找到许可问题?哪个开源许可证最适合我的应用?另外,我的项目是从许多其他开源项目中借用的,例如,我有一些代码段(我对此进行了重大修改),但是其中有版权/许可声明-我不知道我在履行方面的义务保留这些 这些只是我所遇到问题的几个例子,但我觉得那里必须有一些对我有用的资源。哪里是最好的入门场所,哪些是覆盖这些问题的最佳社区/站点?我环顾四周,但想不出太多...

8
像免费啤酒一样免费
几年前(更确切地说是在1998年),使用英语的人们开始混淆使用“ 免费 ”一词,从而使自由软件基金会的一些成员创建了一个新术语:“ 开源”(http://www.gnu。 org / philosophy / free-software-for-freedom.html) 人们最担心的是人们对言论自由的误解,对言论自由的误解,对啤酒的理解也是如此。(请参阅维基百科:http : //en.wikipedia.org/wiki/Free_and_open_source_software)。 这里的免费涉及与使用专有软件“版权”(和专利)相反的使用和共享软件的自由。它是由Ri​​chard Stallman于1986年首次提出的。核心是自由集: 自由0:出于任何目的运行程序的自由。 自由1:自由学习程序的工作原理,并对其进行更改以使其按您的意愿进行操作。 自由2:自由分发副本,以便您可以帮助您的邻居。 自由3:可以自由地改进程序,并向公众发布您的改进(通常是修改版本),从而使整个社区受益。 好吧,我们都知道这一点(至少从那时起就一直关注此讨论的人)。 在我看来,开源一词澄清了我们。但是自由1已经确保了这一点。 在其他语言中(例如西班牙语或葡萄牙语),我们可以说自由是自由或自由。免费的另一种含义,就像免费啤酒一样,是免费的。因此,对于其他人来说,从来没有混淆(实际上,只有在阅读有关它的英文文章时)。 2号自由保证了我随意分发副本的权利。我了解,因为我不需要向所有人赠送给我的朋友或学生的每份副本,都要向所有者支付任何版权费。当然,我们会同意这一点。最终,这意味着我可以免费提供(免费)副本,也可以为副本付费(支持,媒体等)。 现在,如果可以免费(免费)赠送东西,那么它是免费的(免费)。无论某人或某企业想要出售,还是有免费途径(免费,免费)(网站,下载,朋友等)。 因此,以我的非英语观点,这里有3种不同的东西。无疑,最重要的是软件的自由(自由,自由,自由,自由,所以您可以拥有所有想要的东西)质量。另一个是开源的(因此您可以看到其中的代码)。最后一个是另一种伟大的品质,那就是存在免费的(免费的,免费的)软件。 免费(免费)并不意味着它是免费的(免费)。您可以有出售,付款和免费获得/发送商品的人。不过,这是一种品质。 我不明白的是,为什么经过这么多年,FSF的人们仍然会谨慎地说,还有免费的(免费的)软件。是的,免费,就像免费啤酒一样。如果是质量,为什么要隐藏它?只是为了防止混乱?好吧,让我告诉你这个消息:从一开始就已经引起了混乱。当我开始学习这个主题时,我还活着并且对此很感兴趣,而且我记得关于这个免费,免费或不受限制的讨论。 经过大量咨询,律师帮助写了第一个可以在法庭上使用的“许可证”,引入了“ copyleft”一词,并“清楚”地表明免费与价格无关。 当时,由于新颖性好,我同意强调自由的这半部分。但是现在我们结束了。现在不是时候告诉人们我们也有免费的吗? 三种品质胜于两种品质:livre / gratis / open。 那么,为什么不告诉人们免费软件可以只是免费的呢? 编辑: 更客观地说:1-免费(自由)软件一定是免费(免费)吗?2-是免费的(免费)软件,一定是免费的(自由)。 第一个是重要的问题,第二个是用来存放快速打字机的(我们都知道答案)。 讨论中提出了另一个问题:免费(免费)质量吗?(我认为在问题简介中这是理所当然的)

3
放弃软件的代码是否曾经正确死亡?
我的印象是,随着时间的推移,将生成越来越多的开源代码,并将其添加到各种免费或部分免费的存储库中,然后通常被废弃。 是否有任何公认的废弃代码处理标准?这应该由存储库强制执行,还是由原始代码作者来决定?

1
OSS项目中的集成测试-如何处理带有身份验证的第三方?
我的一个开源项目是一个备份工具,该工具可从GitHub,Bitbucket等进行脱机存储库备份。 它调用托管者的API来获取存储库列表,然后使用Git / Mercurial /任何克隆/将存储库拉到本地计算机。 因此,我在集成测试中通过身份验证调用了GitHub API。 (并且当克隆/拉动功能完成时,可能会有测试从GitHub克隆存储库,并且还需要进行身份验证) 我创建了一个用户和一个组织,专门用于这些集成测试。 问题:我不能只是在源代码中的某个地方对密码进行硬编码,因为它是开源的,并且代码在GitHub上是公开的。 我现在在做什么 在测试中,我从环境变量中获取所有用户名,密码和存储库名称。 这是一个例子: config.Name = TestHelper.EnvVar("GithubApiTests_Name"); config.Password = TestHelper.EnvVar("GithubApiTests_PW"); (TestHelper.EnvVar是一个帮助程序方法,它获取环境变量的值并在不存在环境变量时引发异常) 然后,我有一个批处理文件,用于设置这些环境变量。 真正的(environment-variables.bat)在构建脚本中以及在执行测试之前被调用,但是在源代码控制中被忽略,因此它实际上不在我的存储库中。 什么是源控制environment-variables.bat.sample,它设定了相同的环境变量,而是用假密码: rem copy/rename this file to environment-variables.bat echo Setting environment variables for integration tests... set GithubApiTests_Name=scm-backup-testuser set GithubApiTests_OrgName=scm-backup-testorg set GithubApiTests_PW=not-the-real-password set GithubApiTests_Repo=scm-backup 因此,我可以将存储库克隆到我的计算机上,将此文件重命名为environment-variables.bat,用真实的密码替换假密码,所有集成测试都将起作用。 这也适用于持续集成-我正在使用AppVeyor,并且可以在Web UI中设置这些环境变量。 我对此不满意 我认为这对于OSS项目不是一个好的解决方案,尤其是对于该项目不是这样: 从理论上讲,我的项目的贡献者现在可以通过以下方式运行集成测试: …

3
您将如何寻找合作者?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 6年前关闭。 对于软件/应用/东西,我似乎源源不断地出现了或多或少的原始想法,或多或少的好主意,这些想法还没有被我想到。有时,我决定开始实施我的想法。几个小时后,我得到了我想要构建的一个体面的,或多或少的工作原型。然后,我的闹钟响了,我不得不回到现实世界,厌倦了地狱。在大多数情况下,我开始从事的工作永远都没有完成。有时候,没关系。有时候,老实说,我觉得这真是令人讨厌。 但是我意识到有像GitHub这样的网站,还有很多其他编码人员。是否有一个地方可以发布想法,提议,概念或边缘代码,以便找到对项目合作感兴趣的人? 编辑:我知道“通常的方式” –持续一段时间自行开发,开源代码,在开发博客,IRC或其他地方提及您的项目;最终吸引了其他人。 我正在寻找的是在项目早期与其他开发人员(例如,不同专业领域的人员)建立联系的地方。

2
如何管理来自BSD许可项目的贡献者的版权声明
该LICENSE文件中包含以下BSD许可证: Copyright (c) 2006-2016 SymPy Development Team All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: a. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. …

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.