diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index ce025819..00000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,64 +0,0 @@
-environment:
- matrix:
- - python: 35
- - python: 35-x64
- - python: 36
- - python: 36-x64
- - python: 37
- - python: 37-x64
- - python: 38
- - python: 38-x64
- - python: 39
- python_version: 3.9.13
- - python: 39-x64
- python_version: 3.9.13
- - python: 310
- python_version: 3.10.6
- - python: 310-x64
- python_version: 3.10.6
- - python: 311
- python_version: 3.11.2
- - python: 311-x64
- python_version: 3.11.2
-
-install:
- - ps: |
- # from https://github.com/appveyor/build-images/blob/27bde614bc60d7ef7a8bc46182f4d7582fa11b56/scripts/Windows/install_python.ps1#L88-L108
- function InstallPythonEXE($targetPath, $version) {
- $urlPlatform = ""
- if ($targetPath -match '-x64$') {
- $urlPlatform = "-amd64"
- }
- Write-Host "Installing Python $version$urlPlatform to $($targetPath)..." -ForegroundColor Cyan
- $downloadUrl = "https://www.python.org/ftp/python/$version/python-$version$urlPlatform.exe"
- Write-Host "Downloading $($downloadUrl)..."
- $exePath = "$env:TEMP\python-$version.exe"
- (New-Object Net.WebClient).DownloadFile($downloadUrl, $exePath)
- Write-Host "Installing..."
- cmd /c start /wait $exePath /quiet TargetDir="$targetPath" Shortcuts=0 Include_launcher=1 InstallLauncherAllUsers=1 Include_debug=1
- Remove-Item $exePath
- Write-Host "Installed Python $version" -ForegroundColor Green
- }
- if ( -not ( Test-Path -Path C:\\Python$env:PYTHON -PathType Container ) ) {
- InstallPythonEXE C:\\Python$env:PYTHON $env:PYTHON_VERSION
- }
- - SET PATH=C:\\Python%PYTHON%;c:\\Python%PYTHON%\\scripts;%PATH%
- - python -m pip install -U pip wheel setuptools
-
-build: off
-build_script:
- - python setup.py bdist_wheel
-
-test: off
-test_script:
- - pip install -r requirements-test.txt
- - pip install xmlsec --only-binary=xmlsec --no-index --find-links=dist
- - pytest -v --color=yes --junitxml=unittests.xml
- - ps: Get-ChildItem dist\*.whl | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
-
-on_finish:
- - ps: |
- # archive test results at AppVeyor
- $wc = New-Object 'System.Net.WebClient'
- $wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\unittests.xml))
- $LastExitCode = 0
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..6abd6a5a
--- /dev/null
+++ b/README.md
@@ -0,0 +1,198 @@
+# python-xmlsec
+
+[](https://pypi.python.org/pypi/xmlsec)
+[](https://results.pre-commit.ci/latest/github/xmlsec/python-xmlsec/master)
+[](https://github.com/xmlsec/python-xmlsec/actions/workflows/manylinux.yml)
+[](https://github.com/xmlsec/python-xmlsec/actions/workflows/macosx.yml)
+[](https://github.com/xmlsec/python-xmlsec/actions/workflows/linuxbrew.yml)
+[](https://codecov.io/gh/xmlsec/python-xmlsec)
+[](https://xmlsec.readthedocs.io/en/latest/?badge=latest)
+
+Python bindings for the [XML Security
+Library](https://www.aleksey.com/xmlsec/).
+
+## Documentation
+
+Documentation for `xmlsec` can be found at
+[xmlsec.readthedocs.io](https://xmlsec.readthedocs.io/).
+
+## Usage
+
+Check the
+[examples](https://xmlsec.readthedocs.io/en/latest/examples.html)
+section in the documentation to see various examples of signing and
+verifying using the library.
+
+## Requirements
+
+- `libxml2 >= 2.9.1`
+- `libxmlsec1 >= 1.2.33`
+
+## Install
+
+`xmlsec` is available on PyPI:
+
+``` bash
+pip install xmlsec
+```
+
+Depending on your OS, you may need to install the required native
+libraries first:
+
+### Linux (Debian)
+
+``` bash
+apt-get install pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl
+```
+
+Note: There is no required version of LibXML2 for Ubuntu Precise, so you
+need to download and install it manually.
+
+``` bash
+wget http://xmlsoft.org/sources/libxml2-2.9.1.tar.gz
+tar -xvf libxml2-2.9.1.tar.gz
+cd libxml2-2.9.1
+./configure && make && make install
+```
+
+### Linux (CentOS)
+
+``` bash
+yum install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel
+```
+
+### Linux (Fedora)
+
+``` bash
+dnf install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel
+```
+
+### Mac
+
+``` bash
+brew install libxml2 libxmlsec1 pkg-config
+```
+
+or
+
+``` bash
+port install libxml2 xmlsec pkgconfig
+```
+
+### Alpine
+
+``` bash
+apk add build-base libressl libffi-dev libressl-dev libxslt-dev libxml2-dev xmlsec-dev xmlsec
+```
+
+## Troubleshooting
+
+### Mac
+
+If you get any fatal errors about missing `.h` files, update your
+`C_INCLUDE_PATH` environment variable to include the appropriate files
+from the `libxml2` and `libxmlsec1` libraries.
+
+### Windows
+
+Starting with 1.3.7, prebuilt wheels are available for Windows, so
+running `pip install xmlsec` should suffice. If you want to build from
+source:
+
+1. Configure build environment, see
+ [wiki.python.org](https://wiki.python.org/moin/WindowsCompilers) for
+ more details.
+
+2. Install from source dist:
+
+ ``` bash
+ pip install xmlsec --no-binary=xmlsec
+ ```
+
+## Building from source
+
+1. Clone the `xmlsec` source code repository to your local computer.
+
+ ``` bash
+ git clone https://github.com/xmlsec/python-xmlsec.git
+ ```
+
+2. Change into the `python-xmlsec` root directory.
+
+ ``` bash
+ cd /path/to/xmlsec
+ ```
+
+3. Install the project and all its dependencies using `pip`.
+
+ ``` bash
+ pip install .
+ ```
+
+## Contributing
+
+### Setting up your environment
+
+1. Follow steps 1 and 2 of the [manual installation
+ instructions](#building-from-source).
+
+2. Initialize a virtual environment to develop in. This is done so as
+ to ensure every contributor is working with close-to-identical
+ versions of packages.
+
+ ``` bash
+ mkvirtualenv xmlsec
+ ```
+
+ The `mkvirtualenv` command is available from `virtualenvwrapper`
+ package which can be installed by following
+ [link](http://virtualenvwrapper.readthedocs.org/en/latest/install.html#basic-installation).
+
+3. Activate the created virtual environment:
+
+ ``` bash
+ workon xmlsec
+ ```
+
+4. Install `xmlsec` in development mode with testing enabled. This will
+ download all dependencies required for running the unit tests.
+
+ ``` bash
+ pip install -r requirements-test.txt
+ pip install -e "."
+ ```
+
+### Running the test suite
+
+1. [Set up your environment](#setting-up-your-environment).
+
+2. Run the unit tests.
+
+ ``` bash
+ pytest tests
+ ```
+
+3. Tests configuration
+
+ Env variable `PYXMLSEC_TEST_ITERATIONS` specifies number of test
+ iterations to detect memory leaks.
+
+### Reporting an issue
+
+Please attach the output of following information:
+
+- version of `xmlsec`
+- version of `libxmlsec1`
+- version of `libxml2`
+- output from the command
+
+ ``` bash
+ pkg-config --cflags xmlsec1
+ ```
+
+## License
+
+Unless otherwise noted, all files contained within this project are
+licensed under the MIT open source license. See the included `LICENSE`
+file or visit [opensource.org](http://opensource.org/licenses/MIT) for
+more information.
diff --git a/README.rst b/README.rst
deleted file mode 100644
index bd3a1be9..00000000
--- a/README.rst
+++ /dev/null
@@ -1,229 +0,0 @@
-python-xmlsec
-=============
-
-.. image:: https://img.shields.io/pypi/v/xmlsec.svg?logo=python&logoColor=white
- :target: https://pypi.python.org/pypi/xmlsec
-.. image:: https://results.pre-commit.ci/badge/github/xmlsec/python-xmlsec/master.svg
- :target: https://results.pre-commit.ci/latest/github/xmlsec/python-xmlsec/master
- :alt: pre-commit.ci status
-.. image:: https://img.shields.io/appveyor/ci/hoefling/xmlsec/master.svg?logo=appveyor&logoColor=white&label=AppVeyor
- :target: https://ci.appveyor.com/project/hoefling/xmlsec
-.. image:: https://github.com/mehcode/python-xmlsec/actions/workflows/manylinux.yml/badge.svg
- :target: https://github.com/mehcode/python-xmlsec/actions/workflows/manylinux.yml
-.. image:: https://github.com/mehcode/python-xmlsec/actions/workflows/macosx.yml/badge.svg
- :target: https://github.com/mehcode/python-xmlsec/actions/workflows/macosx.yml
-.. image:: https://github.com/mehcode/python-xmlsec/actions/workflows/linuxbrew.yml/badge.svg
- :target: https://github.com/mehcode/python-xmlsec/actions/workflows/linuxbrew.yml
-.. image:: https://github.com/mehcode/python-xmlsec/actions/workflows/opensuse-tumbleweed.yml/badge.svg
- :target: https://github.com/mehcode/python-xmlsec/actions/workflows/opensuse-tumbleweed.yml
-.. image:: https://codecov.io/gh/xmlsec/python-xmlsec/branch/master/graph/badge.svg
- :target: https://codecov.io/gh/xmlsec/python-xmlsec
-.. image:: https://img.shields.io/readthedocs/xmlsec/latest?logo=read-the-docs
- :target: https://xmlsec.readthedocs.io/en/latest/?badge=latest
- :alt: Documentation Status
-
-Python bindings for the `XML Security Library `_.
-
-Documentation
-*************
-
-A documentation for ``xmlsec`` can be found at `xmlsec.readthedocs.io `_.
-
-Usage
-*****
-
-Check the `examples `_ section in the documentation to see various examples of signing and verifying using the library.
-
-Requirements
-************
-- ``libxml2 >= 2.9.1``
-- ``libxmlsec1 >= 1.2.33``
-
-Install
-*******
-
-``xmlsec`` is available on PyPI:
-
-.. code-block:: bash
-
- pip install xmlsec
-
-Depending on your OS, you may need to install the required native
-libraries first:
-
-Linux (Debian)
-^^^^^^^^^^^^^^
-
-.. code-block:: bash
-
- apt-get install pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl
-
-
-Note: There is no required version of LibXML2 for Ubuntu Precise,
-so you need to download and install it manually.
-
-.. code-block:: bash
-
- wget http://xmlsoft.org/sources/libxml2-2.9.1.tar.gz
- tar -xvf libxml2-2.9.1.tar.gz
- cd libxml2-2.9.1
- ./configure && make && make install
-
-
-Linux (CentOS)
-^^^^^^^^^^^^^^
-
-.. code-block:: bash
-
- yum install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel
-
-
-Linux (Fedora)
-^^^^^^^^^^^^^^
-
-.. code-block:: bash
-
- dnf install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel
-
-
-Mac
-^^^
-
-.. code-block:: bash
-
- brew install libxml2 libxmlsec1 pkg-config
-
-or
-
-.. code-block:: bash
-
- port install libxml2 xmlsec pkgconfig
-
-
-Alpine
-^^^^^^
-
-.. code-block:: bash
-
- apk add build-base libressl libffi-dev libressl-dev libxslt-dev libxml2-dev xmlsec-dev xmlsec
-
-
-Troubleshooting
-***************
-
-Mac
-^^^
-
-If you get any fatal errors about missing ``.h`` files, update your
-``C_INCLUDE_PATH`` environment variable to include the appropriate
-files from the ``libxml2`` and ``libxmlsec1`` libraries.
-
-
-Windows
-^^^^^^^
-
-Starting with 1.3.7, prebuilt wheels are available for Windows,
-so running ``pip install xmlsec`` should suffice. If you want
-to build from source:
-
-#. Configure build environment, see `wiki.python.org `_ for more details.
-
-#. Install from source dist:
-
- .. code-block:: bash
-
- pip install xmlsec --no-binary=xmlsec
-
-
-Building from source
-********************
-
-#. Clone the ``xmlsec`` source code repository to your local computer.
-
- .. code-block:: bash
-
- git clone https://github.com/xmlsec/python-xmlsec.git
-
-#. Change into the ``python-xmlsec`` root directory.
-
- .. code-block:: bash
-
- cd /path/to/xmlsec
-
-
-#. Install the project and all its dependencies using ``pip``.
-
- .. code-block:: bash
-
- pip install .
-
-
-Contributing
-************
-
-Setting up your environment
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-#. Follow steps 1 and 2 of the `manual installation instructions <#building-from-source>`_.
-
-
-#. Initialize a virtual environment to develop in.
- This is done so as to ensure every contributor is working with
- close-to-identicial versions of packages.
-
- .. code-block:: bash
-
- mkvirtualenv xmlsec
-
- The ``mkvirtualenv`` command is available from ``virtualenvwrapper`` package which can be installed by following `link `_.
-
-#. Activate the created virtual environment:
-
- .. code-block:: bash
-
- workon xmlsec
-
-#. Install ``xmlsec`` in development mode with testing enabled.
- This will download all dependencies required for running the unit tests.
-
- .. code-block:: bash
-
- pip install -r requirements-test.txt
- pip install -e "."
-
-
-Running the test suite
-^^^^^^^^^^^^^^^^^^^^^^
-
-#. `Set up your environment <#setting-up-your-environment>`_.
-
-#. Run the unit tests.
-
- .. code-block:: bash
-
- pytest tests
-
-#. Tests configuration
-
- Env variable ``PYXMLSEC_TEST_ITERATIONS`` specifies number of
- test iterations to detect memory leaks.
-
-Reporting an issue
-^^^^^^^^^^^^^^^^^^
-
-Please attach the output of following information:
-
-* version of ``xmlsec``
-* version of ``libxmlsec1``
-* version of ``libxml2``
-* output from the command
-
- .. code-block:: bash
-
- pkg-config --cflags xmlsec1
-
-License
-*******
-
-Unless otherwise noted, all files contained within this project are licensed under the MIT opensource license.
-See the included ``LICENSE`` file or visit `opensource.org `_ for more information.
diff --git a/setup.cfg b/setup.cfg
index c090b4e8..7fee05f9 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,5 @@
[metadata]
-description_file = README.rst
+description_file = README.md
[bdist_rpm]
release = 1
diff --git a/setup.py b/setup.py
index 7c4a2e63..447cebc4 100644
--- a/setup.py
+++ b/setup.py
@@ -584,7 +584,7 @@ def prepare_static_build(self, build_platform):
setup_reqs = ['setuptools_scm[toml]>=3.4', 'pkgconfig>=1.5.1', 'lxml>=3.8']
-with io.open('README.rst', encoding='utf-8') as f:
+with io.open('README.md', encoding='utf-8') as f:
long_desc = f.read()