Git Product home page Git Product logo

kalibro_configurations's Introduction

README - Kalibro Configurations

Code Climate Test Coverage Build Status

Kalibro Configurations is a source code analysis configuration web service which is also part of the Mezuro project. It is free software under the AGPLv3 license.

It was strongly based on the vintage Kalibro (https://github.com/mezuro/kalibro) written in Java mostly by Carlos Morais (carlos88morais at gmail dot com) on his MSc dissertation (in portuguese http://www.teses.usp.br/teses/disponiveis/45/45134/tde-25092013-142158/en.php)

To know how to contribute and how to setup a working environment, please refer to the CONTRIBUTING and HACKING files, respectively.

If you want the service running but do not wish to contribute (yet!), there's packages available for Debian Jessie and CentOS 7. For detailed information on how to install and use them, look here.


License

Copyright (c) 2014-2016 The Authors.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.


Authors

Please see the humans.txt (at the public folder) file with the authors


Acknowledgments

The authors have been supported by organizations:

University of São Paulo (USP) FLOSS Competence Center http://ccsl.ime.usp.br

Brazilian National Research Council (CNPQ) http://www.cnpq.br/

University of Brasilia (UnB) Faculdade UnB Gama https://fga.unb.br/ https://softwarepublico.gov.br/social/

kalibro_configurations's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

kalibro_configurations's Issues

Problem when running setup script

The setup script does not create the test database and it assumes that it is already created. Therefore, it is necessary to manually run:

RAILS_ENV=test ./bin/setup

Maybe the setup script should also run this step as well.

Replace webrick by puma

The default rails server is getting used by the packaged distributions. Thus it is using webrick which is known to not be able to handle large loads os requests. Rails 5 already feature puma as the default webserver.

Here we want to:

  • Install puma
  • Configure puma

This might fix huge delays on mezuro.org.

More statistics about configurations

Currently, we only calculate the relation between a given metric and all the metric configurations.

We could present even more useful information if we had more statistics on the data we have stored. In this direction, we could aim to answer the following questions:

  • What are the most used metrics?
  • For each metric used, what are the most used ranges?
  • What are the differences and similarities between the metrics and ranges used across the supported programming languages?
  • What types of metrics are most used on the supported programming languages? Security, structural, hotspot metrics, etc?

Range overlapping validation doesn't work

It is broken since it does metric_configuration.kalibro_ranges.each, but that yields an empty list. It's necessary to call the all method before calling each, so it will actually check existing ranges correctly.

Persist MetricConfiguration Snapshots

Since we allow metric configuration updates, it would be a good idea to persist metric configuration snapshots.
That would avoid inconsistencies when processing a repository.

For example, if one changes the script of a compound metric configuration, that metric's meaning would not be the same on different metric configuration snapshots.

MetricConfigurations with no ranges

There some metrics that are supposed to be part of compound ones. Those have no meaning by themselves and should not affect the project grade.

So it would be useful to have a special case of MetricConfiguration with no ranges and so that KalibroProcessor do not try to interpretate nad incorporate in the grade.

Wrong response codes

ReadingGroupsController is returning unprocessable_entities instead of not_found status when resources do not exists.

This raises many KalibroClient::Errors::RequestError on Prezento.

Error on setup script for tmp dir

The setup script tries to touch the file tmp/restart.txt. However, it does not check if the tmp dir already exists, breaking the script if that is the case.

Convert KalibroRange boundaries properly from strings

Currently the JSON serialization converts from Float to String, but the opposite direction is never done. This causes Infinities to be converted to 0 sometimes, or comparisons to do strange things instead of working correctly.

Weight can't be zero

Can't we redefine this validation? In some cases, having weight equal to zero may be useful.
For example, the blank lines metric from Radon, since it does not have any meaning by itself. Is only means something when compared to the total number of lines. Therefore, assigning a range for it may be confusing.

Configuration language

Allow configurations to have a language associated.

This will enable automatic association of configurations to repositories accordingly to their main language.

Version of postgresql-server-dev on Readme

What is the version of the postgresql Indicated to use on development environment ? 9.1 or 9.3 ? The reason of question is because on the Readme of prezento the Indicated version is 9.3.

Do we need the metric snapshot routes?

In what situations are we using the metric snapshot routes?

They need the metric snapshot id, but the user should not even know it.

If there are no use cases, maybe we should remove them.

Ranges for Lines of Code on Radon?

How can we decide the thresholds for the ranges of the LOC metric on Radon?
Using the same values as Analizo does not seem good.
@marcheing and I have found that the file with highest LOC value on the python 3 standard library is somewhere between 4 and 5 thousand.
Any ideas?

Ranges vary accordingly to the granularities

The meaningful way to aggregate the metric Lines of code is by the sum. But it is hard to produce meaninfu ranges with this aggregation form once or the values are too loose for METHODS and CLASSES but correct for SOFTWARE. Or the range interval is too smal for the SOFTWARE granularity and correct for the CLASS and METHODS.

In order to address this, we need to provide ranges that may vary accordingly to the granularity.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.