{"id":20409132,"url":"https://github.com/tcorral/opensource-protocol","last_synced_at":"2026-03-06T08:02:39.021Z","repository":{"id":11592373,"uuid":"14083403","full_name":"tcorral/OpenSource-Protocol","owner":"tcorral","description":"My protocol to make open source projects","archived":false,"fork":false,"pushed_at":"2013-11-03T21:44:43.000Z","size":112,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-22T18:02:53.813Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"RedPitaya/RedPitaya","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tcorral.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-03T10:07:45.000Z","updated_at":"2013-11-03T21:44:43.000Z","dependencies_parsed_at":"2022-08-20T17:50:50.567Z","dependency_job_id":null,"html_url":"https://github.com/tcorral/OpenSource-Protocol","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tcorral/OpenSource-Protocol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcorral%2FOpenSource-Protocol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcorral%2FOpenSource-Protocol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcorral%2FOpenSource-Protocol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcorral%2FOpenSource-Protocol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tcorral","download_url":"https://codeload.github.com/tcorral/OpenSource-Protocol/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcorral%2FOpenSource-Protocol/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30166867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T07:56:45.623Z","status":"ssl_error","status_checked_at":"2026-03-06T07:55:55.621Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T05:39:48.009Z","updated_at":"2026-03-06T08:02:38.949Z","avatar_url":"https://github.com/tcorral.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenSource Protocol\n\n##Signup in Github:\n\n##Login in Github:\n\n* Log in [Github](https://github.com/login)\n\n##Create a Repository:\n\n* Log in [Github](https://github.com/login)\n* Open [Github](https://github.com/new)\n* Give a name\n* Give a description\n* Select privacy to Public\n* Check 'Initialize this repository with a README'\n* Open the 'Add a license' dropdown and select the license you want.\n    * I recommend you to use MIT License to allow commercial and non profit usage.\n* Your repository should be initialized with these two files:\n    * README.md\n    * LICENSE\n\n\n##Create a Javascript project:\n* Add Travis to your project\n    * Open [Travis](https://travis-ci.org/)\n    * In the top bar to the right, select 'Start with Github'\n        * Insert your credentials if needed.\n        * You will get an account in Travis.\n            * The user will be the same as it's in Github\n            * Travis creates a token for you, see your profile, take note because it will be asked to you in Github to configure Travis hook.\n        * Below your avatar select 'Accounts' link to see your repositories\n        * Search your project in the list\n        * Click in the off switch to change it to on.\n    * Come back to Github\n    * Open your project settings\n\n        https://github.com/USER/PROJECT_NAME/settings\n\n    * Select 'Service hooks' in left menu\n    * Search Travis\n    * Click on Travis\n    * Insert your user\n    * Insert the token you got in Travis profile page.\n    * Left Domain in blank\n    * Check Active checkbox.\n* Create a .gitignore folder in root with this content\n\n        .node_modules/*\n        .coverage/*\n\n    * If you use PHPStorm you should add the next line:\n\n            .idea/*\n\n* Create a src folder in root.\n* Create a test folder in root.\n* Create a versions folder in root.\n* Create a package.json in root.\n\n        {\n          \"name\": \"PROJECT_NAME\",\n          \"version\": \"X.X.X\",\n          \"description\": \"DESCRIPTION,\n          \"homepage\": \"WEB PAGE OF YOUR PROJECT\",\n          \"author\": \"YOUR FULL NAME\",\n          \"main\": \"./src/MAIN_FILE.js\",\n          \"keywords\": [\n            \"KEYWORDS TO INDEX YOUR PROJECT\"\n          ],\n          \"licenses\": [\n            {\n              \"type\": \"LICENSE_TYPE\",\n              \"url\": \"http://www.opensource.org/licenses/LICENSE_TYPE-license.php\"\n            }\n          ],\n          \"bugs\": {\n            \"mail\": \"YOUR_EMAIL@MAIL_DOMAIN\",\n            \"url\": \"https://github.com/USER/PROJECT/issues\"\n          },\n          \"repository\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/USER/PROJECT.git\"\n          },\n          \"scripts\": {\n            \"test\": \"./node_modules/.bin/karma start --single-run --browsers PhantomJS\"\n          },\n          \"devDependencies\": {\n            \"karma-chrome-launcher\": \"~0.1.0\",\n            \"karma-firefox-launcher\": \"~0.1.0\",\n            \"karma-script-launcher\": \"~0.1.0\",\n            \"karma-html2js-preprocessor\": \"~0.1.0\",\n            \"karma-jasmine\": \"~0.1.3\",\n            \"karma-requirejs\": \"~0.1.0\",\n            \"karma-coffee-preprocessor\": \"~0.1.0\",\n            \"karma-phantomjs-launcher\": \"~0.1.0\",\n            \"karma\": \"~0.10.4\",\n            \"karma-coverage\": \"~0.1.0\",\n            \"grunt\": \"~0.4.1\",\n            \"grunt-karma\": \"~0.6.2\",\n            \"zlib\": \"*\",\n            \"uglify-js\": \"*\",\n            \"grunt-contrib-uglify\": \"~0.2.1\",\n            \"grunt-contrib-jshint\": \"~0.5.4\",\n            \"grunt-contrib-compress\": \"~0.5.0\",\n            \"grunt-contrib-copy\": \"~0.4.1\",\n            \"grunt-contrib-concat\": \"~0.3.0\",\n            \"karma-junit-reporter\": \"~0.1.0\"\n          },\n          \"github\": \"https://github.com/USER/PROJECT\"\n        }\n\n* Create a karma.conf.js in root.\n\n        module.exports = function(config) {\n          config.set({\n            // base path, that will be used to resolve files and exclude\n            basePath: '',\n\n            frameworks: ['jasmine'],\n\n            // list of files / patterns to load in the browser\n            files: [\n              'src/*.js',\n              'test/*.js'\n            ],\n\n            // list of files to exclude\n            exclude: [],\n            preprocessors: {\n              'src/*.js': ['coverage']\n            },\n            // use dots reporter, as travis terminal does not support escaping sequences\n            // possible values: 'dots', 'progress'\n            // CLI --reporters progress\n            reporters: ['progress', 'junit', 'coverage'],\n\n            junitReporter: {\n              // will be resolved to basePath (in the same way as files/exclude patterns)\n              outputFile: 'test-results.xml'\n            },\n\n            // web server port\n            // CLI --port 9876\n            port: 9880,\n\n            // enable / disable colors in the output (reporters and logs)\n            // CLI --colors --no-colors\n            colors: true,\n\n            // level of logging\n            // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG\n            // CLI --log-level debug\n            logLevel: config.LOG_INFO,\n\n            // enable / disable watching file and executing tests whenever any file changes\n            // CLI --auto-watch --no-auto-watch\n            autoWatch: true,\n\n            // Start these browsers, currently available:\n            // - Chrome\n            // - ChromeCanary\n            // - Firefox\n            // - Opera\n            // - Safari (only Mac)\n            // - PhantomJS\n            // - IE (only Windows)\n            // CLI --browsers Chrome,Firefox,Safari\n            browsers: ['PhantomJS'],\n\n            // If browser does not capture in given timeout [ms], kill it\n            // CLI --capture-timeout 5000\n            captureTimeout: 20000,\n\n            // Auto run tests on start (when browsers are captured) and exit\n            // CLI --single-run --no-single-run\n            singleRun: true,\n\n            // report which specs are slower than 500ms\n            // CLI --report-slower-than 500\n            reportSlowerThan: 500,\n\n            plugins: [\n              'karma-jasmine',\n              'karma-chrome-launcher',\n              'karma-firefox-launcher',\n              'karma-junit-reporter',\n              'karma-coverage',\n              'karma-phantomjs-launcher'\n            ]\n          });\n        };\n\n* Create a changelog.txt file in root\n\n        X.X.X\n            CHANGES_MADE_IN_VERSION\n\n* Create a .jshintrc file in src\n\n        {\n          \"boss\": true,\n          \"curly\": true,\n          \"eqeqeq\": true,\n          \"eqnull\": true,\n          \"expr\": true,\n          \"immed\": true,\n          \"noarg\": true,\n          \"onevar\": true,\n          \"quotmark\": \"single\",\n          \"smarttabs\": true,\n          \"trailing\": true,\n          \"undef\": true,\n          \"unused\": true,\n\n          \"sub\": true,\n\n          \"browser\": true,\n          \"es5\": false,\n\n          \"globals\": {\n            \"GLOBAL_1\": true,   // Put global variables\n            \"GLOBAL_2\": true\n          }\n        }\n\n* Create a Gruntfile.js file in root\n\n        module.exports = function (grunt) {\n\n          var readOptionalJSON = function (filepath) {\n              var data = {};\n              try {\n                data = grunt.file.readJSON(filepath);\n              } catch (e) {}\n              return data;\n            },\n            srcHintOptions = readOptionalJSON('src/.jshintrc');\n          // Project configuration.\n          grunt.initConfig({\n            pkg: grunt.file.readJSON('package.json'),\n            jshint: {\n              dist: {\n                src: [ \"src/MAIN_FILE.js\" ],\n                options: srcHintOptions\n              }\n            },\n            karma: {\n              unit: {\n                configFile: 'karma.conf.js'\n              }\n            },\n            concat: {\n              options: {\n                separator: ';'\n              },\n              dist: {\n                src: ['OTHER_PATHS_TO_FILES_TO_BE_CONCATENATED', 'src/PROJECT_NAME.js'],\n                dest: 'versions/PROJECT_NAME.js'\n              }\n            },\n            uglify: {\n              options: {\n                banner: '/*! PROJECT_NAME.js v\u003c%= pkg.version %\u003e | Date:\u003c%= grunt.template.today(\"yyyy-mm-dd\") %\u003e |' +\n                  ' License: https://raw.github.com/USER/PROJECT_NAME/master/LICENSE|' +\n                  ' (c) FULL_YEAR\\n' +\n                  '//@ sourceMappingURL=PROJECT_NAME.min.map\\n' +\n                  '*/\\n',\n                preserveComments: \"some\",\n                sourceMap: 'versions/PROJECT_NAME.min.map',\n                sourceMappingURL: \"PROJECT_NAME.min.map\",\n                report: \"min\",\n                beautify: {\n                  ascii_only: true\n                },\n                compress: {\n                  hoist_funs: false,\n                  join_vars: false,\n                  loops: false,\n                  unused: false\n                },\n                mangle: {\n                  // saves some bytes when gzipped\n                  except: [ \"undefined\" ]\n                }\n              },\n              build: {\n                src: ['versions/PROJECT_NAME.js'],\n                dest: 'versions/PROJECT_NAME.min.js'\n              }\n            },\n            compress: {\n              main: {\n                options: {\n                  mode: 'gzip'\n                },\n                expand: true,\n                cwd: 'versions/',\n                src: ['PROJECT_NAME.min.js'],\n                dest: 'versions/'\n              }\n            }\n          });\n\n          // Load the plugins\n          grunt.loadNpmTasks(\"grunt-contrib-jshint\");\n          grunt.loadNpmTasks('grunt-karma');\n          grunt.loadNpmTasks('grunt-contrib-concat');\n          grunt.loadNpmTasks('grunt-contrib-uglify');\n          grunt.loadNpmTasks('grunt-contrib-compress');\n\n          // Default task(s).\n          grunt.registerTask('default', ['jshint', 'karma', 'concat', 'uglify', 'compress']);\n        };\n\n* Create a bower.json file in root\n\n        {\n          \"name\": \"PROJECT_NAME\",\n          \"version\": \"X.X.X\",\n          \"repository\": {\n            \"type\": \"git\",\n            \"url\": \"git://github.com/USER/PROJECT.git\"\n          }\n        }\n\n* Create a .travis.yml file in root.\n\n        language: node_js\n        node_js:\n            - \"0.10\"\n            - \"0.8\"\n            - \"0.6\"\n        before_install:\n          - wget http://phantomjs.googlecode.com/files/phantomjs-1.7.0-linux-i686.tar.bz2\n          - tar -xf phantomjs-1.7.0-linux-i686.tar.bz2\n          - sudo rm -rf /usr/local/phantomjs\n          - sudo mv phantomjs-1.7.0-linux-i686 /usr/local/phantomjs\n\n* Open the terminal\n* Install grunt-cli globally\n\n        npm install -g grunt-cli\n* Change the directory to your project path.\n\n        cd PATH_TO_MY_PROJECT_ROOT_DIRECTORY\n\n* Install your project dependencies\n\n        npm install\n\n* Create your test file/s in test folder\n* Create your source file/s in src folder.\n* Use TDD to write your code.\n    * Use Jasmine as test framework\n    * Add a new testcase\n    * Execute your tests\n\n            grunt karma\n\n    * Make pass the tests.\n    * Execute your tests\n\n            grunt karma\n\n    * Refactor your source and test code.\n    * Come back to the 'Add a new testcase' step and repeat until you finish your code.\n* Launch the build to get:\n    * Your code syntax checked\n    * Your code tested\n    * Your code coverage\n    * A concatenated file version\n    * A minified file version\n    * A gzipped file version\n\n            grunt\n\n##Update your project\n\n* Change version in package.json\n* Add version and changes in changelog.txt\n* Change version in bower.json\n* Change version in README.md\n* If you need to give more info to the user add or modify the README.md content\n* Execute the build.\n\n        grunt\n\n* Commit and push your changes to the repository\n    * Add the version and the changelog.txt\n* If is a new release.\n    * Open the terminal\n    * Change the directory to your project path.\n\n            cd PATH_TO_MY_PROJECT_ROOT_DIRECTORY\n\n    * Create a tag\n\n            git tag -a X.X.X -m 'X.X.X'\n\n    * Share your tag to remote\n\n            git push origin X.X.X\n\n* If you have to update a version\n    * Open the terminal\n    * Change the directory to your project path.\n\n            cd PATH_TO_MY_PROJECT_ROOT_DIRECTORY\n\n    * Delete the tag\n\n            git tag -d X.X.X\n\n    * Delete the remote tag\n\n            git push origin :ref/tags/X.X.X\n\n    * Create a tag\n\n            git tag -a X.X.X -m 'X.X.X'\n\n    * Share your tag to remote\n\n            git push origin X.X.X\n\n* Check your tags\n    * Open the terminal\n    * Change the directory to your project path.\n\n            cd PATH_TO_MY_PROJECT_ROOT_DIRECTORY\n\n    * Check your tags\n\n            git tag\n\n    * See the list of tags\n\n* Check your releases in Github\n\n    * Open https://github.com/USER/PROJECT_NAME/releases","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftcorral%2Fopensource-protocol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftcorral%2Fopensource-protocol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftcorral%2Fopensource-protocol/lists"}