Discussion:
[ANN] Leiningen 2.3.0 released
Phil Hagelberg
2013-08-09 03:28:18 UTC
Permalink
Hello everyone.

I'm happy to announce the release of Leiningen version 2.3.0. This
version contains mostly minor fixes, but some highlights include faster
test runs when using selectors (by skipping fixtures), better support
for detecting ambiguous version resolutions via :pedantic, and fixes to
better isolate different profiles in different :target-paths.

* Add `:eval-in :pprint` for debugging. (Phil Hagelberg)
* Support cleaning extra dirs with `:clean-targets`. (Yoshinori Kohyama)
* Test-selectors skip fixtures too, not just running tests. (Gary Fredericks)
* Place licenses and readmes into jars. (Phil Hagelberg)
* Include LICENSE as separate file in templates. (Wolodja Wentland)
* Allow aborting on ambiguous version resolution with `:pedantic`. (Nelson Morris, Phil Hagelberg)
* Scope `:compile-path` and `:native-path` under profile-specific target dir. (Phil Hagelberg)
* Fix bug where uberjar filename would include provided profile. (Phil Hagelberg)
* Deprecate explicit `self-install` command. (Phil Hagelberg)
* Fix bugs around long lines in jar manifests. (Leon Barrett)
* Support nested checkout dependencies. (Phil Hagelberg)
* Fix bugs around `:filespecs`. (Jean Niklas L'orange)

As usual, you can get the latest version by running `lein upgrade`.

Thanks to all the contributors who helped make this happen.

happy hacking,
Phil
Marcus Blankenship
2013-08-09 15:48:48 UTC
Permalink
No good deed goes unpunished, so here's my error *after* upgrading…

Error occurred during initialization of VM
java/lang/ClassNotFoundException: error in opening JAR file /Users/marcus/.lein/self-installs/leiningen-2.3.0-standalone.jar

Any ideas?
Post by Phil Hagelberg
Hello everyone.
I'm happy to announce the release of Leiningen version 2.3.0. This
version contains mostly minor fixes, but some highlights include faster
test runs when using selectors (by skipping fixtures), better support
for detecting ambiguous version resolutions via :pedantic, and fixes to
better isolate different profiles in different :target-paths.
* Add `:eval-in :pprint` for debugging. (Phil Hagelberg)
* Support cleaning extra dirs with `:clean-targets`. (Yoshinori Kohyama)
* Test-selectors skip fixtures too, not just running tests. (Gary Fredericks)
* Place licenses and readmes into jars. (Phil Hagelberg)
* Include LICENSE as separate file in templates. (Wolodja Wentland)
* Allow aborting on ambiguous version resolution with `:pedantic`. (Nelson Morris, Phil Hagelberg)
* Scope `:compile-path` and `:native-path` under profile-specific target dir. (Phil Hagelberg)
* Fix bug where uberjar filename would include provided profile. (Phil Hagelberg)
* Deprecate explicit `self-install` command. (Phil Hagelberg)
* Fix bugs around long lines in jar manifests. (Leon Barrett)
* Support nested checkout dependencies. (Phil Hagelberg)
* Fix bugs around `:filespecs`. (Jean Niklas L'orange)
As usual, you can get the latest version by running `lein upgrade`.
Thanks to all the contributors who helped make this happen.
happy hacking,
Phil
MARCUS BLANKENSHIP
\\\ Owner, Problem Solver, Thinker
\\\ 541.805.2736 \ @justzeros \ skype:marcuscreo
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@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+***@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+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Tim Visher
2013-08-09 16:06:32 UTC
Permalink
`lein upgrade` Just Worked™ for me.

On Fri, Aug 9, 2013 at 11:48 AM, Marcus Blankenship
Post by Marcus Blankenship
No good deed goes unpunished, so here's my error *after* upgrading…
Error occurred during initialization of VM
java/lang/ClassNotFoundException: error in opening JAR file /Users/marcus/.lein/self-installs/leiningen-2.3.0-standalone.jar
Any ideas?
Post by Phil Hagelberg
Hello everyone.
I'm happy to announce the release of Leiningen version 2.3.0. This
version contains mostly minor fixes, but some highlights include faster
test runs when using selectors (by skipping fixtures), better support
for detecting ambiguous version resolutions via :pedantic, and fixes to
better isolate different profiles in different :target-paths.
* Add `:eval-in :pprint` for debugging. (Phil Hagelberg)
* Support cleaning extra dirs with `:clean-targets`. (Yoshinori Kohyama)
* Test-selectors skip fixtures too, not just running tests. (Gary Fredericks)
* Place licenses and readmes into jars. (Phil Hagelberg)
* Include LICENSE as separate file in templates. (Wolodja Wentland)
* Allow aborting on ambiguous version resolution with `:pedantic`. (Nelson Morris, Phil Hagelberg)
* Scope `:compile-path` and `:native-path` under profile-specific target dir. (Phil Hagelberg)
* Fix bug where uberjar filename would include provided profile. (Phil Hagelberg)
* Deprecate explicit `self-install` command. (Phil Hagelberg)
* Fix bugs around long lines in jar manifests. (Leon Barrett)
* Support nested checkout dependencies. (Phil Hagelberg)
* Fix bugs around `:filespecs`. (Jean Niklas L'orange)
As usual, you can get the latest version by running `lein upgrade`.
Thanks to all the contributors who helped make this happen.
happy hacking,
Phil
MARCUS BLANKENSHIP
\\\ Owner, Problem Solver, Thinker
--
--
You received this message because you are subscribed to the Google Groups "Clojure" group.
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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.
For more options, visit https://groups.google.com/groups/opt_out.
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@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+***@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+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Marcus Blankenship
2013-08-09 16:07:35 UTC
Permalink
Lucky…
Post by Tim Visher
`lein upgrade` Just Worked™ for me.
On Fri, Aug 9, 2013 at 11:48 AM, Marcus Blankenship
Post by Marcus Blankenship
No good deed goes unpunished, so here's my error *after* upgrading…
Error occurred during initialization of VM
java/lang/ClassNotFoundException: error in opening JAR file /Users/marcus/.lein/self-installs/leiningen-2.3.0-standalone.jar
Any ideas?
Post by Phil Hagelberg
Hello everyone.
I'm happy to announce the release of Leiningen version 2.3.0. This
version contains mostly minor fixes, but some highlights include faster
test runs when using selectors (by skipping fixtures), better support
for detecting ambiguous version resolutions via :pedantic, and fixes to
better isolate different profiles in different :target-paths.
* Add `:eval-in :pprint` for debugging. (Phil Hagelberg)
* Support cleaning extra dirs with `:clean-targets`. (Yoshinori Kohyama)
* Test-selectors skip fixtures too, not just running tests. (Gary Fredericks)
* Place licenses and readmes into jars. (Phil Hagelberg)
* Include LICENSE as separate file in templates. (Wolodja Wentland)
* Allow aborting on ambiguous version resolution with `:pedantic`. (Nelson Morris, Phil Hagelberg)
* Scope `:compile-path` and `:native-path` under profile-specific target dir. (Phil Hagelberg)
* Fix bug where uberjar filename would include provided profile. (Phil Hagelberg)
* Deprecate explicit `self-install` command. (Phil Hagelberg)
* Fix bugs around long lines in jar manifests. (Leon Barrett)
* Support nested checkout dependencies. (Phil Hagelberg)
* Fix bugs around `:filespecs`. (Jean Niklas L'orange)
As usual, you can get the latest version by running `lein upgrade`.
Thanks to all the contributors who helped make this happen.
happy hacking,
Phil
MARCUS BLANKENSHIP
\\\ Owner, Problem Solver, Thinker
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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.
For more options, visit https://groups.google.com/groups/opt_out.
--
--
You received this message because you are subscribed to the Google Groups "Clojure" group.
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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.
For more options, visit https://groups.google.com/groups/opt_out.
MARCUS BLANKENSHIP
\\\ Owner, Problem Solver, Thinker
\\\ 541.805.2736 \ @justzeros \ skype:marcuscreo
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@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+***@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+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Phil Hagelberg
2013-08-09 20:17:58 UTC
Permalink
Hey everyone; sorry for the chaos around this release. The upload process
is now fully automated[1] to reduce manual error, and I'm going to make
sure a few other people have access to the S3 bucket so if something like
this happens again it can be fixed when I'm not around.

There's been one bug found in this release[2] that you might want to be
aware of if you produce regular jars with AOT. (uberjars are not affected)
The issue comments contain a workaround, but we'll be cutting a 2.3.1
release in a few days.

-Phil

[1] -
https://github.com/technomancy/leiningen/commit/9d93cdd19eaf2cd5f73242bc75c3115181326287

[2] - https://github.com/technomancy/leiningen/issues/1283
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@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+***@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+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
John Jacobsen
2013-08-10 01:32:06 UTC
Permalink
Hi Phil, all,

I'm still seeing the error which (I think) others have been reporting here:

***@precise32:/tmp$ lein upgrade
Downloading Leiningen to
/home/vagrant/.lein/self-installs/leiningen-2.3.0-standalone.jar now...
/home/vagrant/bin/lein: line 57:
/home/vagrant/.lein/self-installs/leiningen-2.3.0-standalone.jar.pending:
No such file or directory
/home/vagrant/bin/lein: line 63: download_failed_message: command not found
***@precise32:/tmp$

please advise? Thanks!

John
Post by Phil Hagelberg
Hey everyone; sorry for the chaos around this release. The upload process
is now fully automated[1] to reduce manual error, and I'm going to make
sure a few other people have access to the S3 bucket so if something like
this happens again it can be fixed when I'm not around.
There's been one bug found in this release[2] that you might want to be
aware of if you produce regular jars with AOT. (uberjars are not affected)
The issue comments contain a workaround, but we'll be cutting a 2.3.1
release in a few days.
-Phil
[1] -
https://github.com/technomancy/leiningen/commit/9d93cdd19eaf2cd5f73242bc75c3115181326287
[2] - https://github.com/technomancy/leiningen/issues/1283
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@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+***@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+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Phil Hagelberg
2013-08-10 03:58:30 UTC
Permalink
Post by John Jacobsen
please advise? Thanks!
Hm; looks like self-install is getting invoked too soon. Not sure why it
was working for me earlier.

Try setting `export HTTP_CLIENT="wget -O"` for now.

-Phil
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@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+***@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+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
John Jacobsen
2013-08-10 04:21:14 UTC
Permalink
That worked for now, thanks!
Post by Phil Hagelberg
Post by John Jacobsen
please advise? Thanks!
Hm; looks like self-install is getting invoked too soon. Not sure why it
was working for me earlier.
Try setting `export HTTP_CLIENT="wget -O"` for now.
-Phil
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@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+***@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+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Sean Corfield
2013-08-10 05:07:39 UTC
Permalink
Yup, this killed my whole team for half a day today since I'd pushed
the 2.3.0 script to our repo after the upgrade worked for me, and then
hit the road for So. Cal. and everyone else then had a broken build
for the rest of the day because the upgrade process broke due to this
403 forbidden issue again. I've just reverted us to 2.1.3 again.

Can we _please_ get the Leiningen artifacts placed somewhere that
doesn't cause all sorts of SSL problems? This has been a repeated
problem over the last several releases. Mac and Windows users have
been s.o.l. each time until it is resolved.

Perhaps put Leiningen JARs on Clojars instead of this flaky custom location?

Sean
Post by John Jacobsen
Hi Phil, all,
Downloading Leiningen to
/home/vagrant/.lein/self-installs/leiningen-2.3.0-standalone.jar now...
/home/vagrant/.lein/self-installs/leiningen-2.3.0-standalone.jar.pending: No
such file or directory
/home/vagrant/bin/lein: line 63: download_failed_message: command not found
please advise? Thanks!
John
Post by Phil Hagelberg
Hey everyone; sorry for the chaos around this release. The upload process
is now fully automated[1] to reduce manual error, and I'm going to make sure
a few other people have access to the S3 bucket so if something like this
happens again it can be fixed when I'm not around.
There's been one bug found in this release[2] that you might want to be
aware of if you produce regular jars with AOT. (uberjars are not affected)
The issue comments contain a workaround, but we'll be cutting a 2.3.1
release in a few days.
-Phil
[1] -
https://github.com/technomancy/leiningen/commit/9d93cdd19eaf2cd5f73242bc75c3115181326287
[2] - https://github.com/technomancy/leiningen/issues/1283
--
--
You received this message because you are subscribed to the Google Groups "Clojure" group.
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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
For more options, visit https://groups.google.com/groups/opt_out.
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@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+***@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+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Phil Hagelberg
2013-08-10 15:26:37 UTC
Permalink
Post by Sean Corfield
Can we _please_ get the Leiningen artifacts placed somewhere that
doesn't cause all sorts of SSL problems? This has been a repeated
problem over the last several releases. Mac and Windows users have
been s.o.l. each time until it is resolved.
None of these problems have had anything to do with SSL.

It's been two things: the self-install function was moved, and the S3 ACL
was incorrect due to a typo while uploading. The S3 issues are being
addressed by ensuring more of the Leiningen team has access to the AWS
account; the reason I'm waiting for the 2.3.1 release is that I want to
find a time when I can step through it with one of the other contributors
so they are familiar with the process and can do it when I'm not around.

The self-install was broken such that the implicit self-install happened
before HTTP_CLIENT was set. The explicit self-install command happens later
if you're running it from a checkout of Leiningen itself, which must have
been the case when I was testing.

Anyway, a new download location wouldn't solve either of these issues.

In the mean time I've reset the "stable" branch back to 2.2.0, so upgrades
and new users won't be affected. If you want to use 2.3.0, you can export
HTTP_CLIENT and run `lein upgrade 2.3.0` specifically and it will still
pull it in.

You can always back out of an upgrade by running `lein upgrade 2.1.3` or
whatever; the upgrade command doesn't care which direction it's going.

-Phil
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@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+***@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+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
John Gabriele
2013-08-12 13:56:23 UTC
Permalink
Post by Phil Hagelberg
None of these problems have had anything to do with SSL.
It's been two things: the self-install function was moved, and the S3 ACL
was incorrect due to a typo while uploading. The S3 issues are being
addressed by ensuring more of the Leiningen team has access to the AWS
account; the reason I'm waiting for the 2.3.1 release is that I want to
find a time when I can step through it with one of the other contributors
so they are familiar with the process and can do it when I'm not around.
The self-install was broken such that the implicit self-install happened
before HTTP_CLIENT was set. The explicit self-install command happens later
if you're running it from a checkout of Leiningen itself, which must have
been the case when I was testing.
Anyway, a new download location wouldn't solve either of these issues.
In the mean time I've reset the "stable" branch back to 2.2.0, so upgrades
and new users won't be affected. If you want to use 2.3.0, you can export
HTTP_CLIENT and run `lein upgrade 2.3.0` specifically and it will still
pull it in.
You can always back out of an upgrade by running `lein upgrade 2.1.3` or
whatever; the upgrade command doesn't care which direction it's going.
Phil,

Thank you (and the other contributors) for all your work on lein. Although
there's an occasional hiccup, it's been wonderful to use.

Much appreciated!

Also, did not know that `lein` could also be used to downgrade. Neat.

-- John
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@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+***@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+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Greg
2013-08-12 16:29:53 UTC
Permalink
Hey Phil, thanks for the update!
Post by Phil Hagelberg
As usual, you can get the latest version by running `lein upgrade`.
I used Homebrew to upgrade. Do you happen to know what the relationship is between your `lein upgrade` command and the `brew upgrade leiningen` command?

For example, if lein was installed view Homebrew, should it also be upgraded via Homebrew, or can it be upgraded later via the lein upgrade command? Or could that cause problems?

For safety's sake, I didn't test what would happen myself and just used Homebrew to update it.

- Greg

--
Please do not email me anything that you are not comfortable also sharing with the NSA.
Post by Phil Hagelberg
Hello everyone.
I'm happy to announce the release of Leiningen version 2.3.0. This
version contains mostly minor fixes, but some highlights include faster
test runs when using selectors (by skipping fixtures), better support
for detecting ambiguous version resolutions via :pedantic, and fixes to
better isolate different profiles in different :target-paths.
* Add `:eval-in :pprint` for debugging. (Phil Hagelberg)
* Support cleaning extra dirs with `:clean-targets`. (Yoshinori Kohyama)
* Test-selectors skip fixtures too, not just running tests. (Gary Fredericks)
* Place licenses and readmes into jars. (Phil Hagelberg)
* Include LICENSE as separate file in templates. (Wolodja Wentland)
* Allow aborting on ambiguous version resolution with `:pedantic`. (Nelson Morris, Phil Hagelberg)
* Scope `:compile-path` and `:native-path` under profile-specific target dir. (Phil Hagelberg)
* Fix bug where uberjar filename would include provided profile. (Phil Hagelberg)
* Deprecate explicit `self-install` command. (Phil Hagelberg)
* Fix bugs around long lines in jar manifests. (Leon Barrett)
* Support nested checkout dependencies. (Phil Hagelberg)
* Fix bugs around `:filespecs`. (Jean Niklas L'orange)
As usual, you can get the latest version by running `lein upgrade`.
Thanks to all the contributors who helped make this happen.
happy hacking,
Phil
Phil Hagelberg
2013-08-12 16:42:38 UTC
Permalink
Post by Greg
I used Homebrew to upgrade. Do you happen to know what the relationship
is between your `lein upgrade` command and the `brew upgrade leiningen`
command?

We include a `bin/lein-pkg` script for downstream packagers like Debian,
homebrew, etc, which has the upgrade and self-install functionality
removed. However, last I checked, the homebrew packagers were not aware of
this and just packaged the regular `bin/lein` script. I mentioned it in
some issue comments, but I don't know if they've switched yet. I suspect
using `lein upgrade` for an installation that wasn't done manually would
cause problems, but I don't know anything about homebrew specifically.

-Phil
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@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+***@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+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Continue reading on narkive:
Loading...