Como contribuir para o DSpace

Esse artigo abaixo é uma tradução minha para a página da wiki do DSpace How to Contribute to DSpace, acessada em 01/04/2013.

Formas de contribuir e participar

Você não tem que apenas contribuir com o código! Há outras maneiras que você pode contribuir:

  • Comunicação – Use as listas de discussão, o Wiki e o canal de chat IRC DSpace para se comunicar com a comunidade.
  • Participação – Participe de grupos de usuários, conferências, eventos de biblioteca, reuniões de desenvolvimento – e qualquer outro local onde os usuários DSpace reúnem para compartilhar informações e idéias. Se você é um desenvolvedor (ou está apenas interessado ​​em discussões sobre desenvolvimento), participe das reuniões semanais Developer Meetings. Se você é um gerente de repositório, você pode ser voluntário para o DSpace Community Advisory Team ou participar das reuniões / discussões on-line.
  • Teste – Faça o download e experimente versões beta, forneça relatórios de erros, experiências, feedback. O servidor demo DSpace oferece um lugar para testar a versão mais recente. Se você encontrar um bug, relate-o através do Issue Tracker.
  • Desenvolvimento – Contribua com correções de bugs, novas funcionalidades, ciclos de desenvolvimento. Contribuir com o código é muito mais fácil do que você imagina! Veja como contribuir com o código e Code Contribution Guidelines para mais detalhes.
  • Tradução – Traduzir a interface do usuário DSpace para a sua língua, usando o novo language pack existente desde a versão DSpace 1.3. Veja I18nSupport para mais detalhes.
  • Protótipo – A melhor maneira de obter apoio para uma idéia é construir e compartilhar um protótipo. Se você gostaria de compartilhar protótipos existentes, consulte Code Contribution Guidelines para mais detalhes.
  • Implantação – Compartilhe suas experiências na implantação de DSpaces em organizações e diferentes situações, em pequenas e grandes escalas.
  • Suporte – Torne-se membros ativos nas mailing lists, responda a dúvidas de outras pessoas e ajude-os a resolver os seus problemas técnicos.
  • Experimente – Pegue o sistema para “dar uma volta”, experimente-o com diferentes tipos de conteúdo e cenários; diga a todos o que você encontrar. Novamente, o servidor demo DSpace oferece um lugar para experimentar a versão mais recente do DSpace. (Se você estiver rodando um grande teste de escalabilidade no servidor de demonstração, por favor, avise-nos por e-mail através das mailing lists “dspace-devel”.
  • Doe conteúdo e metadados – Para testar e experimentar o DSpace, coleções de testes livres de direitos de uso são necessárias. Contacte-nos através das mailing lists se você tiver conteúdo para doar para testes.
  • Solicitar novos recursos / compartilhar idéias – Existe algo que você realmente precisa de DSpace ou não está funcionando direito? Solicite novos recursos / melhorias ou relatórios de bugs relatório através do Issue Tracker. Você também pode votar sobre os recursos existentes, ou adicionar seus próprios comentários / sugestões. Ambos podem ajudar os desenvolvedores a decidir quais questões são as mais importantes para a comunidade. Consulte a seção sobre Como contribuir com ideias ou sugerir novas funcionalidades para mais detalhes.
  • Ajuda a melhorar a documentação – Nossa Documentação DSpace é agora gerenciado diretamente através de uma nova seção do nosso Wiki: DSpace 1.8 Documentation. Embora os usuários Wiki normais não podem editar essa área da Wiki, você sempre pode adicionar comentários para adições / alterações / sugestões. Se você estiver interessado em contribuir de forma mais formal, seja voluntário para ajudar através de uma das mailing lists, e nós podemos adicionar ao nosso Time de Documentação e fornecer-lhe os direitos de acesso para editar / melhorar a documentação diretamente.
  • Deixe-nos saber se existe alguma maneira de facilitar o processo de contribuição para o DSpace
  • Não seja tímido! Contribuições não tem que ser 100% polido ou perfeito, ninguém vai pensar menos de você. “Compartilhar cedo, muitas vezes partes” é um conhecido mantra do código aberto. Quanto mais cedo você contribuir com alguma coisa, os outros mais cedo podem ajudar com o polimento, e você já não terá que manter a personalização contra a evolução da plataforma central DSpace, uma vez que será parte da plataforma!

 

Plataformas para Contribuição e Participação

  • Este Wiki – Ajude tornando esse Wiki útil, conciso e com informações atualizadas:
    • fornecendo conteúdo
    • corrigindo conteúdo
    • removendo conteúdo obsoleto
    • reestruturando ou melhorando o conteúdo
  • As Mailing Lists – Torne uma parte ativa na discussão sobre DSpace.
    • compartilhe suas opiniões sobre o DSpace
    • faça perguntas
    • forneça feedback
  • Documentação Oficial do DSpace
    • adicione comentários aos documentos existentes, para ajudar a melhorar o conteúdo
    • ser voluntário para ajudar a melhorar o o conteúdo
  • DSpace GitHub – O GitHub permite o desenvolvimento de código social e colaborativo! Você pode criar sua própria conta GitHub (é grátis) para começar e então “fork” nosso repositório e inicie criando suas próprias modificações (que podem ser enviadas de volta para nós através de “Pull Request” no GitHub). Para muito mais informações consulte Development with Git.
  • The Feature/Issue Tracking System (JIRA) (use o mesmo login da Wiki)
    • relatórios de bugs
    • solicitação de feature/novos recursos
    • patches
    • votar sobre problemas existentes ou adicionar seus próprios comentários
    • “assistir” sobre problemas existentes (você receberá um e-mail automaticamente assim que um comentário for adicionado ou o status do problema for atualizado)
    • trabalhar numa feature/issue (basta adicionar um comentário ao problema)
  • O canal de IRC DSpace – Apenas uma maneira informal de discutir idéias e fazer perguntas. Você também pode ajudar outras pessoas que precisam de alguma ajuda imediata.

 

Como Contribuir com Idéias ou Sugerir Novas Funcionalidades

Recebemos sempre novas idéias ou sugestões para novas funcionalidades. No entando, existem algumas coisas que você deve ter em mente que podem aumentar as chances da sua funcionalidade ser incluída no DSpace!

1. Faça com que os desenvolvedores DSpace conheçam o seu pedido

Você deve submeter suas idéias ou requisições de funcionalidades para o Issue Tracking System (JIRA) (utilize o memo login da Wiki). No entanto, antes de passar pelo processo de apresentação de suas idéias é melhor pesquisar o Issue Tracker para ver se outras pessoas já solicitação essa funcionalidade. Se alguém pediu esse recurso, você pode adicionar comentários com as suas idéias ou  votar para que o recurso seja adicionado/implementado.

Se essa funcionalidade não foi solicitada por ninguém, faça o pedido! (Não se preocupe, se ele for um pedido dublicado, você ficará sabendo). Seu pedido entrará numa fila, onde passará por uma revisão completa.

Algumas coisas para ter em mente quando for fazer um pedido:

  1. Forneça sempre o máximo de detalhes que você conseguir. Um parágrafo para descrição é bom, mas alguns parágrafos com alguns casos de uso é ainda melhor. Geralmente é muito difícil trabalhar com uma única sentença para descrição e nós podemos pedir-lhes mais informações para entender o que você está pedindo.
  2. Se você tem casos de uso ou necessidades locais, por favor, descreva para nós. Os casos de uso realmente ajudam os desenvolvedores a entender por que esse recurso é importante. Além disso, casos de uso podem ajudar a localizar outras instituições com necessidades semelhantes (que podem estar dispostos a ajudar no desenvolvimento dessa função).
  3. Espere que provavelmente teremos que lhe fazer algumas perguntas. Mesmo com descrições detalhadas/casos de uso, há chances de termos que acompanhar com você durante o andamento para mais alguns detalhes ou para ter certeza de que entendemos exatamente o seu pedido. Então, por favor esteja disposto a responder perguntas ou pedidos de informações adicionais. Sempre que alguém comentar sobre um problema recém-criado você receberá um e-mail do sistema Issue Tracker.

2. Anuncie seu Pedido para Outros e Ajude-nos a Encontrar Um ou Dois Desenvolvedores Voluntários

Todos os nossos desenvolvedores/commiters DSpace são voluntários. Vamos repetir: Todos os nossos Desenvolvedores/Commiters do DSpace são voluntários. Isso significa que o núcleo do time de Desenvolvimento DSpace (ex: Commiters) nem sempre têm controle sobre quanto tempo eles podem gastar no desenvolvimento de novas funcionalidades para o DSpace. Em muitos cados, os Commiters só podem trabalhar em novas funcionalidades que são de interesse para a instituição/universidade onde trabalham.

Portando, mesmo que os Commiters concordem que uma nova funcionalidade pareça valer a pena, muitas vezes precisamos primeiro encontrar uma instituição que esteja disposta a dar tempo de seu desenvolvedor para o desenvolvimento dessa funcionalidade.

Você pode ser capaz de nos ajudar a acelerar este processo! Veja o que você pode fazer para ajudar:

  • Se você tem um desenvolvedor local que tem tempo para trabalhar nessa funcionalidade, deixe-nos saber quando você enviar a questão (ou adicionar um comentário mais tarde). Se um colaborador local já pode analisar o pedido/funcionalidade, nós só precisamos aprovar o código (ver Diretrizes de Contribuição de Código para detalhes sobre o processo de Aprovação/Aceitação de código do DSpace).
  • Se você souber de outras instituições com necessidades semelhantes, diga-lhes para “votar” no seu pedido pelo Issue Tracker, ou adicionar os seus próprios casos de uso/comentários. Além disso, se algum deles tem um desenvolvedor com tempo para desenvolver esse recurso, avise-nos!
  • Se você não tem certeza se outras instituições podem ter essa necessidade, você pode promover o seu pedido enviando um e-mail para as mailing lists ‘dspace-general’ or ‘dspace-tech’ , pedindo feedback para outras pessoas. Felizmente outras pessoas podem adicionar comentários/sugestões ou até mesmo nos apontar a direção sobre um desenvolvedor voluntário interessado.
  • Mesmo se não pudermos encontrar um desenvolvedor interessado na comunidade, muitos Commiters do DSpace irão analisar o pedido e ver se um ou mais Commiters têm tempo para se dedicar ao trabalho. Em alguns casos um commiter pode ser capaz de convencer sua instituição da importância da nova funcionalidade (novamente, os casos de uso são amostras úteis para convencer instituições da importância da funcionalidade.

3. Responda a Revisão Formal do seu Pedido (se necessário)

Cada solicitação de recurso tem a garantia de ter uma revisão formal por pelo menos um dos dois grupos (possivelmente ambos):

  1. Os Commiters do DSpace – Eles analisam cada pedido de funcionalidade ou relatório de bug que vem do sistema, muitas vezes em reuniões semanais de desenevolvimento – as Developer Meetings. Nota: Devido a atrasos ocasionais, pode haver um atraso de várias semanas/meses antes do seu pedido ter uma revisão formal dos Commiters. No entanto, é interessante notar que o seu pedido será imediatamente enviado a lista ‘dspace-devel’, onde os desenvolvedores individuais podem fornecer feedback imediato antes da revisão formal ocorrer. Assim, você pode não precisar esperar tanto tempo para uma resposta imediata, ou mesmo para um desenvolvedor se voluntariar para trabalhar nessa funcionalidade.
    • Para mais informações sobre as questões que Commiters estão planejando a revisão em sua próxima reunião, consulte a agenda publicada na página Developer Meetings. Observação: Os Commiters sempre revisam as questões na ordem em que são recebidas. No entanto, como mencionados acima, todas as solicitações de novas funcionalidades são enviadas para ‘dspace-devel’, portanto, se há interesse imediado entre os desenvolvedores, você pode achar que vai receber mais feedback imediato e/ou perguntas.
  2. DSpace Community Advisory Team – Eles revisam e solicitam feedbacks adicionais sobre qualquer pedido de nova funcionalidade. Esse time é composto de Gerentes de Repositórios (ou similar) que oferecem feedback adicional para os Commiters em novas funcionalidade.

Depois de uma revisão formal, um comentário será adicionado ao seu pedido (que também vai gerar um e-mail para você). Esse comentário vai detalhar os resultados da análise inicial, juntamente com todas as perguntas que surgiram. Se você tiver tempo, por favor, responda a essas perguntas ou encoraje outros a respondê-las. Estas perguntas são frequentemente usadas para nos ajudar a entender melhor o pedido para que possamos garantir uma compreensão comum.

4. Mantenha Contato com o Pedido

Deixe-nos saber se você precisa de atualizações sobre o status da solicitação de recursos. Basta adicionar um comentário na sua questão, solicitando o status mais recente e nós vamos responder o mais breve possível.

Existem várias razões pelas quais um pedido de recurso não pode ter tido qualquer atividade recente:

  1. Podemos ter um backlog de pedidos e apenar não ter chegado a revisão formal ainda.
  2. Nós precisamos encontrar um desenvolvedor (ou commiter) que tem tempo para desenvolver essa função. Nestes cados, pode-se localizar outras instituições que possam estar interessados, que muitas vezes podem ajudar na busca de um desenvolvedor voluntário.
  3. Nós estamos esperando respostas de uma ou mais questões colocadas em comentários anteriores. Se precisarmos de mais esclarecimentos você deve ficar sabendo.
  4. Nós estamos fazendo a “Revisão de Código” em qualquer código apresentado, para garantir que é seguro e estável o suficiente para ser liberado no DSpace. Para mais informações sobre o nosso processo de aprovação de código, veja Diretrizes de Contribuição de Código.
  5. Também é possível que tenha um ou mais desenvolvedores trabalhando ativamente no recurso, mas que o trabalho ainda não está num estado completo.

5. Uma vez que seu Pedido é Aceito no DSpace

Se o seu pedido for aceito formalmente no DSpace, você receberá um e-mail assim que o pedido for “Close” ou “Resolve” no nosso Issue Tracker. Naquele momento, o Issue Tracker será atualizado para indicar em qual versão do DSpace este novo recurso será incluído.

Uma vez que a versão DSpace é liberada, o seu nome (e um link para o seu pedido inicial) aparece em nossa seção Version History da documentação DSpace. Você também será adicionado à nossa lista de todos os DSpaceContributors conhecidos. Essa é a nossa maneira de garantir que você receberá reconhecimento por suas contribuições para o DSpace!

Usando o mantra: “compartilhar cedo, muitas vezes em partes”, vou parar por enquanto por aqui, e continuarei aos poucos…

How To Contribute Code or Development Time

Where to Obtain the Source Code

If you plan to develop new features for DSpace, we recommend forking and cloning our Source Code via Github:

More information on using DSpace + GitHub is at: Development with Git

Development Hints/Tips
More hints/tips on developing with DSpace are available in the following locations:

Our Development Policies / Mantra

For more information on our DSpace Code Approval/Acceptance process (i.e. how to get your code accepted in DSpace), please see our Code Contribution Guidelines.

The overriding mantra is share early, share often. Here are a few things to consider:

  • Please be sure to share your plans with the DSpace community on the ‘dspace-devel’ list (or via one of the weekly Developer Meetings) before embarking on any sizable development effort. This will ensure you achieve your goals in a way that is consistent with the DSpace architecture and plans of the rest of the community. This will minimize the chances of a scenario where you have invested a large amount of time and effort into a body of code that does not fit in with the DSpace architecture or the consensus of the community, meaning that you need to spend further time refactoring your code or worse, ‘forking’ the code.
  • Develop incrementally; try and implement and contribute a basic form of your feature as soon as possible, rather than aiming to implement a complete and ‘polished’ solution. This will help ensure you’re on the right track with regards to the rest of the DSpace community and platform. The sooner your code is part of the core code base, the less time you will have to spend ‘chasing’ the main code base, i.e. keeping your changes up-to-date with that core code base.
  • Obtain the DSpace code using GitHub. This will make code management much easier. It’s very simple to do; see Developer Guidelines and Tools and Development with Git.
  • Read Code Contribution Guidelines to ensure you are following DSpace conventions. This page also gives you a sense of the DSpace Code Approval processes.

Looking for a Project to Work on?

Do you have a developer (or two) with some extra time? Are you looking for ways that you can help the community and improve your local DSpace?

Please, take a look at our current listing of ‘unassigned’ New Feature requests or DSpace Improvements. Any help you can provide would be much appreciated!

But, before you get started, please make sure to do the following:

  1. Add a comment to the Feature/Improvement you plan to work on, letting us know you will work on it.
  2. If you’d like more input on the feature/improvement, or potential requirements, post your questions and/or plans as a comment as well.
  3. Make sure your developer is following our Code Contribution Guidelines. If you have questions about any guidelines, or want some early feedback/suggestions from developers, please get in touch with us on the ‘dspace-devel’ listserv. We’d be glad to help make suggestions on ways in which to implement the new feature, and the earlier you get in touch, the earlier we can give you feedback on whether there’s anything you may need to change before we can accept it as part of out-of-the-box DSpace. See also the Code Review Process on the Code Contribution Guidelines page.
  4. If you run into any “gray areas”, ask questions! If it’s a development issue, contact the Developers via the ‘dspace-devel’ listserv. If it’s a policy issue or requires feedback from Repository Managers, get in touch with the DSpace Community Advisory Team, as they can help you query the community for feedback and/or provide you with their immediate opinions

Most of all: Thanks! The more individuals/institutions can give back to DSpace, the better the software is for everyone!

Submitting Code Changes

See Code Contribution Guidelines for guidelines that all submissions must adhere to. That page also describes the general process for how a patch/contribution gets accepted into DSpace. The mechanics of creating a patch file are described in Developer Guidelines and Tools.

Copyright and Licensing of Code Contributions

In the words of the PostgreSQL Global Development Group, which also uses the BSD license, “The simplest explanation of the licensing terms is that you can do whatever you want with the product and source code as long as you don’t claim you wrote it or sue us.” The BSD License under which DSpace is made available does not require you to make your changes public or open-source. It does allow for proprietary commercial use, and for DSpace-derived creations to be incorporated into proprietary commercial products. Works based on DSpace may even be released under a proprietary license (but still must maintain the license requirements).

You are encouraged, but not obligated, to share your contributions with the DSpace community. If you choose to do so, you will need to sign over copyright and intellectual property rights of your code to DuraSpace, to be distributed via the BSD license. DuraSpace is a 501c(3) non-profit established to be the legal guardian of the code and to remain mission centric on providing free and open source software for management and archiving of digital works. Also, your code cannot rely on any non-BSD compatibly licensed code.

The BSD license means there is no advantage to be gained by your university (or anyone) retaining copyright, and that by having different copyright holders of different sections of the code, we will be rendered inflexible regarding copyright and licensing in the future, we do ask that you transfer copyright of your modifications to DuraSpace.

You will receive full acknowledgment for contributing the code; so we do encourage you to incorporate your enhancements to DSpace’s functionality for everyone to benefit. You will also see benefits since you will neither have to re-incorporate the changes with new versions of DSpace, nor maintain this code solely yourself!

If your code contribution uses third-party products/tools, you should also double-check that they use a compatible open source license. Compatible licenses are listed at: Licensing of Contributions section of the Code Contribution Guidelines page.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s