diff --git a/opensym2017/content/02-spb.tex b/opensym2017/content/02-spb.tex index 4596164..5c829ed 100644 --- a/opensym2017/content/02-spb.tex +++ b/opensym2017/content/02-spb.tex @@ -57,3 +57,4 @@ relaxed trademark usage policy by the original vendor that do not stop eventual competitors from adversiting services for that same software. Inclusion in the SPB also has extra requirements, such as having a public version control system, installation manual, hardware requirements specification, etc. + diff --git a/opensym2017/content/03-requirements.tex b/opensym2017/content/03-requirements.tex index b12de25..1275162 100644 --- a/opensym2017/content/03-requirements.tex +++ b/opensym2017/content/03-requirements.tex @@ -80,14 +80,14 @@ The new SPB platform is fully an integrated environment, as we can see in Figure \ref{fig:requirements}, being very advanced comparing to other related projects and initiatives. For example, the USA government has a platform designed to improve access to the federal government developed -software\footnote{\url{https://code.gov}. Code.gov is an interface to organize -the USA government projects and, in short, make easy that their users and -developers obtain some information and access their source code repositories at -GitHub. However, there are not social networking and CMS features, as well as, -other communication resources provided by that platform. +software\footnote{\url{https://code.gov}}. Code.gov is an interface to +organize the USA government projects and, in short, make easy that their users +and developers obtain some information and access their source code +repositories at GitHub. However, there are not social networking and CMS +features, as well as, other communication resources provided by that platform. Also, there are two initiatives in Europe: -OSOR\footnote{\url{https://joinup.ec.europa.eu/community/osor} and +OSOR\footnote{\url{https://joinup.ec.europa.eu/community/osor}} and OW2\footnote{\url{http://ow2.org}}. The Open Source Observatory (OSOR) is a community hosted in the JoinUp platform powereded by the European Commission. OSOR aims exchanging information, experiences and best practices around FOSS diff --git a/opensym2017/content/04-architecture.tex b/opensym2017/content/04-architecture.tex index 331c82b..4227853 100644 --- a/opensym2017/content/04-architecture.tex +++ b/opensym2017/content/04-architecture.tex @@ -27,14 +27,12 @@ For the first requirement, we identified four main systems that required specialized teams for work in the integration process. The teams learned how to develop for their assigned systems and contributed to the original communities, so that the version we used were not significantly different from -the original. Unfortunately, the deadlines at the end of the project forced us -to use our own version before the features were fully reviewed and integrated -into the upstream of the project. +the original. At the end of the project, SPB portal was composed of more than ten systems among them we can highlight: Colab, Noosfero, Mezuro, Gitlab, Mailman, Postfix, Munin, and so forth. The following sections explained a little bit of Colab, -Noosfero, Mezuro and Gitlab (the main tools which we contributed). Later, we +Noosfero, Mezuro, and Gitlab (the main tools which we contributed). Below, we described how we integrated those tools and conclude with the deployment. \subsection{Colab} @@ -61,11 +59,11 @@ mechanism. The integrated applications should be on a local network to avoid security issues. With this the user will be able to navigate through the platform applications and will not be asked for authentication credentials. -As Colab is a reverse proxy, it makes some HTML transformations in the HTTP -response of integrated applications to provide a unified interface. Allows one -to define some default templates to be used by all applications and overwrite -when needed in its plugin. This approach allowed us to reuse some HTML pages -which facilitates maintenance. +As Colab\footnote{\url{https://github.com/colab}} is a reverse proxy, it makes +some HTML transformations in the HTTP response of integrated applications to +provide a unified interface. Allows one to define some default templates to be +used by all applications and overwrite when needed in its plugin. This approach +allowed us to reuse some HTML pages which facilitates maintenance. A publish-subscribe implementation was used to handle events in the platform. Thus, if some application want to trigger some action in case that other @@ -78,28 +76,55 @@ will be indexed and will became available for the users, just need an simple implementation of how should perform the collection of data. Initially, Colab had support for a small set of applications (Trac, GNU -Mailman, Apache Lucene) and all of them was hard-coded; our team evolved Colab -so that it can now receive plugins to add support for new applications with -minimal changes to its existing core. We developed plugins to be used in the -SPB platform: Noosfero, GitLab, and Mezuro. +Mailman, and Apache Lucene) and all of them was hard-coded. Our team evolved +Colab so that it can now receive plugins to add support for new applications +with minimal changes to its existing core. We developed plugins to be used in +the SPB platform: Noosfero, GitLab, and Mezuro. \subsection{Noosfero} -Noosfero\footnote{\url{http://noosfero.org/}} is a software for building +Noosfero\footnote{\url{http://noosfero.org}} is a software for building social and collaboration networks. Besides the classical social networking features, it also provides publication features such as blogs and a general-purpose CMS (Content Management System). Most of the user interactions with SPB is through Noosfero: user registration, project home pages and documentation, and contact forms. -\subsection{Gitlab and Mezuro} +\subsection{Gitlab} + +GitLab\footnote{\url{http://gitlab.com}} is a web-based Git repository manager +with wiki pages and issue tracking features. On the one hand, Github is the +most famous and used Git repository manager. On the other hand, it is not a +FOSS. Gitlab is a FOSS platform and focuses on delivering a holistic solution +that will see developers from idea to production seamlessly and on a single +platform. Thus, we have worked on it to integrated to Colab. + +Moreover, Gitlab has several features working properly than Github that is +interesting in SPB context such as free for private projects, built-in +continuous integration and continuous deployment with best practices, more +control during downtime and upgrade, flexible permissions, Work-in-Progress +protection, move issues between projects, Group-level milestones, Create new +branches from issues, Issue board, Time tracking, as well new features and +improvements every month on the 22nd. + +\subsection{Mezuro} -GitLab\footnote{\url{http://gitlab.com/}} is a web-based Git repository -manager with wiki pages and issue tracking features. Mezuro\footnote{\url{http://mezuro.org/}} is a platform to collect source code metric to monitor the internal quality of softwares written in C, C++, Java, Python, Ruby, and PHP. GNU Mailman is used for mailing lists. +In general, source code metric tools also do not present a friendly way to +interpret its results and, even more, do not follow a standardization between +them. Mezuro brings and presents these results to +the end user, specially, by analyzing source code metric history during its +life cycle. + +The Mezuro platform provides a single interface +grouping available tools, allows selection and composition of metrics in a +flexible manner, stores the metrics evolution history, presents +results in a friendly way, as well as, allows users to customize the given +interpretation accordingly to their own context. + \subsection{System unification} \begin{figure}[hbt] -- libgit2 0.21.2