Skip to content

Commit

Permalink
Get ready for release 1.1.0rc1
Browse files Browse the repository at this point in the history
  • Loading branch information
rocky committed Oct 24, 2020
1 parent ffa2de1 commit 6525df7
Show file tree
Hide file tree
Showing 9 changed files with 133 additions and 41 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ mathics/doc/tex/mathics-*.asy
mathics/doc/tex/mathics-*.eps
mathics/doc/tex/mathics-*.pdf
mathics/doc/tex/mathics-*.dvi
mathics/doc/tex/mathics-*.tex
mathics/doc/tex/mathics.aux
mathics/doc/tex/mathics.dvi
mathics/doc/tex/mathics.fdb_latexmk
Expand Down
59 changes: 35 additions & 24 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
CHANGES
=======

1.1
---
1.1.0 rc1
---------

Package Updates
+++++++++++++++

All major packages that Mathics needs have been updated for more recent
releases. Specifically These include:

- Python: Python 3.6-3.8 is now supported.
- sympy 1.6.2
- Python: Python 3.6-3.9 are now supported.
- cython >= 0.15.1
- Django 3.1.x

- mpmath => 1.1.0
- sympy 1.6.2

New features (50+ builtins):
++++++++++++++++++++++++++++
Expand Down Expand Up @@ -57,7 +57,7 @@ Ehancements and Bug fixes:
+++++++++++++++++++++++++++

- speed up leading-blank patterns #625, #933
- support for iteration over Sequence objects in Table, Sum, and Product
- support for iteration over Sequence objects in Table, Sum, and Product
- fixes for option handling
- fixes for ``Manipulate[x,{x,{a,b}}]``
- fixes rule -> rule case for ``Nearest``
Expand Down Expand Up @@ -106,17 +106,17 @@ Backward incompatablities:

- Support for Python 3.5 and earlier, and in particular Python 2.7,
has dropped
- The `graphs` module (for Graphs) has been pulled until Mathics
- The ``graphs`` module (for Graphs) has been pulled until Mathics
supports pymathics and graphics using networkx better. It will
reappear as a pymathics module.
- The `natlang` (for Natural Language processing) has also been
- The ``natlang`` (for Natural Language processing) has also been
pulled. The problem here too is that the pymathics mechanism needs
a small amount of work to make it scalable, and in 1.0 these were
hard coded. Also, both this module and `graphs` pulled in some
hard coded. Also, both this module and ``graphs`` pulled in some
potentially hard-to-satisfy non-Python dependencies such as
matplotlib, or NLP libraries, and word lists. All of this made
installation of mathics harder, and the import of these libraries,
`natlang` in particular took some time. All of this points to having
``natlang`` in particular took some time. All of this points to having
these live in their own repositories and get imported on laziliy on
demand

Expand All @@ -125,7 +125,8 @@ Backward incompatablities:
1.0
---

New features:
New features
++++++++++++

- ``LinearModelFit`` #592
- ``EasterSunday`` #590
Expand Down Expand Up @@ -212,7 +213,8 @@ New features:
- ``StringExpression`` #339
- Legacy file functions #338

Bug fixes:
Bug fixes
++++++++++

- Nested ``Module`` #591, #584
- Python2 Import bug #565
Expand Down Expand Up @@ -242,12 +244,13 @@ Bug fixes:
- Fix ``Begin``/``BeginPackage`` leaking user-visible symbols #352
- Fix ``TableForm`` and ``Dimensions`` with an empty list #343
- Trailing slash bug #337
- Global system bug #336
- ``Global`` system bug #336
- ``Null`` comparison bug #371
- ``CompoundExpression`` ``Out[n]`` assignment bug #335 fixes #331
- ``CompoundExpression`` and ``Out[n]`` assignment bug #335 fixes #331
- load unevaluated cells #332

Performance improvements:
Performance improvements
++++++++++++++++++++++++

- Large expression formatting with ``$OutputSizeLimit`` #581
- Faster terminal output #579
Expand Down Expand Up @@ -275,7 +278,8 @@ Performance improvements:
0.9
---

New features:
New features
++++++++++++

- Improved syntax error messages #329
- SVD, LeastSquares, PseudoInverse #258, #321
Expand Down Expand Up @@ -314,28 +318,32 @@ Bug fixes:
0.8
---

New features:
New features
+++++++++++++

- Improvements to 3D Plotting, see #238
- Enable MathJax menu, see #236
- Improvements to documentation

Dependency Updates:
Dependency Updates
++++++++++++++++++

- upgrade to sympy 0.7.6
- upgrade to ply3.6 (new parsetab format, see #246)
- upgrade to mpmath 0.19

Bug Fixes:
Bug Fixes
+++++++++

- IntegerDigits[0]



0.7
---
+++

New features:
New features
++++++++++++

- Readline tab completion
- automatic database initialisation
Expand All @@ -344,7 +352,8 @@ New features:
- More tests and documentation for ``Sequence``
- Context support

Bugs fixed:
Bugs fixed
++++++++++

- Fix unevaluated index handling (issue #217)
- Fix ``Solve`` treating one solution equal to 1 as a tautology (issue
Expand All @@ -363,7 +372,8 @@ Bugs fixed:
0.6
---

New features:
New features
++++++++++++

- ElementData using data from Wikipedia
- added Switch
Expand All @@ -387,7 +397,8 @@ New features:
- Use interruptingcow to limit evaluation time
- Character Code functions

Bugs fixed:
Bugs fixed
++++++++++

- Fix divide-by-zero with zero-length plot range
- Fix mathicsserver exception on startup with Django 1.6 (issues #194,
Expand Down
9 changes: 4 additions & 5 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
include README.rst
include CHANGES.rst
include ChangeLog
include COPYING
include COPYING.txt
include FUTURE.rst
include Makefile
include test/Makefile
recursive-include mathics
recursive-include xdis *.py
recursive-exclude __pycache__
include mathics/Makefile
include mathics/Makefile
recursive-include mathics *.py
recursive-include test *.py
19 changes: 19 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@ Mathics is a general-purpose computer algebra system (CAS). It is an open-source

The home page of Mathics is https://mathics.org.


ScreenShots
-----------

mathicsscript: a text interface
+++++++++++++++++++++++++++++++

|mathicsscript|

mathicsserver: a Django-based Web interface
+++++++++++++++++++++++++++++++++++++++++++

|mathicssserver|


Installing and Running
----------------------

Expand All @@ -23,6 +38,10 @@ Please feel encouraged to contribute to Mathics! Create your own fork, make the
.. _Travis: https://travis-ci.org/mathics/Mathics
.. |PyPI| image:: https://img.shields.io/pypi/v/Mathics
.. _PyPI: https://pypi.org/project/Mathics/
.. |mathicsscript| image:: https://mathics.org/screenshots/mathicsscript.png
.. |mathicssserver| image:: https://mathics.org/screenshots/mathicsserver.png



License
-------
Expand Down
38 changes: 38 additions & 0 deletions admin-tools/make-dist.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/bin/bash
PACKAGE=mathics

# FIXME put some of the below in a common routine
function finish {
cd $owd
}

cd $(dirname ${BASH_SOURCE[0]})
owd=$(pwd)
trap finish EXIT

if ! source ./pyenv-versions ; then
exit $?
fi


cd ..
source $PACKAGE/version.py
echo $__version__

for pyversion in $PYVERSIONS; do
if ! pyenv local $pyversion ; then
exit $?
fi
# pip bdist_egg create too-general wheels. So
# we narrow that by moving the generated wheel.

# Pick out first two number of version, e.g. 3.7.9 -> 37
first_two=$(echo $pyversion | cut -d'.' -f 1-2 | sed -e 's/\.//')
rm -fr build
python setup.py bdist_egg
python setup.py bdist_wheel
python setup.py bdist_wheel --universal
mv -v dist/${PACKAGE}-$VERSION-{py2.py3,py$first_two}-none-any.whl
done

python ./setup.py sdist
8 changes: 8 additions & 0 deletions admin-tools/pyenv-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# -*- shell-script -*-
# Sets PYVERSIONS to be pyenv versions that
# we can use in the master branch.
if [[ $0 == ${BASH_SOURCE[0]} ]] ; then
echo "This script should be *sourced* rather than run directly through bash"
exit 1
fi
export PYVERSIONS='3.6.12 3.7.9 3.8.6 3.9.0'
6 changes: 1 addition & 5 deletions mathics/builtin/evaluation.py
Original file line number Diff line number Diff line change
Expand Up @@ -469,14 +469,10 @@ class Quit(Builtin):
"""

rules = {"Exit[n___]":"Quit[n]", }

def apply(self, evaluation, n):
'%(name)s[n___]'
exitcode = 0
if isinstance(n, Integer):
exitcode =(n.get_int_value())
raise SystemExit(exitcode)




5 changes: 4 additions & 1 deletion mathics/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@
# -*- coding: utf-8 -*-


__version__ = '1.1.dev0'
# This file is suitable for sourcing inside POSIX shell as
# well as importing into Python. That's why there is no
# space around "=" below.
__version__="1.1.0rc1" # noqa
29 changes: 23 additions & 6 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
"""

import sys
import os.path as osp
import platform
from setuptools import setup, Command, Extension

Expand All @@ -34,9 +35,22 @@
print("Mathics does not support Python %d.%d" % sys.version_info[:2])
sys.exit(-1)

def get_srcdir():
filename = osp.normcase(osp.dirname(osp.abspath(__file__)))
return osp.realpath(filename)


def read(*rnames):
return open(osp.join(get_srcdir(), *rnames)).read()


# stores __version__ in the current namespace
exec(compile(open("mathics/version.py").read(), "mathics/version.py", "exec"))

# Get/set VERSION and long_description from files
long_description = read("README.rst") + "\n"


is_PyPy = platform.python_implementation() == "PyPy"

INSTALL_REQUIRES = []
Expand Down Expand Up @@ -70,13 +84,14 @@
"django >= 3.0, < 3.2",
"mpmath>=1.1.0",
"numpy",
"palettable", # For bar charts, and portable, no-proprietary color palletes
"palettable", # For bar charts, and portable, no-proprietary color palletes
"pint",
"python-dateutil",
"llvmlite",
"requests",
]


def subdirs(root, file="*.*", depth=10):
for k in range(depth):
yield root + "*/" * k + file
Expand Down Expand Up @@ -112,7 +127,7 @@ def run(self):

database_file = settings["DATABASES"]["default"]["NAME"]
print("Creating data directory %s" % settings["DATA_DIR"])
if not os.path.exists(settings["DATA_DIR"]):
if not osp.exists(settings["DATA_DIR"]):
os.makedirs(settings["DATA_DIR"])
print("Creating database %s" % database_file)
try:
Expand Down Expand Up @@ -180,14 +195,16 @@ def run(self):
"mathics.web",
"mathics.web.templatetags",
"mathics.web.migrations",
"pymathics.testpymathicsmodule"
"pymathics.testpymathicsmodule",
],
install_requires=INSTALL_REQUIRES,
dependency_links=DEPENDENCY_LINKS,
package_data={
"mathics": [
"data/*.csv",
"data/ExampleData/*",
"doc/xml/data",
"doc/tex/data",
"autoload/formats/*/Import.m",
"autoload/formats/*/Export.m",
"packages/*/*.m",
Expand Down Expand Up @@ -219,11 +236,12 @@ def run(self):
"mathicsscript = mathics.script:main",
],
},
long_description=long_description,
long_description_content_type="text/x-rst",
# don't pack Mathics in egg because of media files, etc.
zip_safe=False,
# metadata for upload to PyPI
author="Angus Griffith",
author_email="[email protected]",
maintainer="Mathics Group",
description="A general-purpose computer algebra system.",
license="GPL",
url="https://mathics.org/",
Expand All @@ -234,7 +252,6 @@ def run(self):
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Programming Language :: Python",

"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
Expand Down

0 comments on commit 6525df7

Please sign in to comment.