Giter Site home page Giter Site logo

poet's Introduction

Overview

poet is a package manager for Stanza.

Requirements

  • Linux with glibc 2.31 or newer
  • Stanza 0.16.3 or newer
  • Git 2.6.7 or newer

Installation

Just download a release from releases, and put it on your $PATH somewhere.

Usage

To initialize a poet package, use poet init. This will initialize a Git repository into the given directory, and create a basic package structure comprising the .poet directory and poet.toml. If a directory is not specified, the current directory is used. This command can be used to create an entirely new package, or to create a package from an existing project, and will not overwrite any of your existing files.

To build a poet package, use poet build. This will create the .poet directory if necessary, fetch any dependencies as specified in your poet.toml, and then invoke stanza build, forwarding it any arguments given. It will also create a poet.lock file alongside your poet.toml that encapsulates the state of your dependencies at build time, so that subsequent builds do not have to fetch dependencies anew.

To publish a poet package, use poet publish. For now, you must also have set an upstream (for example, by using git branch -u <upstream-repo-url>) for the branch you are on. You must also be in a clean state (no outstanding changes). poet will git tag the current version (as specified in your poet.toml) and then push it to your upstream.

To clean a poet package, use poet clean. This removes any fetched dependencies and clears your build cache.

Caveats

Packages that use poet must be built using poet build, and cannot be built using stanza build. Attempting to do so will most likely result in various compile errors due to the build system not pulling in packages from your dependencies.

This is in part due to the fact that the Stanza build system is not capable of fetching packages (like poet build), but also because a poet-compatible stanza.proj does not reference the main .poet/stanza.proj or stanza.proj files from dependent packages in any way. This is mostly not an issue in practice, but something to be aware of if you run into this issue.

poet's People

Contributors

cuppojava avatar tylanphear avatar

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.