public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Orphaned Packages Process <packaging-reports@fedoraproject.org>
To: git-commits@fedoraproject.org
Subject: [rpms/python-pulp] rawhide: Orphaned for 6+ weeks
Date: Sun, 19 Jul 2026 00:30:12 GMT	[thread overview]
Message-ID: <178442101206.1.4777399793512136613.rpms-python-pulp-246d0854e669@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/python-pulp
Branch : rawhide
Commit : 246d0854e669d3ad8d8b65dc9ea0baa424f522d7
Author : Orphaned Packages Process <packaging-reports@fedoraproject.org>
Date   : 2026-07-18T19:30:07-05:00
Stats  : +1/-413 in 13 file(s)
URL    : https://src.fedoraproject.org/rpms/python-pulp/c/246d0854e669d3ad8d8b65dc9ea0baa424f522d7?branch=rawhide

Log:
Orphaned for 6+ weeks

---
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 548b0fd..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-/PuLP-2.4.tar.gz
-/pulp-2.5.0.tar.gz
-/pulp-2.6.0.tar.gz
-/pulp-2.7.0.tar.gz
-/pulp-2.8.0.tar.gz
-/pulp-2.9.0.tar.gz
-/pulp-3.1.1.tar.gz
-/pulp-3.2.1.tar.gz
-/pulp-3.2.2.tar.gz
-/pulp-3.3.0.tar.gz
-/pulp-3.3.1.tar.gz

diff --git a/.packit.yaml b/.packit.yaml
deleted file mode 100644
index 2164c44..0000000
--- a/.packit.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-upstream_project_url: https://github.com/coin-or/pulp
-copy_upstream_release_description: false
- 
-jobs:
-  - job: pull_from_upstream
-    trigger: release
-    dist_git_branches:
-      - fedora-rawhide
-  - job: koji_build
-    trigger: commit
-    dist_git_branches:
-      - fedora-all
-

