Giter Club home page Giter Club logo

gondola's Introduction

Gondola

Build Status

The web framework for writing faster sites, faster. Written in Go. View documentation at http://gondolaweb.com.

Unless indicated otherwise at the top of file, all the source code for Gondola is released under the MPL-2 license.

Contributors, either individuals or companies, will be credited by alphabetical order in the CONTRIBUTORS file. If you're submitting your first pull request, please add yourself to the file in a separate commit.

Please note that all contributions to Gondola require a copyright assignment of the code to Rainy Cape S.L.. In order to simplify contributions, we'll understand you agree to these terms if you submit a pull request.

gondola's People

Contributors

fiam avatar mattn avatar rainycape 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gondola's Issues

Great project but lack of documentation

This is a great project but it was released too early without a proper documentation. Don't get me wrong, I like people contribute to open source. But without a proper documentation, it is useless.

Ever heard about Laravel? Yes, almost all PHP web developers knows about it. The author is Taylor Otwell, a very disciplined programmer. Here is a quote from his blog:

I promised myself never to release Laravel until I had great documentation, and I never release a new version until the documentation is totally up to date. Any PHP programmer can pick up Laravel and start using it in a matter of minutes. The expressiveness of the code itself and the great documentation truly make coding enjoyable.

http://taylorotwell.tumblr.com/post/21038245018/why-laravel

But in the end, this is your code. It is up to you to do anything with it. Just my two cents.

Cheers. :)

A few problems with the AppEngine build

  • The generated application has two main()
  • I cannot run the tests. Gondola calls goapp with -L flag here which not defined.

It would be also interesting to see some metrics, but I do really like the idea of a portable application between GAE and bare metal.

wmn@wmn-glaptop ~/code/src/github.com/eMxyzptlk/gondola_app   % goapp version
go version go1.2.1 (appengine-1.9.14) linux/amd64
wmn@wmn-glaptop ~/code/src/github.com/eMxyzptlk   % gondola new -gae gondola_app
[D] 2014/11/05 12:54:47 writing file gondola_app/app.go
[D] 2014/11/05 12:54:47 writing file gondola_app/app_test.go
[D] 2014/11/05 12:54:47 creating directory gondola_app/assets
[D] 2014/11/05 12:54:47 writing file gondola_app/handlers.go
[D] 2014/11/05 12:54:47 creating directory gondola_app/tmpl
[D] 2014/11/05 12:54:47 writing file gondola_app/app.conf
[D] 2014/11/05 12:54:47 writing file gondola_app/app.yaml
[D] 2014/11/05 12:54:47 writing file gondola_app/cron.yaml
[D] 2014/11/05 12:54:47 writing file gondola_app/dev.conf
[D] 2014/11/05 12:54:47 writing file gondola_app/main.go
[D] 2014/11/05 12:54:47 writing file gondola_app/main_appengine.go
[D] 2014/11/05 12:54:47 writing file gondola_app/app.conf
[D] 2014/11/05 12:54:47 writing file gondola_app/dev.conf
[D] 2014/11/05 12:54:47 writing file gondola_app/main.go
wmn@wmn-glaptop ~/code/src/github.com/eMxyzptlk   % cd gondola_app
wmn@wmn-glaptop ~/code/src/github.com/eMxyzptlk/gondola_app   % gondola gae-dev
[D] 2014/11/05 12:54:59 starting App Engine development server - press Control+C to stop
[D] 2014/11/05 12:54:59 compiling app assets
# github.com/eMxyzptlk/gondola_app
./main_appengine.go:36: main redeclared in this block
        previous declaration at ./main.go:3
