There is already a default release script included with recent versions of Leiningen. To do a release, simply run lein release :major, :minor, or :patch depending on the version bump that you want.
-- Daniel > On 23/11/2014, at 1:06 pm, Sam Ritchie <sritchi...@gmail.com> wrote: > > If you guys feel strongly, I'm sure the Amazonica maintainers would love a > pull req that adds a small release script that handles this for them. I'm > sure it'd get merged, and it'd be a nice, constructive way to move the > discussion forward. > >> <compose-unknown-contact.jpg> Gary Verhaegen November 20, 2014 at >> 7:58 PM >> On Thursday, 20 November 2014, Michael Cohen <mcohe...@gmail.com> wrote: >> >> No idea about the rest, but for the github part I usually expect a tag for >> each release on Clojars, so if I want to read the actual code of the release >> I'm using it is easy to find it. >> >> This should have a very minimal impact on your workflow: it should be >> limited to running git tag <version number> once right after each release >> (or before; point is, if the unit of time is the git commit, it should be >> simultaneous). >> >> Note that it is possible that you have created these tags and they are >> simply not on github because git does not push tags by default. You have to >> run git push --tags to push them. >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with your >> first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> <compose-unknown-contact.jpg> Michael Cohen November 20, 2014 at >> 5:08 PM >> Hi Greg, >> >> I think all of your criticisms are very valid, and I think I've seen >> most of them voiced by others at various times. I wrote it in about 3 >> weeks in March of 2013, when I was very new to Clojure, so I'm sure I >> made lots of mistakes. I was using some Java with AWS and some >> Clojure, with James Weaver's rotary library, and when you look at the >> Javadocs, it almost seems like the Java SDK could be generated. So >> that leads one to think....and off I went. >> >> As far as the problem areas you identified: >> >> - shitty docs >> What can I say, guilty as charged. Sorry. I tried to do a decent job >> with the examples, although I laughed when I heard Stu Halloway slag >> off "documentation by example" in some tech talk. Oops. What else >> could I do? I looked at trying to generate some more codox type docs >> from the Java SDK, but I just wasn't going to endure that pain. So, >> yeah, I hear you. It's a trade off though. I'm sure there's a few >> folks out there that would have to use Java interop and the Java SDK >> (and pour through those same Javadocs) in order to use one of the less >> popular AWS services if Amazonica didn't exist, because nothing else >> would exist in the Clojure world for that particular AWS service. Man, >> when I wrote this I don't even think there was a decent Clojure lib >> for ec2. >> >> - dynamically generated api >> Yeah, the code is not as straightforward and reflection is expensive. >> The counterpoint to that I guess would be, once you have it well >> sorted, you don't really need to edit core.clj too much. And with most >> of the AWS api, the cost of reflection is negligible compared to the >> network hop. You're also probably not that concerned with latency at >> all for those use cases. But again, it's a trade off. Buy one get 20 >> was worth a little reflection to me. >> >> - Functions are both variadic and dispatch on argument type >> Again, guilty as charged. I would do things differently today. >> >> - There are no releases or tags on github >> Again, I didn't really know what I was doing here, and never really >> changed the approach. What do people expect, a snapshot release for >> current development, and periodic version bumps and releases (less >> frequently than Amazonica currently bumps the version numer)? >> >> Mike >> >> >> <compose-unknown-contact.jpg> Greg Mitchell November 20, 2014 at >> 1:32 PM >> Thanks for creating this library, Michael. Your solutions for writing the >> library are creative for sure, and this library has helped with developing >> with AWS. However, I've been using the amazonica library to communicate with >> AWS components in an enterprise-scale project for about a year now, and I've >> come to believe that some of the design choices in the library and its >> maintenance are big anti-patterns. All of these are things I've struggled >> with in developing against Amazonica: >> >> * The documentation is sparse and the code is not self-documenting. >> Clojure in general tends to have worse and less documentation than Java. >> This is usually mitigated in well-designed Clojure libraries by being able >> to break into the source and read short, comprehensible functions with >> descriptive names. Amazonica is in the worst of both worlds by having no >> documentation in source, sparse documentation on github, and using >> dynamically generated code. Specific improvements to documentation I'd love >> to see: a comprehensive list of keys that credential maps and functions take >> as well as their valid values. The one or two examples per API on Github are >> insufficient for different combinations of functionality in real-world use >> cases. Pointing to AWS javadoc is not sufficient because Amazonica does >> name-munging and unwrapping - in order to understand the Amazonica >> input/output, you have to be an expert with the library and look at the >> implementation for name-munging. It is effectively a new API. A >> comprehensive list of functions would be nice, but finding them at the repl >> is a reasonable work around. >> >> * Dynamically generating an API doesn't save anyone time >> This is an extension of the previous point. You have almost 800 lines of >> code, mostly dedicated to reflection and interning methods. It's impressive >> that the whole thing works as well as it does, but doesn't actually save >> time vs. explicitly targeting an API with small wrapper functions. That has >> the benefit of being very obvious and easy to understand (as described >> above). It does mean you have to do some work when the Java SDK changes or >> you add a client, but I see there is already some nasty logic to switch on >> the client class if it has a different interface. There's a performance cost >> in reflection too. >> >> * Functions are both variadic and dispatch on argument type >> Especially without clear javadoc style documentation for function arguments, >> types, and keys, having functions that take a smorgasborg of different >> arguments is incredibly confusing. I think the root of this problem is the >> choice to make the client methods variadic, because then there can't be >> well-specified arities for the various cases (no credentials or arguments, >> credential map, just arguments, credential map and arguments), using repl. >> If the functions instead had 0, 1, and 2 arities that took nothing, an >> argument map, or a credential map and an argument map, it would be so much >> clearer. Also argument maps are generally a little easier to work with than >> destructuring the rest. >> >> * There are no releases or tags on github >> My company has a tedious process for importing third-party packages into >> source control. It's not ideal, but I'm sure it's not unique. It would be >> great to be able to pull in a stable release built against well-specified >> versions of dependencies. >> >> I hope this doesn't come across as harsh, that's not my intent. I really do >> appreciate you writing this library, and I realize that given how mature it >> is, completely changing the implementation is probably unfeasible. I just >> want to raise these concerns and see whether other people share them. If so, >> maybe they can serve as patterns or anti-patterns for future libraries. >> >> -Greg Mitchell >> >> On Monday, March 25, 2013 2:51:42 PM UTC-7, Michael Cohen wrote: >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with your >> first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. > > -- > Sam Ritchie (@sritchie) > Paddleguru Co-Founder > 703.863.8561 > www.paddleguru.com > Twitter // Facebook > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.