Code Monkey home page Code Monkey logo

api-server's Introduction

Nuvla API Server

Build Status

This repository contains the code and configuration for the Nuvla API server, packaged as a Docker container. The API is inspired by the CIMI specification from DMTF.

Artifacts

  • nuvla/api:<version>. A Docker container that can be obtained from the nuvla/api repository in Docker Hub. The tags indicate the release number.

  • sixsq.nuvla.server/api-jar JAR file. This archive can be obtained from the production S3 Maven archive that is maintained in AWS S3. The URL can be obtained from the project.clj file in the nuvla/parent repository.

  • sixsq.nuvla.server/api-test-jar JAR file. Utility jar for testing from child projects. This archive can be obtained from the production S3 Maven archive that is maintained in AWS S3. The URL can be obtained from the project.clj file in the nuvla/parent repository.

Contributing

Source Code Changes

To contribute code to this repository, please follow these steps:

  1. Create a branch from master with a descriptive, kebab-cased name to hold all your changes.

  2. Follow the developer guidelines concerning formatting, etc. when modifying the code.

  3. Once the changes are ready to be reviewed, create a GitHub pull request. With the pull request, provide a description of the changes and links to any relevant issues (in this repository or others).

  4. Ensure that the triggered CI checks all pass. These are triggered automatically with the results shown directly in the pull request.

  5. Once the checks pass, assign the pull request to the repository coordinator (who may then assign it to someone else).

  6. Interact with the reviewer to address any comments.

When the reviewer is happy with the pull request, he/she will "squash & merge" the pull request and delete the corresponding branch.

Testing

Add appropriate tests that verify the changes or additions you make to the source code. For new resources in particular, ensure that you test the resource schema and provide a lifecycle test.

Code Formatting

The bulk of the code in this repository is written in Clojure.

The formatting follows the standard formatting provided by the Cursive IntelliJ plugin with all the default settings except that map and let entries should be aligned.

Additional, formatting guidelines, not handled by the Cursive plugin:

  • Use a new line after the :require and :import keys in namespace declarations.

  • Alphabetize the required namespaces. This can be automated with lein nsorg --replace.

  • Use 2 blank lines between top-level forms.

  • Use a single blank line between a block comment and the following code.

IntelliJ (with Cursive) can format easily whole directories of source code. Do not hesitate to use this feature to keep the source code formatting standardized.

Copyright

Copyright © 2019-2023, SixSq SA

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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.