Drupal项目中的非代码贡献:超越传统的对等生产观念

需积分: 5 0 下载量 164 浏览量 更新于2024-07-09 收藏 1.35MB PDF 举报
" 本文是一篇关于开源软件社区贡献模式的研究论文,主要聚焦于Drupal项目。Drupal是一个全球知名的开源内容管理系统,拥有超过一百万的参与者,支撑着近2%的全球网站。研究发现,尽管“以代码为中心”的贡献在开源社区中占据了主导地位,但社区内的非代码贡献,如组织活动、指导新人等“面向社区”的活动同样具有重要价值。这些贡献往往被忽视,缺乏足够的可见性。通过对Drupal社区的深入定性研究,作者旨在拓宽我们对同行生产(如 Commons-based Peer Production)社区贡献的理解,强调那些通常不可见的新贡献形式。 文章由David Rozas、Nigel Gilbert、Paul Hodkinson和Samer Hassan撰写,并在《Frontiers in Human Dynamics》期刊上发表。研究过程经过同行评审,由Nathan Schneider、Dariusz Jemielniak和Brian C. Keegan等人审阅。研究的核心观点是,尽管代码是开源项目中的关键要素,但沟通、协作和社区建设等活动同样是项目成功不可或缺的。这些活动对于维护社区健康、促进知识共享和新成员融入等方面具有重要意义。 文章提出,传统的对等生产贡献观念过于强调代码编写,而忽视了其他形式的贡献。例如,用户论坛的讨论、问题解答、教程编写、社区聚会的组织等,都是社区成员积极参与并推动项目发展的重要方式。这些活动不仅增强了社区的凝聚力,也促进了项目的持续创新和改进。因此,论文倡导更加全面地认识和评估对等生产社区中的各种贡献,以鼓励和支持多样化的参与方式。 在Drupal社区中,非代码贡献者可能包括提供用户反馈、翻译文档、维护模块或主题、以及在社区活动中担任志愿者的角色。这些活动虽然在数字协作平台上可能不太显眼,但对项目的长期稳定性和增长至关重要。研究强调,提升这些贡献的可见性和认可度,能够激励更多人参与并为社区带来更大的活力。 这项研究为理解开源社区的贡献模式提供了新的视角,强调了“面向社区”的活动在开源项目中的重要性,挑战了“代码即一切”的传统观念。这一发现对于开源软件项目管理、社区建设以及相关领域的研究具有深远的影响,提醒我们在评估贡献时,不应只局限于代码,而应全面考虑所有对项目发展有贡献的行为。"

The website encountered an unexpected error. Please try again later. AssertionError: Cannot load the "commerce_order_item_type" entity with NULL ID. in assert() (line 295 of core\lib\Drupal\Core\Entity\EntityStorageBase.php). assert(, 'Cannot load the "commerce_order_item_type" entity with NULL ID.') (Line: 295) Drupal\Core\Entity\EntityStorageBase->load(NULL) (Line: 488) Drupal\Core\Entity\EntityBase::load(NULL) (Line: 65) commerce_ticketing_form_commerce_product_variation_type_form_alter(Array, Object, 'commerce_product_variation_type_add_form') (Line: 562) Drupal\Core\Extension\ModuleHandler->alter('form', Array, Object, 'commerce_product_variation_type_add_form') (Line: 840) Drupal\Core\Form\FormBuilder->prepareForm('commerce_product_variation_type_add_form', Array, Object) (Line: 284) Drupal\Core\Form\FormBuilder->buildForm(Object, Object) (Line: 73) Drupal\Core\Controller\FormController->getContentResult(Object, Object) call_user_func_array(Array, Array) (Line: 123) Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 121) Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97) Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 169) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106) Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23) Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 718) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)

2023-06-02 上传