diff --git a/okonomiyaki/platforms/abi.py b/okonomiyaki/platforms/abi.py
index a69af1f..a3947aa 100644
--- a/okonomiyaki/platforms/abi.py
+++ b/okonomiyaki/platforms/abi.py
@@ -44,7 +44,7 @@ def _default_cpython_abi(platform, implementation_version):
                 abi = u"msvc2008"
             elif implementation_version.minor <= 4:
                 abi = u"msvc2010"
-            elif implementation_version.minor == 5:
+            elif implementation_version.minor <= 6:
                 abi = u"msvc2015"
 
         if abi is None:
diff --git a/setup.py b/setup.py
index fe8f301..47e2270 100644
--- a/setup.py
+++ b/setup.py
@@ -14,7 +14,7 @@ IS_RELEASED = False
 VERSION = '%d.%d.%d' % (MAJOR, MINOR, MICRO)
 
 INSTALL_REQUIRES = [
-    "attrs >= 16.0.0",
+    "attrs < 16.1.0",  # Needed to support Python 2.6
     "jsonschema >= 2.5.1",
     "six >= 1.9.0",
     "zipfile2 >= 0.0.12",

Update _default_cpython_abi() to support Python 3.6
In okonomiyaki/platforms/abi.py#L47, we do not specify a default platform abi for the upcoming Python 3.6. This is needed to set the cp36 tag as indexable in https://github.com/enthought/brood/issues/1189. Otherwise, the following error is raised:

```
okonomiyaki.errors.OkonomiyakiError: Unsupported platform/version combo for cpython: Platform(os='windows', name='windows', family='windows', arch='x86', machine='x86')/<okonomiyaki.versions.runtime_version.RuntimeVersion object at 0x7f8bc32327f0>
```

Is it safe to assume that CPython 3.6 is also using MSVC 2015? We can also add the cp36 tag as indexable in a later migration once CPython 3.6 is released.
diff --git a/okonomiyaki/file_formats/tests/test__egg_info.py b/okonomiyaki/file_formats/tests/test__egg_info.py
index c7962dc..af539c9 100644
--- a/okonomiyaki/file_formats/tests/test__egg_info.py
+++ b/okonomiyaki/file_formats/tests/test__egg_info.py
@@ -708,6 +708,35 @@ class TestGuessPlatformAbi(unittest.TestCase):
         # Then
         self.assertEqual(abi, "msvc2015")
 
+    def test_python_36(self):
+        # Given
+        platform = EPDPlatform.from_epd_string("rh5-64")
+        python_tag = "cp36"
+
+        # When
+        abi = _guess_platform_abi(platform, python_tag)
+
+        # Then
+        self.assertEqual(abi, "gnu")
+
+        # Given
+        platform = EPDPlatform.from_epd_string("osx-64")
+
+        # When
+        abi = _guess_platform_abi(platform, python_tag)
+
+        # Then
+        self.assertEqual(abi, "darwin")
+
+        # Given
+        platform = EPDPlatform.from_epd_string("win-64")
+
+        # When
+        abi = _guess_platform_abi(platform, python_tag)
+
+        # Then
+        self.assertEqual(abi, "msvc2015")
+
     def test_no_platform(self):
         # Given
         platform = None
diff --git a/okonomiyaki/platforms/tests/test_abi.py b/okonomiyaki/platforms/tests/test_abi.py
index 5138054..3528d24 100644
--- a/okonomiyaki/platforms/tests/test_abi.py
+++ b/okonomiyaki/platforms/tests/test_abi.py
@@ -18,6 +18,7 @@ class TestDefaultABI(unittest.TestCase):
             (("win_x86", "cpython", "2.7.10+1"), u"msvc2008"),
             (("win_x86", "cpython", "3.4.3+1"), u"msvc2010"),
             (("win_x86", "cpython", "3.5.0+1"), u"msvc2015"),
+            (("win_x86", "cpython", "3.6.0+1"), u"msvc2015"),
             (("osx_x86_64", "pypy", "2.6.1+1"), u"darwin"),
             (("rh5_x86_64", "pypy", "2.6.1+1"), u"gnu"),
             (("win_x86", "pypy", "2.6.1+1"), u"msvc2008"),
@@ -34,7 +35,7 @@ class TestDefaultABI(unittest.TestCase):
     def test_non_supported(self):
         # Given
         args = (
-            ("win_x86", "cpython", "3.6.0+1"),
+            ("win_x86", "cpython", "3.7.0+1"),
             ("win_x86", "pypy", "4.1.0+1"),
             ("rh5_x86_64", "r", "3.0.0+1"),
         )

pip install -e .[dev]
parse_log_pytest
requirements.txt
coverage flake8 mock testfixtures pytest
apt-get update apt-get install -y gcc
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==25.3.0
coverage==7.8.0
exceptiongroup==1.2.2
flake8==7.2.0
iniconfig==2.1.0
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
mccabe==0.7.0
mock==5.2.0
-e git+https://github.com/enthought/okonomiyaki.git@ecbef5d20e17783436532cce856d201df280eb09#egg=okonomiyaki
packaging==24.2
pluggy==1.5.0
pycodestyle==2.13.0
pyflakes==3.3.1
pytest==8.3.5
referencing==0.36.2
rpds-py==0.24.0
six==1.17.0
testfixtures==8.3.0
tomli==2.2.1
typing_extensions==4.13.0
zipfile2==0.0.12

name: okonomiyaki
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==25.3.0
      - coverage==7.8.0
      - exceptiongroup==1.2.2
      - flake8==7.2.0
      - iniconfig==2.1.0
      - jsonschema==4.23.0
      - jsonschema-specifications==2024.10.1
      - mccabe==0.7.0
      - mock==5.2.0
      - packaging==24.2
      - pluggy==1.5.0
      - pycodestyle==2.13.0
      - pyflakes==3.3.1
      - pytest==8.3.5
      - referencing==0.36.2
      - rpds-py==0.24.0
      - six==1.17.0
      - testfixtures==8.3.0
      - tomli==2.2.1
      - typing-extensions==4.13.0
      - zipfile2==0.0.12
prefix: /opt/conda/envs/okonomiyaki

okonomiyaki/file_formats/tests/test__egg_info.py::TestGuessPlatformAbi::test_python_36 okonomiyaki/platforms/tests/test_abi.py::TestDefaultABI::test_basics
okonomiyaki/file_formats/tests/test__egg_info.py::TestRequirement::test_from_spec_string okonomiyaki/file_formats/tests/test__egg_info.py::TestRequirement::test_from_string okonomiyaki/file_formats/tests/test__egg_info.py::TestRequirement::test_str okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDepend::test_blacklisted_platform okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDepend::test_create_from_egg1 okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDepend::test_create_from_egg2 okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDepend::test_error_python_to_python_tag okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDepend::test_format_1_3 okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDepend::test_format_1_4 okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDepend::test_from_string okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDepend::test_missing_spec_depend okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDepend::test_to_string okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDepend::test_unsupported_metadata_version okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDepend::test_windows_platform okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDependAbi::test_default_extension_python_egg okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDependAbi::test_default_no_python_egg okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDependAbi::test_default_no_python_egg_windows okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDependAbi::test_default_pure_python_egg okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDependAbi::test_default_pure_python_egg_pypi okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDependAbi::test_to_string okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDependPlatform::test_default_all_none okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDependPlatform::test_default_rh5_32 okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDependPlatform::test_default_rh5_64 okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDependPlatform::test_default_win_32 okonomiyaki/file_formats/tests/test__egg_info.py::TestLegacySpecDependPlatform::test_default_win_64 okonomiyaki/file_formats/tests/test__egg_info.py::TestGuessPlatformAbi::test_no_platform okonomiyaki/file_formats/tests/test__egg_info.py::TestGuessPlatformAbi::test_no_python_implementation okonomiyaki/file_formats/tests/test__egg_info.py::TestGuessPlatformAbi::test_python_27 okonomiyaki/file_formats/tests/test__egg_info.py::TestGuessPlatformAbi::test_python_34 okonomiyaki/file_formats/tests/test__egg_info.py::TestGuessPlatformAbi::test_python_35 okonomiyaki/file_formats/tests/test__egg_info.py::TestEggName::test_split_egg_name okonomiyaki/file_formats/tests/test__egg_info.py::TestEggName::test_split_egg_name_invalid okonomiyaki/file_formats/tests/test__egg_info.py::TestParseRawspec::test_invalid_spec_strings okonomiyaki/file_formats/tests/test__egg_info.py::TestParseRawspec::test_simple_1_1 okonomiyaki/file_formats/tests/test__egg_info.py::TestParseRawspec::test_simple_1_2 okonomiyaki/file_formats/tests/test__egg_info.py::TestParseRawspec::test_simple_unsupported okonomiyaki/file_formats/tests/test__egg_info.py::TestParseRawspec::test_with_dependencies okonomiyaki/file_formats/tests/test__egg_info.py::TestParseRawspec::test_with_none okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_blacklisted_pkg_info okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_blacklisted_platform okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_blacklisted_python_tag okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_dump_blacklisted okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_dump_blacklisted_platform okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_dump_simple okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_fixed_requirement okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_from_cross_platform_egg okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_from_json_dict okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_from_platform_egg okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_mkl_roundtrip okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_no_pkg_info okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_platform_abi okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_platform_abi_no_python okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_simple okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_simple_non_python_egg okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_strictness okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_support_higher_compatible_version okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_support_lower_compatible_version okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_to_json_dict okonomiyaki/file_formats/tests/test__egg_info.py::TestEggMetadata::test_to_spec_string okonomiyaki/platforms/tests/test_abi.py::TestDefaultABI::test_non_supported
setup.py okonomiyaki/platforms/abi.py
setup.py okonomiyaki/platforms/abi.py