error running command gae-dev: exit status 2
wmn@wmn-glaptop ~/code/src/github.com/eMxyzptlk/gondola_app   % rm main.go
wmn@wmn-glaptop ~/code/src/github.com/eMxyzptlk/gondola_app   % gondola gae-test
[D] 2014/11/05 12:55:10 starting App Engine tests
INFO     2014-11-05 20:55:11,578 devappserver2.py:741] Skipping SDK update check.
INFO     2014-11-05 20:55:11,600 api_server.py:172] Starting API server at: http://localhost:41295
INFO     2014-11-05 20:55:12,401 dispatcher.py:186] Starting module "default" running at: http://localhost:8080
INFO     2014-11-05 20:55:12,402 admin_server.py:118] Starting admin server at: http://localhost:8000
2014/11/05 12:55:14 appengine: not running under devappserver2; using some default configuration
flag provided but not defined: -L
Usage of /tmp/go-build290760009/github.com/eMxyzptlk/gondola_app/_test/gondola_app.test:
  -H="": Host to run the test against
  -addr_api="": deprecated
  -addr_http="": deprecated
  -admin-email="": When running in non-debug mode, any error messages will be emailed to this adddress
  -blobstore="": Default blobstore, returned by Context.Blobstore()
  -cache="": Default cache, returned by Context.Cache()
  -config="/home/wmn/code/src/github.com/eMxyzptlk/gondola_app/app.conf": Config file name
  -database="": Default database to use, used by Context.Orm()
  -debug=false: Enable app debug mode. This causes runtime errors to generate a detailed error page
  -default-from="": Default From address when sending emails
  -encryption-key="": Key used for encryption (e.g. encrypted cookies)
  -language="": Set the default language for translating strings
  -log-debug=false:
  -mail-server="localhost:25": Default mail server used by gnd.la/net/mail
  -port=8888: Port to listen on
  -secret="": Secret used for, among other things, hashing cookies
  -template-debug=false: Enable template debug mode. This disables asset bundling and template caching
  -test.bench="": regular expression to select benchmarks to run
  -test.benchmem=false: print memory allocations for benchmarks
  -test.benchtime=1s: approximate run time for each benchmark
  -test.blockprofile="": write a goroutine blocking profile to the named file after execution
  -test.blockprofilerate=1: if >= 0, calls runtime.SetBlockProfileRate()
  -test.coverprofile="": write a coverage profile to the named file after execution
  -test.cpu="": comma-separated list of number of CPUs to use for each test
  -test.cpuprofile="": write a cpu profile to the named file during execution
  -test.memprofile="": write a memory profile to the named file after execution
  -test.memprofilerate=0: if >=0, sets runtime.MemProfileRate
  -test.outputdir="": directory in which to write profiles
  -test.parallel=1: maximum test parallelism
  -test.run="": regular expression to select tests and examples to run
  -test.short=false: run smaller test suite to save time
  -test.timeout=0: if positive, sets an aggregate time limit for all tests
  -test.v=false: verbose: print additional output

Available commands:
  cat-file
  make-assets

Type /tmp/go-build290760009/github.com/eMxyzptlk/gondola_app/_test/gondola_app.test help for details.
exit status 2
FAIL    github.com/eMxyzptlk/gondola_app        0.081s
goapp: caught SIGINT, waiting for dev_appserver.py to shut down
INFO     2014-11-05 20:55:14,192 shutdown.py:45] Shutting down.
INFO     2014-11-05 20:55:14,192 api_server.py:588] Applying all pending transactions and saving the datastore
INFO     2014-11-05 20:55:14,193 api_server.py:591] Saving search indexes

Unable to install gondola

I'm using Archlinux. If I follow the guide http://gondolaweb.com/tutorials/installing-gondola/, the installation fails as the connection is refused:

> go get -v gnd.la/cmd/gondola

Fetching https://gnd.la/cmd/gondola?go-get=1

https fetch failed: Get https://gnd.la/cmd/gondola?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused

package gnd.la/cmd/gondola: unrecognized import path "gnd.la/cmd/gondola" (https fetch: Get https://gnd.la/cmd/gondola?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)

Unfortunately it is also not possible to do:
go get github.com/rainycape/gondola/cmd/gondola
as it tries to import from gnd.la:

package gnd.la/app: unrecognized import path "gnd.la/app" (https fetch: Get https://gnd.la/app?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/app/profile: unrecognized import path "gnd.la/app/profile" (https fetch: Get https://gnd.la/app/profile?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/config: unrecognized import path "gnd.la/config" (https fetch: Get https://gnd.la/config?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/crypto/cryptoutil: unrecognized import path "gnd.la/crypto/cryptoutil" (https fetch: Get https://gnd.la/crypto/cryptoutil?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/encoding/base64: unrecognized import path "gnd.la/encoding/base64" (https fetch: Get https://gnd.la/encoding/base64?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/i18n/messages: unrecognized import path "gnd.la/i18n/messages" (https fetch: Get https://gnd.la/i18n/messages?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/i18n/po: unrecognized import path "gnd.la/i18n/po" (https fetch: Get https://gnd.la/i18n/po?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/internal/gen: unrecognized import path "gnd.la/internal/gen" (https fetch: Get https://gnd.la/internal/gen?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/internal/gen/app: unrecognized import path "gnd.la/internal/gen/app" (https fetch: Get https://gnd.la/internal/gen/app?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/internal/gen/genutil: unrecognized import path "gnd.la/internal/gen/genutil" (https fetch: Get https://gnd.la/internal/gen/genutil?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/internal/project: unrecognized import path "gnd.la/internal/project" (https fetch: Get https://gnd.la/internal/project?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/internal/runtimeutil: unrecognized import path "gnd.la/internal/runtimeutil" (https fetch: Get https://gnd.la/internal/runtimeutil?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/internal/vfsutil: unrecognized import path "gnd.la/internal/vfsutil" (https fetch: Get https://gnd.la/internal/vfsutil?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/log: unrecognized import path "gnd.la/log" (https fetch: Get https://gnd.la/log?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/net/urlutil: unrecognized import path "gnd.la/net/urlutil" (https fetch: Get https://gnd.la/net/urlutil?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/util/fileutil: unrecognized import path "gnd.la/util/fileutil" (https fetch: Get https://gnd.la/util/fileutil?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/util/generic: unrecognized import path "gnd.la/util/generic" (https fetch: Get https://gnd.la/util/generic?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)
package gnd.la/util/stringutil: unrecognized import path "gnd.la/util/stringutil" (https fetch: Get https://gnd.la/util/stringutil?go-get=1: dial tcp 192.99.45.224:443: getsockopt: connection refused)

I tried to do solve it by :

> ln -s $GOPATH/src/github.com/rainycape/gondola $GOPATH/src/gnd.la
> go get -v gnd.la/cm/gondola

And install the dependencies manually reported by goinstall from $GOPATH/src/gnd.la/cmd/gondola:

go get github.com/howeyc/gopass
go get github.com/rainycape/browser
go get github.com/rainycape/command
go get github.com/dchest/uniuri
go get github.com/naoina/toml
go get github.com/rainycape/unidecode
go get github.com/rainycape/vfs
go get golang.org/x/tools/go/gcimporter

I'm almost there, but the last command fails:

> go get golang.org/x/tools/go/gcimporter
package golang.org/x/tools/go/gcimporter: cannot find package "golang.org/x/tools/go/gcimporter" 
        /usr/lib/go/src/golang.org/x/tools/go/gcimporter (from $GOROOT)
        ~/go/src/golang.org/x/tools/go/gcimporter (from $GOPATH)

I'd love to try Gondola. Do you plan to fix this to make gondola go gettable again? Otherwise this makes adoption impossible.

Implement CI like Drone.IO or Travis

the repository doesn't build or install as-is, because of a simple import error. You should implement one of the free CI environments like Travis or drone.io to prevent further breakage, since you've released this to the world.

Asset Management and Templates

Hi, I really like this framework. I've been combing through the api and source code now for a 1-2 days and definitely impressed with it. Nice work! ๐Ÿ‘

I want to dive right in and just had a few questions about the asset management system and templates. I've seen includes and extends, etc.

  • What features are included? Fingerprinted assets are a part of this?
  • How does the template system work? (specifically features)
  • What is vfs and how is it used? For eg. the bake command.
  • What's the workflow involved when one wants to deploy?

Thanks

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.