diff --git a/0001-Downstream-only-handle-system-cbc-renamed-to-Cbc.patch b/0001-Downstream-only-handle-system-cbc-renamed-to-Cbc.patch
deleted file mode 100644
index dfbcbdd..0000000
--- a/0001-Downstream-only-handle-system-cbc-renamed-to-Cbc.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 2bbaeebb1118ce5d18291cb4de69aacf2518ca6a Mon Sep 17 00:00:00 2001
-From: "Benjamin A. Beasley" <code@musicinmybrain.net>
-Date: Sun, 20 Apr 2025 11:01:51 -0400
-Subject: [PATCH 1/4] Downstream-only: handle system cbc renamed to Cbc
-
-Beginning with Fedora 42, the cbc executable in coin-or-Cbc is renamed to Cbc
-due to a file conflict with libcouchbase-tools (RHBZ#2335063).
----
- pulp/apis/coin_api.py | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/pulp/apis/coin_api.py b/pulp/apis/coin_api.py
-index 817c215..e327ebd 100644
---- a/pulp/apis/coin_api.py
-+++ b/pulp/apis/coin_api.py
-@@ -48,7 +48,9 @@ import ctypes
- import warnings
- from tempfile import mktemp
- 
--cbc_path = "cbc"
-+# Beginning with Fedora 42, the cbc executable in coin-or-Cbc is renamed to Cbc
-+# due to a file conflict with libcouchbase-tools (RHBZ#2335063).
-+cbc_path = "Cbc"
- if operating_system == "win":
-     cbc_path += ".exe"
- 
-@@ -57,7 +59,7 @@ coinMP_path = ["libCoinMP.so"]
- if operating_system == "osx":
-     arch = "i64"
- pulp_cbc_path = os.path.join(
--    os.path.dirname(__file__), f"../solverdir/cbc/{operating_system}/{arch}/{cbc_path}"
-+    os.path.dirname(__file__), f"../solverdir/cbc/{operating_system}/{arch}/{cbc_path.lower()}"
- )
- 
- 
--- 
-2.54.0
-

diff --git a/0002-Skip-solving-time-tests-for-HiGHS_CMDTest-HiGHS_PYTe.patch b/0002-Skip-solving-time-tests-for-HiGHS_CMDTest-HiGHS_PYTe.patch
deleted file mode 100644
index 46d61e4..0000000
--- a/0002-Skip-solving-time-tests-for-HiGHS_CMDTest-HiGHS_PYTe.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a77381c6c5e9e5b7a6faceb850f836523dc415e8 Mon Sep 17 00:00:00 2001
-From: "Benjamin A. Beasley" <code@musicinmybrain.net>
-Date: Sun, 20 Apr 2025 18:18:48 -0400
-Subject: [PATCH 2/4] Skip solving-time tests for HiGHS_CMDTest/HiGHS_PYTest
-
----
- pulp/tests/test_pulp.py | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/pulp/tests/test_pulp.py b/pulp/tests/test_pulp.py
-index 6ba870d..e329898 100644
---- a/pulp/tests/test_pulp.py
-+++ b/pulp/tests/test_pulp.py
-@@ -2330,6 +2330,12 @@ class SCIP_PYTest(BaseSolverTest.PuLPTest):
- 
- class HiGHS_PYTest(BaseSolverTest.PuLPTest):
-     solveInst = solvers.HiGHS
-+    test_measuring_solving_time = unittest.skip(
-+        "Unreliable on non-x86_64 architectures"
-+    )(BaseSolverTest.PuLPTest.test_measuring_solving_time)
-+    test_time_limit_no_solution = unittest.skip(
-+        "Unreliable on non-x86_64 architectures"
-+    )(BaseSolverTest.PuLPTest.test_time_limit_no_solution)
- 
-     def test_callback(self):
-         prob = create_bin_packing_problem(bins=40, seed=99)
-@@ -2369,6 +2375,12 @@ class HiGHS_PYTest(BaseSolverTest.PuLPTest):
- 
- class HiGHS_CMDTest(BaseSolverTest.PuLPTest):
-     solveInst = solvers.HiGHS_CMD
-+    test_measuring_solving_time = unittest.skip(
-+        "Unreliable on non-x86_64 architectures"
-+    )(BaseSolverTest.PuLPTest.test_measuring_solving_time)
-+    test_time_limit_no_solution = unittest.skip(
-+        "https://github.com/coin-or/pulp/issues/832"
-+    )(BaseSolverTest.PuLPTest.test_time_limit_no_solution)
- 
- 
- class COPTTest(BaseSolverTest.PuLPTest):
--- 
-2.54.0
-

diff --git a/0003-Expect-SCIP_PY-to-report-unbounded-problems-the-same.patch b/0003-Expect-SCIP_PY-to-report-unbounded-problems-the-same.patch
deleted file mode 100644
index 571693d..0000000
--- a/0003-Expect-SCIP_PY-to-report-unbounded-problems-the-same.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From f4b21a35e6275d2f0f026682d6c518521cbc37b8 Mon Sep 17 00:00:00 2001
-From: "Benjamin A. Beasley" <code@musicinmybrain.net>
-Date: Thu, 12 Jun 2025 11:44:44 -0400
-Subject: [PATCH 3/4] Expect SCIP_PY to report unbounded problems the same way
- as SCIP_CMD
-
-This seems to have changed from scip 9.2.0 to 9.2.2; we cannot usefully
-report it upstream until PySCIPOpt releases binary PyPI wheels based on
-scip 9.2.2 or later.
----
- pulp/tests/test_pulp.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pulp/tests/test_pulp.py b/pulp/tests/test_pulp.py
-index e329898..a5f8bf5 100644
---- a/pulp/tests/test_pulp.py
-+++ b/pulp/tests/test_pulp.py
-@@ -900,7 +900,7 @@ class BaseSolverTest:
-             elif self.solver.name in ["GLPK_CMD"]:
-                 # GLPK_CMD Does not report unbounded problems, correctly
-                 pulpTestCheck(prob, self.solver, [const.LpStatusUndefined])
--            elif self.solver.name in ["GUROBI_CMD", "SCIP_CMD"]:
-+            elif self.solver.name in ["GUROBI_CMD", "SCIP_CMD", "SCIP_PY"]:
-                 pulpTestCheck(prob, self.solver, [const.LpStatusNotSolved])
-             elif self.solver.name in ["CHOCO_CMD", "FSCIP_CMD"]:
-                 # choco bounds all variables. Would not return unbounded status
--- 
-2.54.0
-

diff --git a/0004-Skip-HiGHS_CMDTest.test_relaxed_mip.patch b/0004-Skip-HiGHS_CMDTest.test_relaxed_mip.patch
deleted file mode 100644
index a458996..0000000
--- a/0004-Skip-HiGHS_CMDTest.test_relaxed_mip.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 46fc09e01d45396a41077ddaba35c9a1edf7f0ad Mon Sep 17 00:00:00 2001
-From: "Benjamin A. Beasley" <code@musicinmybrain.net>
-Date: Sun, 7 Dec 2025 09:13:55 +0000
-Subject: [PATCH 4/4] Skip HiGHS_CMDTest.test_relaxed_mip
-
-A temporary downstream workaround for
-https://github.com/coin-or/pulp/issues/887#issuecomment-3621838359
----
- pulp/tests/test_pulp.py | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/pulp/tests/test_pulp.py b/pulp/tests/test_pulp.py
-index a5f8bf5..f2a6688 100644
---- a/pulp/tests/test_pulp.py
-+++ b/pulp/tests/test_pulp.py
-@@ -2381,6 +2381,9 @@ class HiGHS_CMDTest(BaseSolverTest.PuLPTest):
-     test_time_limit_no_solution = unittest.skip(
-         "https://github.com/coin-or/pulp/issues/832"
-     )(BaseSolverTest.PuLPTest.test_time_limit_no_solution)
-+    test_relaxed_mip = unittest.skip(
-+        "https://github.com/coin-or/pulp/issues/887#issuecomment-3621838359"
-+    )(BaseSolverTest.PuLPTest.test_relaxed_mip)
- 
- 
- class COPTTest(BaseSolverTest.PuLPTest):
--- 
-2.54.0
-

diff --git a/README.md b/README.md
deleted file mode 100644
index c698fe3..0000000
--- a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# python-pulp
-
-The python-pulp package

diff --git a/README.packit b/README.packit
deleted file mode 100644
index eb5cf90..0000000
--- a/README.packit
+++ /dev/null
@@ -1,3 +0,0 @@
-This repository is maintained by packit.
-https://packit.dev/
-The file was generated using packit 1.16.0.post1.dev2+ged481c62d.

diff --git a/changelog b/changelog
deleted file mode 100644
index 54342c9..0000000
--- a/changelog
+++ /dev/null
@@ -1,16 +0,0 @@
-* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.5.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
-
-* Tue Aug 17 2021 Aniket Pradhan <major AT fedoraproject DOT org> - 2.5.0-1
-- Updated to v2.5.0-1
-- Added the docs subpackage
-- Fixed a version typo in the changelog
-
-* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.4-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
-
-* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.4-2
-- Rebuilt for Python 3.10
-
-* Sat Nov 21 2020 Aniket Pradhan <major AT fedoraproject DOT org> - 2.4-1
-- Initial build

diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..5204a84
--- /dev/null
+++ b/dead.package
@@ -0,0 +1 @@
+Orphaned for 6+ weeks

diff --git a/python-pulp.rpmlintrc b/python-pulp.rpmlintrc
deleted file mode 100644
index 4848dea..0000000
--- a/python-pulp.rpmlintrc
+++ /dev/null
@@ -1,4 +0,0 @@
-# The pulptest executable has no options; the man page would not be worthwhile.
-addFilter(r" no-manual-page-for-binary pulptest$")
-# The symlink targets are in coin-or-Cbc, a direct dependency.
-addFilter(r" dangling-relative-symlink /.*cbc \.\./.*/bin/Cbc$")

diff --git a/python-pulp.spec b/python-pulp.spec
deleted file mode 100644
index c18f98e..0000000
--- a/python-pulp.spec
+++ /dev/null
@@ -1,225 +0,0 @@
-# test are enabled by default
-%bcond tests 1
-
-Name:           python-pulp
-Version:        3.3.1
-Release:        %autorelease
-Summary:        Linear and mixed integer programming modeler
-
-License:        BSD-1-Clause
-URL:            https://coin-or.github.io/pulp/
-%global forgeurl https://github.com/coin-or/pulp
-Source:         %{forgeurl}/archive/%{version}/pulp-%{version}.tar.gz
-
-# Downstream-only: handle system cbc renamed to Cbc
-#
-# Beginning with Fedora 42, the cbc executable in coin-or-Cbc is renamed to Cbc
-# due to a file conflict with libcouchbase-tools (RHBZ#2335063).
-Patch:          0001-Downstream-only-handle-system-cbc-renamed-to-Cbc.patch
-# Skip solving-time tests for HiGHS_CMDTest/HiGHS_PYTest
-#
-# This was originally a temporary downstream workaround for
-# https://github.com/coin-or/pulp/issues/832; these tests continue to be
-# problematic in various ways on non-x86_64 architectures, and we choose to
-# wait and see what happens with the in-progress PuLP 4.0 development before
-# trying to report these again.
-Patch:          0002-Skip-solving-time-tests-for-HiGHS_CMDTest-HiGHS_PYTe.patch
-# Expect SCIP_PY to report unbounded problems the same way as SCIP_CMD
-#
-# This seems to have changed from scip 9.2.0 to 9.2.2; we cannot usefully
-# report it upstream until PySCIPOpt releases binary PyPI wheels based on
-# scip 9.2.2 or later.
-Patch:          0003-Expect-SCIP_PY-to-report-unbounded-problems-the-same.patch
-# Skip HiGHS_CMDTest.test_relaxed_mip
-#
-# A temporary downstream workaround for
-# https://github.com/coin-or/pulp/issues/887#issuecomment-3621838359
-Patch:          0004-Skip-HiGHS_CMDTest.test_relaxed_mip.patch
-
-# These alternative solvers appear to be free software, but are not packaged.
-# - CHOCO_CMD (https://github.com/chocoteam/choco-solver)
-# - COINMP_DLL (previously packaged as coin-or-CoinMP, but orphaned and retired
-#   for Fedora 42)
-# - CUOPT (https://www.nvidia.com/en-us/ai-data-science/products/cuopt/):
-#   currently in the process of being open-sourced,
-#   https://blogs.nvidia.com/blog/cuopt-open-source/?ncid=no-ncid, but may
-#   still have non-free dependencies (CUDA SDK?)
-# - CYLP (https://github.com/coin-or/CyLP, would be coin-or-CyLP if packaged)
-# - FSCIP_CMD (https://ug.zib.de/index.php): According to the link, this is now
-#   part of SCIP, but it is not remotely clear how we could build an fscip
-#   binary in our scip package.
-# - MIPCL_CMD
-#   (https://github.com/tingyingwu2010/MIPCL)
-# - PYGLPK (https://github.com/bradfordboyle/pyglpk)
-# BuildRequires:  %%{py3_dist glpk}
-# Recommends:     %%{py3_dist glpk}
-# - YAPOSIB (https://github.com/coin-or/yaposib)
-# BuildRequires:  %%{py3_dist yaposib}
-# Recommends:     %%{py3_dist yaposib}
-
-# These supported solvers are not free software:
-# - COPT
-# - COPT_CMD
-# - COPT_DLL
-# - CPLEX_CMD
-# - CPLEX_PY
-# - GUROBI
-# - GUROBI_CMD
-# - MOSEK
-# - SAS94
-# - SASCAS
-# - XPRESS
-# - XPRESS_CMD
-# - XPRESS_PY
-
-BuildSystem:    pyproject
-BuildOption(install): --no-assert-license pulp
-# Omitted extras for non-free solvers: copt, cplex, gurobi, mosek, xpress
-BuildOption(generate_buildrequires): %{shrink:
-    --extras highs
-    --extras scip
-    }
-
-# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
-ExcludeArch:    %{ix86}
-
-BuildRequires:  symlinks
-
-# let tests run on all arches
-%global debug_package %{nil}
-
-%global _description %{expand:
-PuLP is an linear and mixed integer programming modeler written in Python.
-
-With PuLP, it is simple to create MILP optimization problems and solve them
-with the latest open-source (or proprietary) solvers. PuLP can generate MPS or
-LP files and call solvers such as GLPK, COIN-OR CLP/CBC, CPLEX, GUROBI, MOSEK,
-XPRESS, CHOCO, MIPCL, HiGHS, SCIP/FSCIP.}
-
-%description %_description
-
-
-%package -n python3-pulp
-Summary:        %{summary}
-
-BuildArch:      noarch
-
-# Normally bundled with pulp, but we do not ship the bundled copy (both to
-# avoid bundling, and because it is a precompiled executable). Instead, we fake
-# it using the system coin-or-Cbc, making it equivalent to COIN_CMD. Therefore,
-# coin-or-Cbc is a hard dependency, and COIN_CMD is always available.
-# - PULP_CBC_CMD
-# - COIN_CMD
-BuildRequires:  coin-or-Cbc
-Requires:       coin-or-Cbc
-# The bundled copy would be PULP_CBC_CMD; our package does not have that solver
-# enabled. We could fake it using the system coin-or-Cbc, but we would rather
-# not do so unless something really needs PULP_CBC_CMD in particular.
-
-# We depend weakly on alternative solvers that are packaged.
-# - GLPK_CMD
-BuildRequires:  glpk-utils
-Recommends:     glpk-utils
-# - HiGHS
-# BuildRequires is covered by the highs extra.
-Recommends:     python3-pulp+highs = %{version}-%{release}
-# - HiGHS_CMD
-BuildRequires:  coin-or-HiGHS
-Recommends:     coin-or-HiGHS
-# - SCIP_CMD
-BuildRequires:  scip
-Recommends:     scip
-# - SCIP_PY
-# BuildRequires is covered by the scip extra.
-Recommends:     python3-pulp+scip = %{version}-%{release}
-
-%description -n python3-pulp %_description
-
-
-%pyproject_extras_subpkg -n python3-pulp -a highs scip
-
-
-%prep -a
-# For architectures that may be covered by our noarch package, replace the
-# bundled cbc executables with symbolic links to the system one. Basically, we
-# are “faking” the PULP_CBC_CMD by making it equivalent to COIN_CMD.
-#
-# Note that beginning with Fedora 42, the cbc executable in coin-or-Cbc is
-# renamed to Cbc due to a file conflict with libcouchbase-tools (RHBZ#2335063).
-#
-# We link into /usr/bin rather than %%{_bindir} because these will be
-# dereferenced in the build environment during %%build; we form relative
-# symbolic links in the buildroot using %%{_bindir} in %%install.
-find pulp/solverdir/cbc/linux -type f -executable \
-    -exec ln --symbolic --verbose --force '/usr/bin/Cbc' '{}' ';'
-# Remove remaining bundled cbc executables
-find pulp/solverdir/cbc -type f \
-    \( -executable -o -name '*.exe' \) -print -delete
-# Remove EPL-1.0 license files for bundled cbc executables, since they are no
-# longer present.
-find pulp/solverdir/cbc -type f -name coin-license.txt -print -delete
-
-# Remove other bundled/precompiled libraries/executables: currently, CoinMP.dll.
-# We have tried to make this heuristic broad enough to be a useful backstop in
-# case we miss something in manual auditing.
-find pulp/solverdir -type f \
-    \( -executable -o -name '*.dll' -o -name '*.so' -o -name '*.so.*' \) \
-    -print -delete
-
-# Increase test verbosity
-sed --regexp-extended --in-place \
-    's/(runner.*TestRunner)\(\)/\1(verbosity=2)/' pulp/tests/run_tests.py
-
-# Upstream pinned highspy to 1.13 in
-# https://github.com/coin-or/pulp/commit/07c7b5ecc7b66ff7a96727a1817d6f3e428a6251;
-# we must, of course, use what we have.
-%pyproject_patch_dependency highspy:drop_upper
-
-
-%install -a
-# Remove shebang from non-executable library file. Upstream may have intended
-# this to be run directly during development, but it is installed without the
-# execute permission bit set, so the shebang is useless.
-sed --regexp-extended --in-place \
-    '1{/^#!/d}' '%{buildroot}%{python3_sitelib}/pulp/pulp.py'
-# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_shebangs
-%py3_shebang_fix '%{buildroot}%{python3_sitelib}/pulp'
-
-# The symbolic links to the system cbc solver will have been dereferenced
-# during “wheelification,” and the system executable will have been bundled.
-# Restore the symbolic links, now within the buildroot, and make them relative.
-#
-# Begin by temporarily making absolute symlinks within the buildroot *not*
-# dangle, so that symlinks will convert them. Ensure that we clean them up
-# afterward so they don’t affect %%fils.
-install --directory '%{buildroot}%{_bindir}'
-ln --symbolic '/usr/bin/Cbc' '%{buildroot}%{_bindir}/Cbc'
-trap 'rm --verbose %{buildroot}%{_bindir}/Cbc' INT TERM EXIT
-# Now recreate the symlinks and convert to relative.
-find '%{buildroot}%{python3_sitelib}/pulp/solverdir/cbc/linux' \
-    -type f -executable \
-    -exec ln --symbolic --verbose --force \
-    '%{buildroot}%{_bindir}/Cbc' '{}' ';' \
-    -exec symlinks -c '{}' ';'
-
-
-%check -a
-%if %{with tests}
-# Work around dangling relative symlinks in the buildroot.
-ln --symbolic '/usr/bin/Cbc' '%{buildroot}%{_bindir}/Cbc'
-trap 'rm --verbose %{buildroot}%{_bindir}/Cbc' INT TERM EXIT
-# Using pulptest binary to test the package
-%{py3_test_envvars} pulptest
-%endif
-
-
-%files -n python3-pulp -f %{pyproject_files}
-%license LICENSE
-%doc AUTHORS
-%doc HISTORY
-%doc README.rst
-%{_bindir}/pulptest
-
-
-%changelog
-%autochangelog

diff --git a/sources b/sources
deleted file mode 100644
index a11a02d..0000000
--- a/sources
+++ /dev/null
@@ -1 +0,0 @@
-SHA512 (pulp-3.3.1.tar.gz) = 73e4778f1966a5869dba760c087f9f660a1d936d6cfb80b7a0f49c087a34f9a4c5da7fc4b4be98c069fe19b3b048108e8ce00b58a7552abaf950510355ac5282

                 reply	other threads:[~2026-07-19  0:30 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178442101206.1.4777399793512136613.rpms-python-pulp-246d0854e669@fedoraproject.org \
    --to=packaging-reports@fedoraproject.org \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox