[Git][clojure-team/tools-analyzer-clojure][debian/main] 12 commits: d/watch: fix tag pattern
Jérôme Charaoui (@lavamind)
gitlab at salsa.debian.org
Thu Feb 2 03:25:05 GMT 2023
Jérôme Charaoui pushed to branch debian/main at Debian Clojure Maintainers / tools-analyzer-clojure
Commits:
e13d542d by Jérôme Charaoui at 2023-02-01T18:15:29-05:00
d/watch: fix tag pattern
- - - - -
fc08c9d8 by Jérôme Charaoui at 2023-02-01T18:15:52-05:00
New upstream version 1.1.1
- - - - -
2e46d32e by Jérôme Charaoui at 2023-02-01T18:15:54-05:00
Update upstream source from tag 'upstream/1.1.1'
Update to upstream version '1.1.1'
with Debian dir 9839df773dafba0101dd28afd95569267e77ff98
- - - - -
a3f4a566 by Jérôme Charaoui at 2023-02-01T21:21:46-05:00
d/patches: refresh patches for new upstream version
- - - - -
437ae496 by Jérôme Charaoui at 2023-02-01T21:22:29-05:00
d/control: remove redundant binary Depends
Already added by javahelper.
- - - - -
a794ac19 by Jérôme Charaoui at 2023-02-01T21:34:27-05:00
d/rules: replace jh_installlibs override
- - - - -
6885a3bc by Jérôme Charaoui at 2023-02-01T21:34:32-05:00
remove obsolete README.source
- - - - -
cfac023b by Jérôme Charaoui at 2023-02-01T21:34:33-05:00
d/rules: honor nocheck flag in build options
- - - - -
931fa855 by Jérôme Charaoui at 2023-02-01T21:34:33-05:00
d/control: bump Standards-Version, no changes needed
- - - - -
7e1a481a by Jérôme Charaoui at 2023-02-01T21:34:34-05:00
run wrap-and-sort -bastk
- - - - -
3584e5ac by Jérôme Charaoui at 2023-02-01T21:41:14-05:00
d/tests: run upstream testsuite with bultitude
- - - - -
9bc71f25 by Jérôme Charaoui at 2023-02-01T21:43:14-05:00
Update changelog for 1.1.1-1 release
- - - - -
28 changed files:
- + .github/PULL_REQUEST_TEMPLATE
- CHANGELOG.md
- CONTRIBUTING.md
- + LICENSE
- README.md
- − debian/README.source
- debian/changelog
- debian/control
- debian/libtools-analyzer-clojure.docs
- debian/libtools-analyzer-clojure.poms
- debian/patches/0001_Lein_Local.patch
- debian/rules
- debian/tests/control
- + debian/tests/upstream
- debian/watch
- pom.xml
- project.clj
- src/main/clojure/clojure/tools/analyzer.clj
- src/main/clojure/clojure/tools/analyzer/ast.clj
- src/main/clojure/clojure/tools/analyzer/ast/query.clj
- src/main/clojure/clojure/tools/analyzer/env.clj
- src/main/clojure/clojure/tools/analyzer/passes.clj
- src/main/clojure/clojure/tools/analyzer/passes/elide_meta.clj
- src/main/clojure/clojure/tools/analyzer/passes/uniquify.clj
- src/main/clojure/clojure/tools/analyzer/passes/warn_earmuff.clj
- src/main/clojure/clojure/tools/analyzer/utils.clj
- src/test/clojure/clojure/tools/analyzer/core_test.clj
- src/test/clojure/clojure/tools/analyzer/query_test.clj
Changes:
=====================================
.github/PULL_REQUEST_TEMPLATE
=====================================
@@ -0,0 +1,14 @@
+Hi! Thanks for your interest in contributing to this project.
+
+Clojure contrib projects do not use GitHub issues or pull requests, and
+require a signed Contributor Agreement. If you would like to contribute,
+please read more about the CA and sign that first (this can be done online).
+
+Then go to this project's issue tracker in JIRA to create tickets, update
+tickets, or submit patches. For help in creating tickets and patches,
+please see:
+
+- Contributing FAQ: https://clojure.org/dev
+- Signing the CA: https://clojure.org/dev/contributor_agreement
+- Creating Tickets: https://clojure.org/dev/creating_tickets
+- Developing Patches: https://clojure.org/dev/developing_patches
=====================================
CHANGELOG.md
=====================================
@@ -1,5 +1,12 @@
Changelog
========================================
+* next
+ * Remove JVM-specific code to make this usable for ClojureCLR
+* Release 1.1.0 on 14 Sep 2021
+ * TANAL-134: Remove :init from :def's :children when absent
+ * Added :refer-clojure :exclude for `update-keys` and `update-vals` being added in Clojure 1.11
+* Release 1.0.0 on 18 Feb 2020
+ * Fixed docstrings
* Release 0.7.0 on 10 Dec 2018
* Handle injected locals in add-binding-atom phase
* Release 0.6.9 on 9 Jun 2015
=====================================
CONTRIBUTING.md
=====================================
@@ -8,5 +8,5 @@ more information on how to contribute.
[Clojure contrib]: https://clojure.org/community/contrib_libs
[Contributing]: https://clojure.org/community/contributing
-[JIRA]: http://dev.clojure.org/jira/browse/TANAL
+[JIRA]: https://clojure.atlassian.net/browse/TANAL
[guidelines]: https://clojure.org/community/contrib_howto
=====================================
LICENSE
=====================================
@@ -0,0 +1,205 @@
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation
+ distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+ i) changes to the Program, and
+ ii) additions to the Program;
+
+ where such changes and/or additions to the Program originate from and are
+ distributed by that particular Contributor. A Contribution 'originates'
+ from a Contributor if it was added to the Program by such Contributor
+ itself or anyone acting on such Contributor's behalf. Contributions do not
+ include additions to the Program which: (i) are separate modules of
+ software distributed in conjunction with the Program under their own
+ license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+ a) Subject to the terms of this Agreement, each Contributor hereby grants
+ Recipient a non-exclusive, worldwide, royalty-free copyright license to
+ reproduce, prepare derivative works of, publicly display, publicly
+ perform, distribute and sublicense the Contribution of such Contributor,
+ if any, and such derivative works, in source code and object code form.
+ b) Subject to the terms of this Agreement, each Contributor hereby grants
+ Recipient a non-exclusive, worldwide, royalty-free patent license under
+ Licensed Patents to make, use, sell, offer to sell, import and otherwise
+ transfer the Contribution of such Contributor, if any, in source code and
+ object code form. This patent license shall apply to the combination of
+ the Contribution and the Program if, at the time the Contribution is
+ added by the Contributor, such addition of the Contribution causes such
+ combination to be covered by the Licensed Patents. The patent license
+ shall not apply to any other combinations which include the Contribution.
+ No hardware per se is licensed hereunder.
+ c) Recipient understands that although each Contributor grants the licenses
+ to its Contributions set forth herein, no assurances are provided by any
+ Contributor that the Program does not infringe the patent or other
+ intellectual property rights of any other entity. Each Contributor
+ disclaims any liability to Recipient for claims brought by any other
+ entity based on infringement of intellectual property rights or
+ otherwise. As a condition to exercising the rights and licenses granted
+ hereunder, each Recipient hereby assumes sole responsibility to secure
+ any other intellectual property rights needed, if any. For example, if a
+ third party patent license is required to allow Recipient to distribute
+ the Program, it is Recipient's responsibility to acquire that license
+ before distributing the Program.
+ d) Each Contributor represents that to its knowledge it has sufficient
+ copyright rights in its Contribution, if any, to grant the copyright
+ license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under
+its own license agreement, provided that:
+
+ a) it complies with the terms and conditions of this Agreement; and
+ b) its license agreement:
+ i) effectively disclaims on behalf of all Contributors all warranties
+ and conditions, express and implied, including warranties or
+ conditions of title and non-infringement, and implied warranties or
+ conditions of merchantability and fitness for a particular purpose;
+ ii) effectively excludes on behalf of all Contributors all liability for
+ damages, including direct, indirect, special, incidental and
+ consequential damages, such as lost profits;
+ iii) states that any provisions which differ from this Agreement are
+ offered by that Contributor alone and not by any other party; and
+ iv) states that source code for the Program is available from such
+ Contributor, and informs licensees how to obtain it in a reasonable
+ manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+ a) it must be made available under this Agreement; and
+ b) a copy of this Agreement must be included with each copy of the Program.
+ Contributors may not remove or alter any copyright notices contained
+ within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution,
+if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore,
+if a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits and
+other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such Commercial
+Contributor in connection with its distribution of the Program in a commercial
+product offering. The obligations in this section do not apply to any claims
+or Losses relating to any actual or alleged intellectual property
+infringement. In order to qualify, an Indemnified Contributor must:
+a) promptly notify the Commercial Contributor in writing of such claim, and
+b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement
+negotiations. The Indemnified Contributor may participate in any such claim at
+its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If
+that Commercial Contributor then makes performance claims, or offers
+warranties related to Product X, those performance claims and warranties are
+such Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using
+and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the
+risks and costs of program errors, compliance with applicable laws, damage to
+or loss of data, programs or equipment, and unavailability or interruption of
+operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION
+LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of the
+remainder of the terms of this Agreement, and without further action by the
+parties hereto, such provision shall be reformed to the minimum extent
+necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Program itself
+(excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted
+under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue
+and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to
+time. No one other than the Agreement Steward has the right to modify this
+Agreement. The Eclipse Foundation is the initial Agreement Steward. The
+Eclipse Foundation may assign the responsibility to serve as the Agreement
+Steward to a suitable separate entity. Each new version of the Agreement will
+be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version of the
+Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly
+stated in Sections 2(a) and 2(b) above, Recipient receives no rights or
+licenses to the intellectual property of any Contributor under this Agreement,
+whether expressly, by implication, estoppel or otherwise. All rights in the
+Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
+
+
=====================================
README.md
=====================================
@@ -2,7 +2,7 @@
An analyzer for host agnostic Clojure code, written in Clojure and producing AST in EDN.
-I gave a talk on tools.analyzer[.jvm] at ClojureX in December 2015. Video [here](https://skillsmatter.com/skillscasts/7239-immutable-code-analysis-with-tools-analyzer)
+I gave a talk on tools.analyzer[.jvm] at ClojureX in December 2015. Video [here](https://www.youtube.com/watch?v=oZyt93lmF5s)
Timothy Baldridge gave a talk on tools.analyzer[.jvm] at Clojure/West in
March 2014. Video
@@ -19,7 +19,7 @@ Currently the following platform specific analyzers written on top of tools.anal
* [Developer Information](#developer-information)
* [License](#license)
-[Quickref](http://clojure.github.io/tools.analyzer/spec/quickref.html)
+[Quickref](https://clojure.github.io/tools.analyzer/spec/quickref.html)
========================================
## Example Usage
@@ -148,7 +148,7 @@ clojure.tools.analyzer.jvm> (ast/update-children (analyze '(do 1 (+ 1 2) :foo))
...},
...}
```
-If it's desiderable to walk all the AST applying a function to all the nodes and the children nodes, one of `walk`, `prewalk` or `postwalk` should be used, read the docstrings of the three functions to understand the differences.
+If it's desirable to walk all the AST applying a function to all the nodes and the children nodes, one of `walk`, `prewalk` or `postwalk` should be used, read the docstrings of the three functions to understand the differences.
Here's the previous example using `prewalk` instead of `update-children`:
```clojure
clojure.tools.analyzer.jvm> (ast/prewalk (analyze '(do 1 (+ 1 2) :foo))
@@ -186,7 +186,7 @@ Since version `0.6.0`, passes can be scheduled automatically using `clojure.tool
## SPONSORSHIP
-* Cognitect (http://cognitect.com/) has sponsored tools.analyzer development (https://groups.google.com/d/msg/clojure/iaP16MHpX0E/EMtnGmOz-rgJ)
+* Cognitect (https://cognitect.com/) has sponsored tools.analyzer development (https://groups.google.com/d/msg/clojure/iaP16MHpX0E/EMtnGmOz-rgJ)
* Ambrose BS (https://twitter.com/ambrosebs) has sponsored tools.analyzer development in his typed clojure campaign (http://www.indiegogo.com/projects/typed-clojure).
## YourKit
@@ -195,30 +195,29 @@ YourKit has given an open source license for their profiler, greatly simplifying
YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products:
-* <a href="http://www.yourkit.com/java/profiler/index.jsp">YourKit Java Profiler</a> and
-* <a href="http://www.yourkit.com/.net/profiler/index.jsp">YourKit .NET Profiler</a>.
+* <a href="https://www.yourkit.com/java/profiler/index.jsp">YourKit Java Profiler</a> and
+* <a href="https://www.yourkit.com/.net/profiler/index.jsp">YourKit .NET Profiler</a>.
Releases and Dependency Information
========================================
-Latest stable release: 0.7.0
+Latest stable release: 1.1.0
-* [All Released Versions](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.clojure%22%20AND%20a%3A%22tools.analyzer%22)
-
-* [Development Snapshot Versions](https://oss.sonatype.org/index.html#nexus-search;gav%7Eorg.clojure%7Etools.analyzer%7E%7E%7E)
+* [All Released Versions](https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.clojure%22%20AND%20a%3A%22tools.analyzer%22)
+* [Development Snapshot Versions](https://clojure.org/releases/downloads#_using_clojure_snapshot_releases)
[Leiningen](https://github.com/technomancy/leiningen) dependency information:
```clojure
-[org.clojure/tools.analyzer "0.7.0"]
+[org.clojure/tools.analyzer "1.1.0"]
```
-[Maven](http://maven.apache.org/) dependency information:
+[Maven](https://maven.apache.org/) dependency information:
```xml
<dependency>
<groupId>org.clojure</groupId>
<artifactId>tools.analyzer</artifactId>
- <version>0.7.0</version>
+ <version>1.1.0</version>
</dependency>
```
@@ -228,19 +227,15 @@ Latest stable release: 0.7.0
API Index
========================================
-* [CrossClj Documentation](http://crossclj.info/doc/org.clojure/tools.analyzer/lastest/index.html)
-* [API index](http://clojure.github.io/tools.analyzer)
+* [API index](https://clojure.github.io/tools.analyzer)
Developer Information
========================================
* [GitHub project](https://github.com/clojure/tools.analyzer)
-
-* [Bug Tracker](http://dev.clojure.org/jira/browse/TANAL)
-
-* [Continuous Integration](http://build.clojure.org/job/tools.analyzer/)
-
-* [Compatibility Test Matrix](http://build.clojure.org/job/tools.analyzer-test-matrix/)
+* [Bug Tracker](https://clojure.atlassian.net/browse/TANAL)
+* [Continuous Integration](https://build.clojure.org/job/tools.analyzer/)
+* [Compatibility Test Matrix](https://build.clojure.org/job/tools.analyzer-test-matrix/)
## License
=====================================
debian/README.source deleted
=====================================
@@ -1,10 +0,0 @@
-Since we're patching out piggieback, on new releases we need to generate the
-debian/pom.xml file after having applied patches:
-
- $ quilt push -a
- $ lein pom debian/pom.xml
- $ quilt pop -a
-
-We're not running the upstream testsuite as an autopkgtest, as it requires some
-files that are not packaged (in src/test). We _could_ package a -test package
-and try to include them, but it would mean a lot of patches and a trip via NEW.
=====================================
debian/changelog
=====================================
@@ -1,9 +1,23 @@
-tools-analyzer-clojure (1.0.0-3) UNRELEASED; urgency=normal
+tools-analyzer-clojure (1.1.1-1) unstable; urgency=medium
+
+ * Team upload.
[ Louis-Philippe Véronneau ]
* d/control: New email for the Clojure Team.
- -- Louis-Philippe Véronneau <pollo at debian.org> Sat, 08 Jan 2022 18:31:48 -0500
+ [ Jérôme Charaoui ]
+ * New upstream version 1.1.1
+ * d/control: remove redundant binary Depends
+ * d/control: bump Standards-Version, no changes needed
+ * d/patches: refresh patches for new upstream version
+ * d/rules: replace jh_installlibs override
+ * d/rules: honor nocheck flag in build options
+ * d/tests: run upstream testsuite with bultitude
+ * d/watch: fix tag pattern
+ * remove obsolete README.source
+ * run wrap-and-sort -bastk
+
+ -- Jérôme Charaoui <jerome at riseup.net> Wed, 01 Feb 2023 21:41:55 -0500
tools-analyzer-clojure (1.0.0-2) unstable; urgency=medium
=====================================
debian/control
=====================================
@@ -2,16 +2,18 @@ Source: tools-analyzer-clojure
Section: java
Priority: optional
Maintainer: Debian Clojure Maintainers <team+clojure at tracker.debian.org>
-Uploaders: Apollon Oikonomopoulos <apoikos at debian.org>
-Build-Depends: debhelper-compat (= 13),
- default-jdk,
- javahelper,
- maven-repo-helper,
- libclojure-java,
- libnrepl-clojure <!nocheck>,
- libcomplete-clojure <!nocheck>,
- leiningen,
-Standards-Version: 4.5.1
+Uploaders:
+ Apollon Oikonomopoulos <apoikos at debian.org>,
+Build-Depends:
+ debhelper-compat (= 13),
+ default-jdk,
+ javahelper,
+ leiningen,
+ libclojure-java,
+ libcomplete-clojure <!nocheck>,
+ libnrepl-clojure <!nocheck>,
+ maven-repo-helper,
+Standards-Version: 4.6.2
Vcs-Git: https://salsa.debian.org/clojure-team/tools-analyzer-clojure.git
Vcs-Browser: https://salsa.debian.org/clojure-team/tools-analyzer-clojure
Homepage: https://github.com/clojure/tools.analyzer
@@ -19,10 +21,11 @@ Rules-Requires-Root: no
Package: libtools-analyzer-clojure
Architecture: all
-Depends: ${java:Depends},
- ${misc:Depends},
- libclojure-java,
-Recommends: ${java:Recommends}
+Depends:
+ ${java:Depends},
+ ${misc:Depends},
+Recommends:
+ ${java:Recommends},
Description: analyzer for host agnostic Clojure code
An analyzer for host agnostic Clojure code, written in Clojure and producing
AST in EDN.
=====================================
debian/libtools-analyzer-clojure.docs
=====================================
@@ -1,2 +1,2 @@
-README.md
CONTRIBUTING.md
+README.md
=====================================
debian/libtools-analyzer-clojure.poms
=====================================
@@ -1 +1 @@
-debian/pom.xml --artifact=target/tools.analyzer.jar --usj-name=tools.analyzer
+debian/pom.xml --java-lib --artifact=target/tools.analyzer.jar --usj-name=tools.analyzer
=====================================
debian/patches/0001_Lein_Local.patch
=====================================
@@ -1,20 +1,30 @@
+From: Debian Clojure Maintainers <team+clojure at tracker.debian.org>
+Date: Wed, 1 Feb 2023 19:02:41 -0500
+Subject: Lein Local
+
Patch project.clj to build locally using lein.
-Index: tools-analyzer-clojure/project.clj
-===================================================================
---- tools-analyzer-clojure.orig/project.clj
-+++ tools-analyzer-clojure/project.clj
+
+Forwarded: not-needed
+---
+ project.clj | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/project.clj b/project.clj
+index d974047..6c03e26 100644
+--- a/project.clj
++++ b/project.clj
@@ -1,11 +1,11 @@
--(defproject org.clojure/tools.analyzer "0.7.1-SNAPSHOT"
-+(defproject org.clojure/tools.analyzer "1.0.0"
+-(defproject org.clojure/tools.analyzer "1.0.1-SNAPSHOT"
++(defproject org.clojure/tools.analyzer "1.1.1"
:description "An analyzer for Clojure code, written in Clojure and producing AST in EDN."
:url "https://github.com/clojure/tools.analyzer"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:source-paths ["src/main/clojure"]
:test-paths ["src/test/clojure"]
-- :dependencies [[org.clojure/clojure "1.9.0"]
+- :dependencies [[org.clojure/clojure "1.10.1"]
- [com.datomic/datomic-free "0.9.5327" :scope "provided" :exclusions [joda-time]]]
-+ :dependencies [[org.clojure/clojure "1.10.x"]]
++ :dependencies [[org.clojure/clojure "1.x"]]
:repositories [["sonatype" "https://oss.sonatype.org/content/repositories/releases"]
- ["snapshots" "https://oss.sonatype.org/content/repositories/snapshots"]])
+ ["snapshots" "https://oss.sonatype.org/content/repositories/snapshots"]]
=====================================
debian/rules
=====================================
@@ -20,10 +20,9 @@ override_dh_auto_build:
cd target && ln -sf $(NAME)-$(DEB_VERSION_UPSTREAM).jar $(NAME).jar
override_dh_auto_test:
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
lein test
-
-override_jh_installlibs:
- jh_installlibs target/$(NAME).jar
+endif
override_dh_clean:
rm -f debian/maven-repo
=====================================
debian/tests/control
=====================================
@@ -1,3 +1,11 @@
Tests: build
-Depends: @, clojure
+Depends:
+ clojure,
+ @,
Restrictions: superficial, allow-stderr
+
+Tests: upstream
+Depends:
+ clojure,
+ libbultitude-clojure,
+ @,
=====================================
debian/tests/upstream
=====================================
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -efu
+
+CLASSPATH=/usr/share/java/clojure.jar:/usr/share/java/bultitude.jar:/usr/share/java/tools.analyzer.jar:test
+
+cp -a src/test/clojure "$AUTOPKGTEST_TMP/test"
+cd "$AUTOPKGTEST_TMP"
+
+clojure \
+ -cp $CLASSPATH \
+ -e "(require '[clojure.test])" \
+ -e "(require '[bultitude.core :as b])" \
+ -e '(def all-tests (b/namespaces-on-classpath :classpath "test"))' \
+ -e "(map #(require %) all-tests)" \
+ -e '(System/exit (if (clojure.test/successful? (clojure.test/run-all-tests #"clojure.tools.analyzer\.\S+-test")) 0 1))'
=====================================
debian/watch
=====================================
@@ -1,4 +1,4 @@
version=4
opts="mode=git" \
https://github.com/clojure/tools.analyzer.git \
-refs/tags/tools.analyzer-([\d\.]+)
+refs/tags/(?:tools.analyzer-|v)?@ANY_VERSION@
=====================================
pom.xml
=====================================
@@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>tools.analyzer</artifactId>
- <version>1.0.0</version>
+ <version>1.1.1</version>
<name>tools.analyzer</name>
<description>An analyzer for Clojure code, written in Clojure and producing AST in EDN</description>
@@ -13,7 +13,7 @@
<parent>
<groupId>org.clojure</groupId>
<artifactId>pom.contrib</artifactId>
- <version>0.2.2</version>
+ <version>1.1.0</version>
</parent>
<developers>
@@ -27,6 +27,6 @@
<connection>scm:git:git://github.com/clojure/tools.analyzer.git</connection>
<developerConnection>scm:git:git://github.com/clojure/tools.analyzer.git</developerConnection>
<url>http://github.com/clojure/tools.analyzer</url>
- <tag>tools.analyzer-1.0.0</tag>
+ <tag>v1.1.1</tag>
</scm>
</project>
=====================================
project.clj
=====================================
@@ -1,11 +1,11 @@
-(defproject org.clojure/tools.analyzer "0.7.1-SNAPSHOT"
+(defproject org.clojure/tools.analyzer "1.0.1-SNAPSHOT"
:description "An analyzer for Clojure code, written in Clojure and producing AST in EDN."
:url "https://github.com/clojure/tools.analyzer"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:source-paths ["src/main/clojure"]
:test-paths ["src/test/clojure"]
- :dependencies [[org.clojure/clojure "1.9.0"]
+ :dependencies [[org.clojure/clojure "1.10.1"]
[com.datomic/datomic-free "0.9.5327" :scope "provided" :exclusions [joda-time]]]
:repositories [["sonatype" "https://oss.sonatype.org/content/repositories/releases"]
["snapshots" "https://oss.sonatype.org/content/repositories/snapshots"]])
=====================================
src/main/clojure/clojure/tools/analyzer.clj
=====================================
@@ -21,7 +21,7 @@
Setting up the global env is also required, see clojure.tools.analyzer.env
See clojure.tools.analyzer.core-test for an example on how to setup the analyzer."
- (:refer-clojure :exclude [macroexpand-1 macroexpand var? record? boolean?])
+ (:refer-clojure :exclude [macroexpand-1 macroexpand var? record? boolean? update-keys update-vals])
(:require [clojure.tools.analyzer.utils :refer :all]
[clojure.tools.analyzer.env :as env])
(:import (clojure.lang Symbol IPersistentVector IPersistentMap IPersistentSet ISeq IType IRecord)))
@@ -102,7 +102,7 @@
* :form the form represented by the AST node
* :env the environment map of the AST node
- Additionaly if the AST node contains sub-nodes, it is guaranteed to have:
+ Additionally if the AST node contains sub-nodes, it is guaranteed to have:
* :children a vector of the keys of the AST node mapping to the sub-nodes,
ordered, when that makes sense
=====================================
src/main/clojure/clojure/tools/analyzer/ast.clj
=====================================
@@ -12,7 +12,7 @@
(:require [clojure.tools.analyzer.utils :refer [into! rseqv mapv']]))
(defn cycling
- "Combine the given passes in a single pass that will be applieed repeatedly
+ "Combine the given passes in a single pass that will be applied repeatedly
to the AST until applying it another time will have no effect"
[& fns*]
(let [fns (cycle fns*)]
@@ -26,7 +26,7 @@
(defn children*
"Return a vector of vectors of the children node key and the children expression
of the AST node, if it has any.
- The returned vector returns the childrens in the order as they appear in the
+ The returned vector returns the children in the order as they appear in the
:children field of the AST, and the children expressions may be either a node
or a vector of nodes."
[{:keys [children] :as ast}]
=====================================
src/main/clojure/clojure/tools/analyzer/ast/query.clj
=====================================
@@ -29,7 +29,7 @@
"Given a Datomic query, walk the :where clauses searching for
expression clauses with nested calls, unnesting those calls.
- E.g {:where [[(inc (dec ?foo)) ?bar] ..] ..} will be transformed in
+ E.g {:where [[(inc (dec ?foo)) ?bar] ..] ..} will be transformed into
{:where [[(dec ?foo) ?1234] [(inc ?1234) ?bar] ..] ..}"
[query]
(let [{:keys [where] :as query} (query-map query)]
=====================================
src/main/clojure/clojure/tools/analyzer/env.clj
=====================================
@@ -10,9 +10,9 @@
(:refer-clojure :exclude [ensure]))
(def ^:dynamic *env*
- "Global env atom
+ "Global env atom containing a map.
Required options:
- * :namespaces an atom containing a map from namespace symbol to namespace map,
+ * :namespaces a map from namespace symbol to namespace map,
the namespace map contains at least the following keys:
** :mappings a map of mappings of the namespace, symbol to var/class
** :aliases a map of the aliases of the namespace, symbol to symbol
=====================================
src/main/clojure/clojure/tools/analyzer/passes.clj
=====================================
@@ -1,5 +1,6 @@
(ns clojure.tools.analyzer.passes
"Utilities for pass scheduling"
+ (:refer-clojure :exclude [update-vals])
(:require [clojure.tools.analyzer.ast :refer [prewalk postwalk]]
[clojure.tools.analyzer.utils :refer [update-vals]]))
@@ -65,7 +66,7 @@
* the remaining scheduler state
E.g. given:
- [{:walk :any .. } {:walk :pre ..} {:walk :post ..} {:walk :pre ..}]
+ [{:walk :any ..} {:walk :pre ..} {:walk :post ..} {:walk :pre ..}]
it will return:
[:pre [{:walk :any ..} {:walk :pre ..}] [{:walk :post ..} {:walk :pre ..}]]"
[state]
=====================================
src/main/clojure/clojure/tools/analyzer/passes/elide_meta.clj
=====================================
@@ -73,7 +73,10 @@
(if (= new-meta (:form meta))
ast
(assoc ast :meta (replace-meta meta new-meta)))
- (assoc (dissoc ast :meta) :children [:init]))
+ (let [ast (dissoc ast :meta)]
+ (if-let [new-children (not-empty (filterv (complement #{:meta}) (:children ast)))]
+ (assoc ast :children new-children)
+ (dissoc ast :children))))
ast)))
(defn elide-meta
=====================================
src/main/clojure/clojure/tools/analyzer/passes/uniquify.clj
=====================================
@@ -7,6 +7,7 @@
;; You must not remove this notice, or any other, from this software.
(ns clojure.tools.analyzer.passes.uniquify
+ (:refer-clojure :exclude [update-vals])
(:require [clojure.tools.analyzer.ast :refer [update-children children]]
[clojure.tools.analyzer.utils :refer [update-vals]]
[clojure.tools.analyzer.env :as env]))
=====================================
src/main/clojure/clojure/tools/analyzer/passes/warn_earmuff.clj
=====================================
@@ -17,8 +17,8 @@
(let [name (str (:name ast))]
(when (and (= :def (:op ast))
(> (count name) 2) ;; Allow * and ** as non-dynamic names
- (.startsWith name "*")
- (.endsWith name "*")
+ (= (nth name 0) \*)
+ (= (nth name (dec (count name))) \*)
(not (dynamic? (:var ast) (:val (:meta ast)))))
(binding [*out* *err*]
(println "Warning:" name "not declared dynamic and thus is not dynamically rebindable,"
=====================================
src/main/clojure/clojure/tools/analyzer/utils.clj
=====================================
@@ -7,7 +7,7 @@
;; You must not remove this notice, or any other, from this software.
(ns clojure.tools.analyzer.utils
- (:refer-clojure :exclude [record? boolean?])
+ (:refer-clojure :exclude [record? boolean? update-keys update-vals])
(:require [clojure.tools.analyzer.env :as env])
(:import (clojure.lang IRecord IType IObj
IReference Var)))
=====================================
src/test/clojure/clojure/tools/analyzer/core_test.clj
=====================================
@@ -15,7 +15,7 @@
(= (first opname) \.) ; (.foo bar ..)
(let [[target & args] expr
args (list* (symbol (subs opname 1)) args)]
- (with-meta (list '. target (if (= 1 (count args)) ;; we don't know if (.foo bar) ia
+ (with-meta (list '. target (if (= 1 (count args)) ;; we don't know if (.foo bar) is
(first args) args)) ;; a method call or a field access
(meta form)))
@@ -36,7 +36,7 @@
(:macro (meta v)))
(apply v form env (rest form)) ; (m &form &env & args)
(desugar-host-expr form)))))
- form))
+ form))
(defmacro foo [] 1)
@@ -183,4 +183,20 @@
(let [i-ast (ast (1 2))]
(is (= :invoke (-> i-ast :op)))
(is (= 1 (-> i-ast :fn :form)))
- (is (= [2] (->> i-ast :args (mapv :form))))))
+ (is (= [2] (->> i-ast :args (mapv :form)))))
+
+ (let [def-ast (ast (def a))]
+ (is (= :def (-> def-ast :op)))
+ (is (empty? (-> def-ast :children)))
+ (is (nil? (:init def-ast))))
+
+ (let [def-ast (ast (def a nil))]
+ (is (= :def (-> def-ast :op)))
+ (is (= [:init] (:children def-ast)))
+ (is (= :const (-> def-ast :init :op))))
+
+ (let [def-ast (ast (def a "doc" nil))]
+ (is (= :def (-> def-ast :op)))
+ (is (= [:meta :init] (:children def-ast)))
+ (is (= "doc" (-> def-ast :doc)))
+ (is (= :const (-> def-ast :init :op)))))
=====================================
src/test/clojure/clojure/tools/analyzer/query_test.clj
=====================================
@@ -8,20 +8,37 @@
[clojure.tools.analyzer.utils :refer [compile-if]]
[clojure.tools.analyzer.passes.index-vector-nodes :refer [index-vector-nodes]]))
+(def clojure-version-seven-query
+ '[:find ?docstring
+ :where
+ [?def :op :def]
+ [?def :init ?fn]
+ [?fn :methods ?method]
+ [?method :body ?body]
+ [?body :statements ?statement]
+ [?statement :val ?docstring]
+ [?statement :type :string]
+ [?statement :idx 0]])
+
+(def clojure-version-eight-and-above-query
+ '[:find ?docstring
+ :where
+ [?def :op :def]
+ [?def :init ?fn]
+ [?fn :expr ?expr]
+ [?expr :methods ?method]
+ [?method :body ?body]
+ [?body :statements ?statement]
+ [?statement :val ?docstring]
+ [?statement :type :string]
+ [?statement :idx 0]])
+
(compile-if (Class/forName "datomic.Datom")
(deftest query
- (let [ast (ast/prewalk (ast (defn x [] "misplaced docstring" 1))
- index-vector-nodes)]
+ (let [ast (ast/prewalk (ast (defn x [] "misplaced docstring" 1))
+ index-vector-nodes)
+ the-query (if (< (:minor *clojure-version*) 8)
+ clojure-version-seven-query
+ clojure-version-eight-and-above-query)]
(is (= "misplaced docstring"
- (ffirst
- (q '[:find ?docstring
- :where
- [?def :op :def]
- [?def :init ?fn]
- [?fn :methods ?method]
- [?method :body ?body]
- [?body :statements ?statement]
- [?statement :val ?docstring]
- [?statement :type :string]
- [?statement :idx 0]]
- [ast])))))))
+ (ffirst (q the-query [ast])))))))
View it on GitLab: https://salsa.debian.org/clojure-team/tools-analyzer-clojure/-/compare/50254f402a1308fa8345cf620f1eeb4e5e59b96b...9bc71f2545d5477cdfa7d8e651e38ff11cc4373b
--
View it on GitLab: https://salsa.debian.org/clojure-team/tools-analyzer-clojure/-/compare/50254f402a1308fa8345cf620f1eeb4e5e59b96b...9bc71f2545d5477cdfa7d8e651e38ff11cc4373b
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20230202/414b7e33/attachment.htm>
More information about the pkg-java-commits
mailing list