Giter Site home page Giter Site logo

ansible-role-golang's Introduction

Hi there, I'm Karl ๐Ÿ‘‹

๐ŸŽ– Certificates

https://www.credly.com/badges/98ebfa74-184d-4215-98cf-f6d0b501f8fa/public_url https://www.credly.com/badges/20de1080-7c5c-4beb-adc9-ba50d9822c2f/public_url

:octocat: Github Statistics

fubarhouse fubarhouse

ansible-role-golang's People

Contributors

celebdor avatar derekhiggins avatar dmitryromanov avatar fubarhouse avatar ioncebotari avatar isakrubin avatar liemle3893 avatar mpppk avatar phelipetls avatar saboteurkid avatar saleh199 avatar waquidvp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ansible-role-golang's Issues

Add ability to manually install packages.

Post go-get, we should be able to clone any particular go repository (github or not) at a particular version of tag, and then install it manually.

  • Run go get tasks
  • Clone respective repository to place at version number x
  • Install via go

Build from source

In addition to issue #1 to install many versions, allow an option to build from source.

  • Populate GVM task file with source tasks
  • Test tasks on multiple platforms & work out problems
  • Quick once-over after everything is in place.

GVM audit...

As I am a proper Gopher now, I am seeing less and less validity in a gvm release - other than building from source.

I want to explore this, and basically figure out if removing GVM support is a good idea. The added complexity and support isn't particularly of interest where the application gets very little use in comparison to traditional installation methods.

Restructure & Compatibility fixes

  • get travis tests to pass on all commons environments
  • restructure tasks for simplicity
  • audit everything, double check everything works, assess the functionality of the go get commands

GVM - Go Version Manager

I need to work out if this is going to be a thing I'll be implementing, and how this role would change to accommodate it.

It would be rather good if we could install them over the top of the file system and gvm just work automatically, but I need to look at the details.

  • Create task file
  • Populate task file with tasks
  • Test tasks on multiple platforms & work out problems
  • Identify why gvm use is failing
  • with symlinks now in place, do we really need to gvm use? refer to use script for answers.
  • Add tasks to build master
  • test tasks to build master
  • add configurable installation flags (useful because --binary --source and --prefer-binary are rather unreliable).
  • Configurable download mirror which replaces URL in GVM install script
  • provide master integration with go_versions to add master as well as multiple other
  • logic to prevent master installing where go{{ go_version }} should be installed
  • provide better support for <= v1.4 by attempting to completely remove the term 'go' from version strings. Thought: master/source already provides the functionality we need if the variable was to be passed through.
  • resolve the path issue with go get
  • Quick once-over after everything is in place.

Install < go1.4 from source

needs further work - I don't believe this should be done but it would be a nice feature, but it depends on the workload it'll introduce.

Remove commons dependency

There's no need for this dependency anymore, as it's only providing a couple of variables which in the case of this role are typically manually inputted. Two new tasks in setup.yml should cover it.

Cleanup tasks

After #1, #2, #3 and #4 are complete I'll look at a v1.0 release - I'll at least be happy then.

  • Add tasks file
  • Populate tasks file
  • Test tasks
  • Test logic
  • Implement changes on associated tasks files
  • General once-over upon completion

Shell profiles could use rework.

Had a case today where the vagrant user .bash_profile which should have been touched, was actually the root user file, and the permissions were denied.

  • fix file path
  • test results.

Install from source.

Installing Go1.4 via the recommended and setting the $GOROOT_BOOTSTRAP variable (which defaults to $HOME/go1.4/

These variables should be optional, as well as a flag to actually build go1.4 for bootstrapping.
Actual installation will happen via the recommended git release branch.

There should be additional logic for preventing traditional version numbers being used.
source installs are tied to specific versions, without the GOOS or GOARCH variables used in the file name (example: go1.8.1.src.tar.gz).

Building process is unified. ( ./all.bash ), and gcc should be installed for versions prior to 1.4 - but that will probably not be enforced in any way.

This issue supersedes issues #28 and #29.

Allow for configurable GOROOT permissions.

A problem I feel is always getting in my way is folder permissions on GOROOT and/or the package paths under $GOPATH/bin, $GOPATH/src and $GOPATH/pkg.

We should have this as a configurable, with some sensible defaults...

Audit the exports

Basically just check over the following:

  • GOROOT declaration in shell exports
  • GOPATH declaration in shell exports
  • PATH=GOPATH declaration in shell exports
  • PATH=GOPATH/bin declaration in shell exports

Allow the ability to scrap packages prior to installation.

go_reget: true

Something which performs the function listed above will purge out the contents of:

  • $GOROOT/bin/bin
  • $GOROOT/bin/src
  • $GOROOT/bin/pkg

This will ensure a package is guaranteed to be re-fetched each time a play will run, which will get around an underlying problem I intend on investigating properly at a later date.

Set system go to 1.4

For the sake of always having a compiler available for post 1.4 versions, we'll make 1.4 available always and set the system go to 1.4.

Update to working-copy

There were some changes I made in my local PyCharm IDE, obviously some time ago now.
Review and commit those changes, which affect the default installation settings among other changes.

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.