.. -*- Mode: rst -*-

.. include:: abbreviation.txt
.. include:: project-links.txt

.. no title here

V1.5.0 (development release)
----------------------------

V1.4.3 (production release) 2020-07-04
--------------------------------------

A huge effort, thanks to @stuarteberg Stuart Berg, has been made to make Ngspice and PySpice
available on Anaconda (conda-forge) for the Window, OSX and Linux platforms.  Thanks to the
conda-forge continuous integration platform, we can now run unit tests and the examples on theses
platforms automatically.  Hope this will make the software more robust and easier to run !

* PySpice is now available on Anaconda(conda-forge) as well as a wheel on PyPI
* Added a post installation tool to download the Ngspice DLL on Windows and to check the installation.
  It should now simplify considerably the PySpice installation on Windows.
* This tool can also download the examples and the Ngspice PDF manual.
* On Linux and OSX, a Ngspice package is now available on Anaconda(conda-forge).
  Note that theses two platforms do not download a binary from Ngspice since a compiler can easily be installed on theses platforms.
* Updated installation documentation for Linux, the main distributions now provide a ngspice shared package.

* Added a front-end web site so as to keep older releases documentation available on the web.
* fixed and rebuilt all examples (but mistakes could happen ...)
* examples are now available as Python files and Jupyter notebooks
  (but some issues must be fixed, e.g. due to the way Jupyter handles Matplotlib plots)

* support NgSpice 32 API (no change)
* removed @substitution@ in PySpice/__init__.py, beacause it breaks pip install from git
* fixed some logging spams
* fixed NonLinearVoltageSource
* fixed Unicode issue with °C (° is Extended ASCII)
* fixed ffi_string_utf8 for UnicodeDecodeError
* fixed logging formater for OSX (removed ANSI codes)
* reworded "Invalid plot name" exception
* removed diacritics in example filenames
* cir2py has been converted to an entry point so as to work on all platforms
* updated Matplotlib subplots in examples
* added a unit example
* added a NMOS example (thanks to cyber-g) cf. #221

V1.4.0 2020-05-05
-----------------

This release is yanked due to broken Windows support.

* fixed nasty issue with NgSpice shared for `setlocale(LC_NUMERIC, "C");` cf. #172
* fixed `AC AC_MAG AC_PASAE SIN` for new NgSpice syntax
* fixed `initial_state` for `VoltageControlledSwitch`
* fixed `LosslessTransmissionLine` #169
* fixed docstrings for element shortcut methods (thanks to Kyle Dunn) #178
* fixed parser for leading whitespace (thanks to Matt Huszagh) #182
* fix for PyYAML newer API
* support NgSpice 31 API (no change)
* added check for `CoupledInductor` #157
* added `check-installation` tool to help to fix broken installation
* added pole-zero, noise, distorsion, transfer-function analyses (thanks to Peter Garrone) #191
* added `.measure` support (thanks to ceprio) #160
* added `log_desk` parameter to `CircuitSimulator`
* added `listing` command method to `NgSpiceShared`
* added Xyce Mosfet nfin #177

V1.3.2  2019-03-11
------------------

 * support Ngspice 30 and Xyce 6.10
 * fixed NgSpice and Xyce support on Windows 10
 * bug fixes

V1.2.0 2018-06-07
-----------------

 * Initial support of the |Xyce|_ simulator.  Xyce is an open source, SPICE-compatible,
   high-performance analog circuit simulator, capable of solving extremely large circuit problems
   developed at Sandia National Laboratories.  Xyce will make PySpice suitable for industry and
   research use.
 * Fixed OSX support
 * Splitted G device
 * Implemented partially `A` XSPICE device
 * Implemented missing transmission line devices
 * Implemented high level current sources
   **Notice: Some classes were renamed !**
 * Implemented node kwarg e.g. :code:`circuit.Q(1, base=1, collector=2, emitter=3, model='npn')`
 * Implemented raw spice pass through (see `User FAQ </faq.html>`_)
 * Implemented access to internal parameters (cf. :code:`save @device[parameter]`)
 * Implemented check for missing ground node
 * Implemented a way to disable an element and clone netlist
 * Improved SPICE parser
 * Improved unit support:

   * Implemented unit prefix cast `U_μV(U_mV(1))` to easily convert values
   * Added `U_mV`, ... shortcuts
   * Added Numpy array support to unit, see `UnitValues` **Notice: this new feature could be buggy !!!**
   * Rebased `WaveForm` to `UnitValues`

 * Fixed node order so as to not confuse users **Now PySpice matches SPICE order for two ports elements !**
 * Fixed device shortcuts in `Netlist` class
 * Fixed model kwarg for BJT **Notice: it must be passed exclusively as kwarg !**
 * Fixed subcircuit nesting
 * Outsourced documentation generator to |Pyterate|_
 * Updated `setup.py` for wheel

.. :ref:`user-faq-page`

V1.1.0 2017-09-06
-----------------

 * Enhanced shared mode
 * Shared mode is now set as default on Linux

V1.0.0 2017-09-06
-----------------

 * Bump version to v1.0.0 since it just works!
 * Support Windows platform using Ngspice shared mode
 * Fixed shared mode
 * Fixed and completed Spice parser : tested on example's libraries

V0.4.2
------

 * Fixed Spice parser for lower case device prefix.

V0.4.0 2017-07-31
-----------------

 * Git repository cleanup: filtered generated doc and useless files so as to shrink the repository size.
 * Improved documentation generator: Implemented :code:`format` for RST content and Tikz figure.
 * Improved unit support: It implements now the International System of Units.
   And we can now use unit helper like :code:`u_mV` or compute the value of :code:`1.2@u_kΩ / 2@u_mA`.
   The relevant documentation is on this `page <api/PySpice/Unit.html>`_.
 * Added the Simulation instance to the Analysis class.
 * Refactored simulation parameters as classes.

V0.3.2 2017-02-22
-----------------

 * fixed CCCS and CCVS

V0.3.1 2017-02-22
-----------------

 * fixed ngspice shared

V0.3.0 2015-12-08
-----------------

 * Added an example to show how to use the NgSpice Shared Simulation Mode.
 * Completed the Spice netlist parser and added examples, we could now use a schematic editor
   to define the circuit.  The program *cir2py* translates a circuit file to Python.

V0 2014-03-21
-------------

Started project

.. End
