Repository for Open Translators to Things. Grouped by translators written for specific schemas. The schema names are uniquely namespaced. The translator name is a unique string identifying a Thing.
This README will help get you started developing in this repo.
Get your dev environment set up (PC or Mac):
Get the Source
Next, clone this repo to your local machine to get started. Navigate to the directory where you want to clone the repo to locally, then run:
git clone https://github.com/openT2T/translators.git
Create a New Translator
Follow our getting started guide at http://www.opentranslatorstothings.org. Note that we have some required naming rules for translator node packages:
- The npm package names must always have "opent2t-translator-" prefix. We are not currently using npm namespacing.
- After the prefix, we will kebab-case the reverse-URI that is translator name, so e.g. "com.wink.lightbulb" becomes "opent2t-translator-com-wink-lightbulb".
Here is some background reading for those who are curious:
- Node package name requirements/rules: https://docs.npmjs.com/files/package.json.
- Issue #50 includes a discussion and some context behind this naming guidance.
Run Integration Tests
- Install gulp globally.
npm install -g gulp
- Install dependencies.
npm install verifiers
- Run integration tests.
- Other gulp tasks can be run as well, see gulpfile.js for available tasks.
- By default all files under the translators repo will be tested.
- Use the --cwd option to only test files under a specified directory:
gulp --cwd .\org.opent2t.sample.windowshade.superpopular\ ci-checks
Create a Pull Request
Made any changes we should consider? Send us a pull request! Check out this article on how to get started.
Publish a Translator Package to NPM
A translator package includes one thing translator along with all the schemas
it references. Because those are not organized in the way
expects, the process of publishing a translator package uses a script from
the CLI repo.
versionproperty in the package.json file in the translator directory. (Of cource any other metadata may be updated also, but a version bump is required when publishing to npm, since you may not re-publish over an existing version.)
Clone the CLI repo (or sync it as needed), and install its dependencies:
cd .. git clone https://github.com/opent2t-cli npm install cd ../translators
- Use the script to generate a package.json for the translator to be published. Note the last parameter is a simple name of a translator, not a directory path, which would include a schema name.
node ../opent2t-cli/pack-translator.js com.wink.thermostat
Edit the package.json to include directories for referenced schemas in the
filescollection at the end. Lines will include at least
"oic.baseresource"; possibly others if the OCF schema .json file has
$refreferences to others. (Eventually the pack-translator.js script should add these lines automatically.)
Ensure you're logged in to NPM under the opent2t account:
npm login Username: opent2t Password: *********
- Publish the package to NPM: