Giter Site home page Giter Site logo

zehcnas34 / clojars-web Goto Github PK

View Code? Open in Web Editor NEW

This project forked from clojars/clojars-web

0.0 2.0 0.0 3.18 MB

A community repository for open-source Clojure libraries

Home Page: https://clojars.org

License: Eclipse Public License 1.0

CSS 2.17% HTML 0.75% Clojure 95.28% Shell 1.50% JavaScript 0.31%

clojars-web's Introduction

Clojars web interface

CircleCI Dependencies Status

This is the source code for the Clojars jar repository webapp.

If you're looking for user documentation, try the wiki. There is a also a FAQ.

See the CHANGELOG for facing changes.

Contributing

Please report bugs/feature requests as an issue on this repository. For issues with the repository or group name verification, please file an issue on the administration repository.

If you'd like contribute a change please send a GitHub pull request for a topic branch. Feel free to open a draft pull request early with a in #clojars on the Clojurians slack to get feedback from other contributors. If you are looking for a task to work on, take a look at issues labeled ready-for-work.

We try to make releases fairly soon after merging contributions, but ping us if it has been a week or two and you'd like something pushed to the production website.

Development

Note: Java 17 is required

Development system

To begin developing, start with a REPL.

lein repl

You'll need postgres running as well. That's managed via docker-compose:

docker-compose up

Run migrate to initialize the database to the latest migration.

user=> (migrate)
...

or alternatively, from the command line.

$ lein migrate

Run go to initiate and start the system.

user=> (go)
:started

By default this creates a running development system at http://localhost:8080.

Note: You may get the following error in the browser when accessing the dev system after running (go) for the first time:

No implementation of method: :-report-error of protocol: #'clojars.errors/ErrorReporter found for class: clojars.errors.StdOutReporter

If so, running (go) a second time should eliminate the error.

When you make changes to your source files, use reset to reload any modified files and reset the server.

user=> (reset)
:reloading (...)
:resumed

If you'd like to hack on the UI or search it might be useful to have production-like metadata. To create that, use clojars.tools.setup-dev/-main to create test users, import an existing maven repository (your local ~/.m2/repository/ works well), and setup a search index:

mkdir data/dev_repo
cp -r ~/.m2/repository/* data/dev_repo
lein run -m clojars.tools.setup-dev

Note that this setup task isn't perfect - SNAPSHOTS won't have version-specific metadata (which won't matter for the operation of clojars, but may matter if you try to use the resulting repo as a real repo), and versions will be listed out of order on the project pages, but it should be good enough to test with.

Testing

Testing is designed to work in a REPL to allow flow.

user=> (test)
...
user=> (test #'clojars.test.unit.db/added-users-can-be-found)
...

Tests can also be run through Leiningen for CI.

lein test

Production system with development config

Occasionally it can be useful to start a production system based on the development configuration. This can be done by lein run.

Deployment

See the Deployment instructions in the infrastructure repo.

Also see Configuration.

Configuration

The configuration is loaded from resources/config.edn.

When running automated tests at the repl, or with lein test, a test environment is used to provide isolation. It can be found in test/clojars/test/test_helper.clj.

License

Copyright © 2009-2023 Alex Osborne, Phil Hagelberg, Nelson Morris, Toby Crawley, Daniel Compton and contributors.

Distributed under the Eclipse Public License, the same as Clojure. See the file COPYING.

clojars-web's People

Contributors

tobias avatar ato avatar technomancy avatar xeqi avatar danielcompton avatar cldwalker avatar losingkeys avatar devn avatar deraen avatar wstrinz avatar renatoalencar avatar heyvito avatar tomjkidd avatar firthh avatar dotemacs avatar pupeno avatar martinklepsch avatar scottjad avatar lfn3 avatar mynomoto avatar kimsnj avatar wiseman avatar nberger avatar lrenn avatar ajoberstar avatar beppu avatar moredhel avatar timothypratley avatar shafeeq avatar shaaza avatar

Watchers

James Cloos avatar  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.