Update naming convention on DLLs for windows to match COIN-OR

Issue: DLLs expected from using coin-or builds (eg ipopt-3.dll ipopt.dll.lib) are not present in a conda environment after conda install
You can see this in a failed appveyor build from this PR to cyipopt https://github.com/matthias-k/cyipopt/pull/79
appveyor link: https://ci.appveyor.com/project/moorepants/cyipopt/builds/36359171/job/spys6yf35enwd1hr and environment details below

Environment (conda list):

$ conda list
# packages in environment at C:\Miniconda37-x64:
#
# Name                    Version                   Build  Channel
alabaster                 0.7.12                     py_0    conda-forge
babel                     2.9.0              pyhd3deb0d_0    conda-forge
brotlipy                  0.7.0           py37h0013d47_1001    conda-forge
ca-certificates           2020.11.8            h5b45459_0    conda-forge
certifi                   2020.11.8        py37h03978a9_0    conda-forge
cffi                      1.14.3           py37hd6b71e5_1    conda-forge
chardet                   3.0.4           py37hf50a25e_1008    conda-forge
clangdev                  5.0.0                   flang_3  [flang]  conda-forge
conda                     4.9.2            py37h03978a9_0    conda-forge
conda-package-handling    1.7.2            py37h6dbccfb_0    conda-forge
console_shortcut          0.1.1                         4
cryptography              3.2.1            py37hd8e9650_0    conda-forge
cython                    0.29.21          py37h8e8dfb5_1    conda-forge
docutils                  0.16             py37hf50a25e_2    conda-forge
future                    0.18.2           py37h03978a9_2    conda-forge
idna                      2.10               pyh9f0ad1d_0    conda-forge
imagesize                 1.2.0                      py_0    conda-forge
intel-openmp              2020.3             h57928b3_311    conda-forge
ipopt                     3.13.3               hf6be2e5_4    conda-forge
jinja2                    2.11.2             pyh9f0ad1d_0    conda-forge
libblas                   3.8.0                    20_mkl    conda-forge
libcblas                  3.8.0                    20_mkl    conda-forge
libflang                  5.0.0           h6538335_20180525    conda-forge
liblapack                 3.8.0                    20_mkl    conda-forge
markupsafe                1.1.1            py37h0013d47_2    conda-forge
menuinst                  1.4.16           py37hc8dfbb8_1    conda-forge
metis                     5.1.0             ha925a31_1006    conda-forge
mkl                       2020.2                      256
mumps-seq                 5.2.1               hb3f9cae_10    conda-forge
numpy                     1.19.4           py37hd20adf4_1    conda-forge
numpydoc                  1.1.0                      py_1    conda-forge
openmp                    5.0.0                    vc14_0    conda-forge
openssl                   1.1.1h               he774522_0    conda-forge
packaging                 20.4               pyh9f0ad1d_0    conda-forge
pip                       20.2.4                     py_0    conda-forge
powershell_shortcut       0.0.1                         3
pycosat                   0.6.3           py37h0013d47_1005    conda-forge
pycparser                 2.20               pyh9f0ad1d_2    conda-forge
pygments                  2.7.2                      py_0    conda-forge
pyopenssl                 19.1.0                     py_1    conda-forge
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
pysocks                   1.7.1            py37hf50a25e_2    conda-forge
python                    3.7.8           h60c2a47_1_cpython    conda-forge
python_abi                3.7                     1_cp37m    conda-forge
pytz                      2020.4             pyhd8ed1ab_0    conda-forge
pywin32                   228              py37h4ab8f01_0    conda-forge
requests                  2.25.0             pyhd3deb0d_0    conda-forge
ruamel_yaml               0.15.80         py37h0013d47_1003    conda-forge
setuptools                49.6.0           py37hf50a25e_2    conda-forge
six                       1.15.0             pyh9f0ad1d_0    conda-forge
snowballstemmer           2.0.0                      py_0    conda-forge
sphinx                    3.3.1              pyhd8ed1ab_0    conda-forge
sphinxcontrib-applehelp   1.0.2                      py_0    conda-forge
sphinxcontrib-devhelp     1.0.2                      py_0    conda-forge
sphinxcontrib-htmlhelp    1.0.3                      py_0    conda-forge
sphinxcontrib-jsmath      1.0.1                      py_0    conda-forge
sphinxcontrib-qthelp      1.0.3                      py_0    conda-forge
sphinxcontrib-serializinghtml 1.1.4                      py_0    conda-forge
sqlite                    3.33.0               he774522_1    conda-forge
tqdm                      4.52.0             pyhd3deb0d_0    conda-forge
urllib3                   1.25.11                    py_0    conda-forge
vc                        14.1                 h869be7e_1    conda-forge
vs2015_runtime            14.16.27012          h30e32a0_2    conda-forge
wheel                     0.35.1             pyh9f0ad1d_0    conda-forge
win_inet_pton             1.1.0            py37hc8dfbb8_1    conda-forge
wincertstore              0.2             py37hc8dfbb8_1005    conda-forge
yaml                      0.2.5                he774522_0    conda-forge

Details about  conda and system ( conda info ):

$ conda info
     active environment : base
    active env location : C:\Miniconda37-x64
            shell level : 1
       user config file : C:\Users\appveyor\.condarc
 populated config files : C:\Users\appveyor\.condarc
          conda version : 4.9.2
    conda-build version : not installed
         python version : 3.7.8.final.0
       virtual packages : __win=0=0
                          __archspec=1=x86_64
       base environment : C:\Miniconda37-x64  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/win-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : C:\Miniconda37-x64\pkgs
                          C:\Users\appveyor\.conda\pkgs
                          C:\Users\appveyor\AppData\Local\conda\conda\pkgs
       envs directories : C:\Miniconda37-x64\envs
                          C:\Users\appveyor\.conda\envs
                          C:\Users\appveyor\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/4.9.2 requests/2.25.0 CPython/3.7.8 Windows/2012ServerR2 Windows/6.3.9600
          administrator : True
             netrc file : None
           offline mode : False

I have also installed on a local machine and running below in powershell finds no dlls expected under 3.13
cd $Env:CONDA_PREFIX
Get-ChildItem -r ipopt-3.dll

Environment (conda list):

$ conda list
# packages in environment at C:\Users\ashander\scoop\apps\miniconda3\current\envs\opty-36:
#
# Name                    Version                   Build  Channel
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.1                      py_0    conda-forge
blas                      1.0                         mkl
ca-certificates           2020.11.8            h5b45459_0    conda-forge
certifi                   2020.11.8        py36ha15d459_0    conda-forge
colorama                  0.4.4              pyh9f0ad1d_0    conda-forge
cycler                    0.10.0                     py_2    conda-forge
cython                    0.27.3                   py36_0    conda-forge
decorator                 4.4.2                      py_0    conda-forge
fastcache                 1.1.0            py36h68aa20f_2    conda-forge
freetype                  2.10.4               h546665d_0    conda-forge
future                    0.18.2           py36ha15d459_2    conda-forge
icc_rt                    2019.0.0             h0cc432a_1
icu                       67.1                 h33f27b4_0    conda-forge
intel-openmp              2020.3             h57928b3_311    conda-forge
ipopt                     0.3.0.dev0               pypi_0    pypi
ipython                   5.8.0                    py36_1    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
jpeg                      9d                   h8ffe710_0    conda-forge
kiwisolver                1.3.1            py36he95197e_0    conda-forge
libblas                   3.8.0                    20_mkl    conda-forge
libcblas                  3.8.0                    20_mkl    conda-forge
libclang                  10.0.1          default_hf44288c_1    conda-forge
libflang                  5.0.0           h6538335_20180525    conda-forge
liblapack                 3.8.0                    20_mkl    conda-forge
libpng                    1.6.37               h1d00b33_2    conda-forge
llvm-meta                 5.0.0                         0    conda-forge
matplotlib                2.2.5                         2    conda-forge
matplotlib-base           2.2.5            py36h2981e6d_1    conda-forge
metis                     5.1.0             ha925a31_1006    conda-forge
mkl                       2020.2                      256
mkl-service               2.3.0            py36h779f372_2    conda-forge
mpmath                    1.1.0                      py_0    conda-forge
mumps-seq                 5.2.1               hb3f9cae_10    conda-forge
nose                      1.3.7                   py_1006    conda-forge
numpy                     1.14.6          py36hc71023c_1201    conda-forge
openmp                    5.0.0                    vc14_1    conda-forge
openssl                   1.1.1h               he774522_0    conda-forge
opty                      1.1.0.dev0                dev_0    <develop>
pickleshare               0.7.5                   py_1003    conda-forge
pip                       20.2.4                     py_0    conda-forge
prompt_toolkit            1.0.15                     py_1    conda-forge
pygments                  2.7.2                      py_0    conda-forge
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
pyqt                      5.12.3           py36h003fed8_4    conda-forge
pyqt5-sip                 4.19.18                  pypi_0    pypi
pyqtchart                 5.12                     pypi_0    pypi
pyqtwebengine             5.12.1                   pypi_0    pypi
python                    3.6.11          h6f26aa1_2_cpython    conda-forge
python-dateutil           2.8.1                      py_0    conda-forge
python_abi                3.6                     1_cp36m    conda-forge
pytz                      2020.4             pyhd8ed1ab_0    conda-forge
qt                        5.12.9               hb2cf2c5_0    conda-forge
scipy                     1.5.2            py36h9439919_0
setuptools                49.6.0           py36hd36e781_2    conda-forge
simplegeneric             0.8.1                      py_1    conda-forge
six                       1.15.0             pyh9f0ad1d_0    conda-forge
sqlite                    3.33.0               he774522_1    conda-forge
sympy                     1.1.1                    py36_0    conda-forge
tornado                   6.1              py36h68aa20f_0    conda-forge
traitlets                 4.3.3            py36h9f0ad1d_1    conda-forge
vc                        14.1                 h869be7e_1    conda-forge
vs2015_runtime            14.16.27012          h30e32a0_2    conda-forge
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
wheel                     0.35.1             pyh9f0ad1d_0    conda-forge
wincertstore              0.2             py36h9f0ad1d_1005    conda-forge
zlib                      1.2.11            h62dcd97_1010    conda-forge

Details about  conda and system ( conda info ):

$ conda info
     active environment : opty-36
    active env location : C:\Users\ashander\scoop\apps\miniconda3\current\envs\opty-36
            shell level : 2
       user config file : C:\Users\ashander\.condarc
 populated config files : C:\Users\ashander\.condarc
          conda version : 4.9.2
    conda-build version : not installed
         python version : 3.7.3.final.0
       virtual packages : __win=0=0
                          __archspec=1=x86_64
       base environment : C:\Users\ashander\scoop\apps\miniconda3\current  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/win-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : C:\Users\ashander\scoop\apps\miniconda3\current\pkgs
                          C:\Users\ashander\.conda\pkgs
                          C:\Users\ashander\AppData\Local\conda\conda\pkgs
       envs directories : C:\Users\ashander\scoop\apps\miniconda3\current\envs
                          C:\Users\ashander\.conda\envs
                          C:\Users\ashander\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/4.9.2 requests/2.25.0 CPython/3.7.3 Windows/10 Windows/10.0.18362
          administrator : False
             netrc file : None
           offline mode : False

look under Library/bin

If you just download the windows package, you can see that the .dll are available under Library\bin\libipopt.dll.

Yes, ok looking at the latest archive in https://anaconda.org/conda-forge/ipopt/files I do see Library\bin\libipopt.dll that is incompatible with the naming interface in the coin-or windows builds (eg see below)
(opty-36) PS C:\Users\ashander\lib\Ipopt-3.13.3-win64-msvs2019-md> ls .\bin\

    Directory: C:\Users\ashander\lib\Ipopt-3.13.3-win64-msvs2019-md\bin

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
------       10/16/2020  11:13 AM      102885888 ipopt-3.dll
------       10/16/2020  11:13 AM          75264 ipopt.exe
------       10/16/2020  11:13 AM         583168 ipoptamplinterface-3.dll
------       11/21/2019   6:06 AM        1751408 libifcoremd.dll
------       11/21/2019   6:07 AM        4281200 libmmd.dll
------        9/27/2019   3:06 PM         618264 msvcp140.dll
------       11/21/2019   6:07 AM       18699632 svml_dispmd.dll
------        9/27/2019   3:06 PM          89880 vcruntime140.dll

(opty-36) PS C:\Users\ashander\lib\Ipopt-3.13.3-win64-msvs2019-md> ls lib

    Directory: C:\Users\ashander\lib\Ipopt-3.13.3-win64-msvs2019-md\lib

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
------       10/16/2020  11:13 AM         731124 ipopt.dll.lib
------       10/16/2020  11:13 AM          41030 ipoptamplinterface.dll.lib

I see, this is a issue that it make sense to track, can you rename the issue to reflect the actual problem?
I used the libipopt naming as it was the one already used in  https://github.com/ycollet/coinor-cmake .
We can change it however (the commit current tracked is the tip of https://github.com/traversaro/coinor-cmake/tree/ipopt-conda-forge-build, all the maintainers should have write access, and we can move wherever the mantainer prefer) even if that is another change that could complicate unforking our changes (see https://github.com/conda-forge/ipopt-feedstock/issues/51). If we do something like that, probably it could make sense to just vendor the CMake build system directly in the feedstock (as was done in https://github.com/conda-forge/ipopt-feedstock/pull/34) instead of try to track a diverging fork. This

To clarify, I did not realized this as I consume IPOPT via a FindIPOPT CMake script, and the script was able to find both ipopt.dll and libipopt.dll.

We could also rename both libipopt.lib and libipopt.dll to the desired names after the build, but to be honest I am not sure if this is sufficient of inside the .lib or .dll files some references to the old names remains.

The bzip2 feedstock indeed just renames (actually copies in their case) the files, so perhaps it could make sense to rename them here as well:
https://github.com/conda-forge/bzip2-feedstock/blob/master/recipe/bld.bat#L19

Let me know if this name works or something else is better.

To clarify, I did not realized this as I consume IPOPT via a FindIPOPT CMake script, and the script was able to find both ipopt.dll and libipopt.dll.

Not sure I understand the implications, but since the windows builds (e.g. https://anaconda.org/conda-forge/ipopt/3.13.3/download/win-64/ipopt-3.13.3-hf6be2e5_4.tar.bz2 ) does this mean the script you use is able to work without ipopt.dll being present (because it knows the other name, libipoptdll and that is present)?

Not sure I understand the implications, but since the windows builds (e.g. https://anaconda.org/conda-forge/ipopt/3.13.3/download/win-64/ipopt-3.13.3-hf6be2e5_4.tar.bz2 ) do not include ipopt.dll unless I'm missing something serious). does this mean the script you use is able to work without ipopt.dll being present (because it knows the other name, libipoptdll and that is present)?

This is what was I was thinking,  but actually I was wrong, the script that I am using is indeed looking only for libipopt, see:
https://github.com/robotology/ycm/blob/master/find-modules/FindIPOPT.cmake#L133
I thought it was doing:
 find_library(IPOPT_LIBRARY NAMES libipopt ipopt)

but instead is only doing:
 find_library(IPOPT_LIBRARY NAMES libipopt)

I was probably confused because we also have a binary build of an old ipopt version built with the autotools build system, and instead also in that case instead the name is libipopt.dll.
Given that both my old build and coinor-cmake use libipopt, I guess that back in time the dll name was libipopt.dll, but then it changed to ipopt-<something>.dll in https://github.com/coin-or/Ipopt/pull/345 . However, I think that indeed it make sense to be aligned with whatever naming upstream proposes, I will fix my FindIPOPT.cmake script to handle that.

It isn't clear to me what the files should be named. In the cyipopt linux script we use pkg-config to identify the share lib paths and names. Maybe there is something equivalent on windows. That way they can be named anything.

Yeah ... it'd be nice to not have dependencies on specific names for DLLs
but rather just specify the folder they're in, as is done with headers etc.
Pkg-config knows the folder names but not the file names. Not sure if this
is possible.
On Tue, Nov 17, 2020 at 2:00 PM Jason K. Moore<EMAIL_ADDRESS>wrote:

It isn't clear to me what the files should be named. In the cyipopt linux
script we use pkg-config to identify the share lib paths and names. Maybe
there is something equivalent on windows. That way they can be named
anything.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/conda-forge/ipopt-feedstock/issues/53#issuecomment-729135343,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAD4WOBLIYCHU4KUMHKZGMLSQLB6LANCNFSM4TY4CB4Q
.

I just read this fully. It seems like we should rename the files to make what upstream IPOPT does. Is that correct?

I just read this fully. It seems like we should rename the files to make what upstream IPOPT does. Is that correct?

Yes, I checked in IPOPT source and given https://github.com/coin-or/Ipopt/blob/releases/3.13.3/src/Interfaces/Ipopt.java#L162 I guess that bin\ipopt-3.dll and lib\ipopt-3.lib . I also checked and just renaming the .lib and the .dll  after the build should work fine, otherwise an easy fix on the CMake side would be to just add a line:
set_target_properties(libipopt PROPERTIES OUTPUT_NAME "ipopt-3")

This should avoid the problem of changing all the instances of libipopt  to ipopt-3 in the CMake build files.

It isn't clear to me what the files should be named. In the cyipopt linux script we use pkg-config to identify the share lib paths and names. Maybe there is something equivalent on windows. That way they can be named anything.

Yes, pkg-config  works fine as well on Windows, it also has a --msvc-syntax option. The conda-forge's ipopt package on Windows also ships with a .pc file, but given its content:
prefix=D:/bld/ipopt_1605616866017/_h_env/Library
prefix=${pcfiledir}/../..
exec_prefix=${prefix}
libdir=D:/bld/ipopt_1605616866017/_h_env/Library/lib
includedir=D:/bld/ipopt_1605616866017/_h_env/Library/include/coin-or

Name: IpOpt
Description: Interior Point Optimizer
URL:
Version: 3.13.3
Cflags: -I${includedir}
Libs: -L${libdir} -lipopt
Requires.private:  -llapack
Libs: -L${libdir} -lipopt -lm -ldl
Requires:  -llapack

I do not know if it works fine now, of if it needs to be patched. For sure it needs to be patched if we change the library name in ipopt-3 .

otherwise an easy fix on the CMake side would be to just add a line

I can do this, but I don't know anything about editing CMAKE files. I see these current instances of set_target_properties:
moorepants@nandi:Ipopt(rename-binaries)$ grep -r set_target_properties
Ipopt/CMakeLists.txt:set_target_properties(libipopt PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
Ipopt/CMakeLists.txt:  set_target_properties(libipopt PROPERTIES INTERPROCEDURAL_OPTIMIZATION true)
Ipopt/CMakeLists.txt:  set_target_properties(libipopt PROPERTIES PREFIX "")
Ipopt/CMakeLists.txt:    set_target_properties(solve_problem PROPERTIES INTERPROCEDURAL_OPTIMIZATION true)
Ipopt/CMakeLists.txt:    set_target_properties(cpp_example PROPERTIES INTERPROCEDURAL_OPTIMIZATION true)
Ipopt/CMakeLists.txt:    set_target_properties(hs071_c PROPERTIES INTERPROCEDURAL_OPTIMIZATION true)
Ipopt/CMakeLists.txt:    set_target_properties(hs071_cpp PROPERTIES INTERPROCEDURAL_OPTIMIZATION true)
Ipopt/CMakeLists.txt:      set_target_properties(hs071_f PROPERTIES INTERPROCEDURAL_OPTIMIZATION true)
ThirdParty/HSL/CMakeLists.txt:set_target_properties(hsl PROPERTIES DEBUG_POSTFIX -d)
ThirdParty/Metis/CMakeLists.txt:set_target_properties(metis PROPERTIES DEBUG_POSTFIX -d)
ThirdParty/CMakeLists_mumps.txt:    set_target_properties(libseq PROPERTIES PREFIX "")
ThirdParty/CMakeLists_mumps.txt:  set_target_properties(libpord PROPERTIES PREFIX "")
ThirdParty/CMakeLists_mumps.txt:  set_target_properties(libmumps_common PROPERTIES PREFIX "")
ThirdParty/CMakeLists_mumps.txt:  set_target_properties(libcmumps PROPERTIES PREFIX "")
ThirdParty/CMakeLists_mumps.txt:  set_target_properties(libdmumps PROPERTIES PREFIX "")
ThirdParty/CMakeLists_mumps.txt:  set_target_properties(libsmumps PROPERTIES PREFIX "")
ThirdParty/CMakeLists_mumps.txt:  set_target_properties(libzmumps PROPERTIES PREFIX "")
ThirdParty/CMakeLists_mumps.txt:set_target_properties(ssimple_test PROPERTIES LINKER_LANGUAGE Fortran)
ThirdParty/CMakeLists_mumps.txt:set_target_properties(dsimple_test PROPERTIES LINKER_LANGUAGE Fortran)
ThirdParty/CMakeLists_mumps.txt:set_target_properties(csimple_test PROPERTIES LINKER_LANGUAGE Fortran)
ThirdParty/CMakeLists_mumps.txt:set_target_properties(zsimple_test PROPERTIES LINKER_LANGUAGE Fortran)
ThirdParty/CMakeLists_mumps.txt:  set_target_properties(c_example PROPERTIES LINKER_LANGUAGE Fortran)

Would I be adding a new one somewhere or editing the first three?

I'm guessing a new one...

Yes, all of those are different properties, so adding a new command to set the new property make sense.

Here: https://github.com/traversaro/coinor-cmake/pull/1/files

I feel like we should include the cmake files in this feedstock to solve #51.

I feel like we should include the cmake files in this feedstock to solve #51.

Ok for me, even if I fear  (as discussed in https://github.com/conda-forge/ipopt-feedstock/pull/47#issuecomment-720166916) that this will actually make it harder to eventually get those changes in the original repo and actually solve #51, instead of just having a fork of the coinor-cmake project  inside of the recipe, but anything that is ok for the mantainers is ok for me. An alternative strategy is to just keep a big patch over coinor-cmake (i.e. https://github.com/ycollet/coinor-cmake/compare/master...traversaro:ipopt-conda-forge-build?expand=1) in the recipe itself, but probably that is even a worse solution because it would complicate the maintenance of the CMake scripts.

For the names of the binaries, downstream packages can deal with any names, I suppose. Their methods to do so become more complicated, of course. But if the official ipopt windows builds use different naming patterns, maybe that's the actual problem. Maybe they should use consistent names across OSes?? If IPOPT uses different names on different platforms their .pc file should also reflect that. It isn't clear to me if this needs to be addressed in IPOPT or just this set of cmake files. Who's doing the inconsistent naming?

But if the official ipopt windows builds use different naming patterns, maybe that's the actual problem. Maybe they should use consistent names across OSes??

I think that is up to them, I saw different libraries using different strategies. For example, most libraries indeed use different names given the default settings of CMake and of the GCC compiler (i.e. libraries that are named lib<something>.so in Linux or something.dll on Windows) but indeed adding the -3 is something different, but I suspect in their case it is intentional (see the https://github.com/coin-or/Ipopt/blob/releases/3.13.3/src/Interfaces/Ipopt.java#L162).

If IPOPT uses different names on different platforms their .pc file should also reflect that. It isn't clear to me if this needs to be addressed in IPOPT or just this set of cmake files. Who's doing the inconsistent naming?

The .pc files generation logic is inside , but the actual template file comes from Ipopt upstream https://github.com/coin-or/Ipopt/blob/master/ipopt.pc.in#L14 and it hardcodes the ipopt name without -3 , so perhaps this is indeed an ipopt upstream problem (or perhaps is not a problem for them as they don't support pkg-config on Windows).


[BUG] bitrate not restoring after arm change

I'd be easy to solve by disarming before an arm command is processed

Solved, as you mentioned, by enforcing disarm before rearming


Switch to the text/rust MIME type introduced into shared-mime-info.

Cf. https://bugs.freedesktop.org/show_bug.cgi?id=90487
Drops the text/x-rust MIME type file from the repo.
Note a shared-mime-info release with the new type has yet to happen.

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. The way Github handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see CONTRIBUTING.md for more information.


Fix Codecov

Potentially closes #294

@iincer Please review
It seems that Codecov  is working now: https://app.codecov.io/gh/pacti-org/pacti/commit/70cee7d160e24cabd5addfb693c695c05f0e6786/indirect-changes
might need more setup steps to ensure the monitoring works with PRs on Github as well.

Ok, it seems like it is working with PRs


Use devcert or similar strategy for for ssl certificate generation

This issue is for a:

[ ] bug
[x] feature request
[ ] modification request

Expected Behavior
Generated certificate only needs to be trusted once instead of the current process from webpack-dev-server of having to go to Advanced and Proceed (unsafe) every time a new cert is generated.
This was discussed on webpack-dev-server as a suggested change for 3.x (which I now believe has morphed into this project)
Actual Behavior
No certs generated (at least that I can see in the current code, so this is up for discussion.
New Feature Use Case
Make sure everyone uses local SSL for development!

Thanks for the issue 🍺
devcert is actually going to be the preferred method to use for generating these. webpack-serve is not going to handle that task, and will only consume certs as provided. We're working with the devcert maintainers to bring a solution to everyone that's more user-friendly. I'll update the README in the meantime. Please feel free to reply and continue the discussion.

Hey, devcert author here, just chiming in that it's the next thing up on my OSS todo list. There's a few changes that needed to happen to make sure we are doing things securely, and testing is a bit of a bear (as you might imagine).
Thanks for everyone's patience (especially @shellscape's) while I work through these issues. Hopefully we can close this out soon!

Hey all,
I'm in unfamiliar waters here so apologies in advanced for the naive noob question: what's preventing this project from just having an ssl: true option that uses whatever tool under-the-hood to generate a cert on-the-fly?

@rubencodes you could, but you browser wouldn’t trust that certificate, so you’d see annoying warning pages where your browser tells you “This isn’t safe, I don’t know whoever made this certificate”.
To avoid that, you need to tell the browser to trust the certificate you generate, which requires sudo/admin level privileges (as it should). That process of telling the browser to trust a certificate also varies across platform and browser.
Devcert is a library that manages all that for you, so you can just say “give me a trusted certificate” and it will do the legwork of promoting the user for permission and updating the various browser and OS level trust stores.
So, you’re on the right track, but it’s slightly more complicated in the “under-the-hood” part ;)

@rubencodes the complexities that come with an under-the-hood approach make it undesirable. webpack-dev-server is still dealing with an imperfect solution. Couple that with the fact that most folks who actually need to test on SSL have their own certs already, and you only create an environment of complexity for the end user by auto-generating one. Users should also know what SSL is and what it means before they arbitrarily choose to test using it. So webpack-serve takes the approach of insisting that users understand what they're doing, while providing an easy means to do so (that's where devcert comes into play).
webpack-serve isn't a kitchen-sink solution. it's a solution that enables you to easily apply and use the kitchen sink if you'd like to.

@davewasmer @shellscape Gotcha, great answers all around! Thanks! These days switching a production website over to HTTPS can be as simple as checking a checkbox or running a single command (i.e. complexities hidden away from the end-user), so I was just curious if there was a way to do this with our local dev servers as well. Totally makes sense not to take the kitchen-sink approach, though.

@rubencodes even in that flip-the-switch scenario, there's a cert somewhere.

@rubencodes - One of the issues with auto-generated HTTPS certs comes into play when trying to connect to a backend via HTTPS ( You need the certs to match ) & auto-generated SSL certs across repos sounds tedious.
Add selfsigned lib
yarn add selfsigned --dev

Top level directory for certs
mkdir ./ssl

Add package.json script
"certs": "node ./.ssl/selfsigned",

Ignore generated certs in .gitignore
.ssl/*.crt
.ssl/*.key

Add ./ssl/selfsigned.js
const fs = require('fs');
const selfsigned = require('selfsigned');
const attrs = [{ name: 'commonName', value: 'deviantjs.local' }];
const pems = selfsigned.generate(attrs, {
  algorithm: 'sha256',
  keySize: 2048,
  extensions: [
    {
      name: 'subjectAltName',
      altNames: [
        {
          type: 2, // DNS
          value: 'localhost',
        },
        {
          type: 2, // DNS
          value: 'deviantjs.local',
        },
        {
          type: 6, // URI
          value: 'https://deviantjs.local',
        },
        {
          type: 7, // IP
          ip: '<IP_ADDRESS>',
        },
      ],
    },
  ],
});

fs.writeFileSync('./.ssl/server.crt', pems.cert, { encoding: 'utf-8' });
fs.writeFileSync('./.ssl/server.key', pems.private, { encoding: 'utf-8' });

The following certs can then be used in any number of server side applications. The following only needs to be run once in local development.
I get what you are looking for but in the end, the flip the switch approach is limiting. You could just as easily execute the above as a post install script and get what is essentially the same thing with all the freedom you need in a more complicated development setup.

@d3viant0ne if I understand your post correctly, I think the biggest difference between devcert and selfsigned is that devcert generates trusted certificates. If you use selfsigned, then I imagined you'd see the browser warnings about untrusted / misconfigured SSL, and other tools may simply not work at all (i.e. curl).

I'm adding documentation today to point users to devcert-cli, so we can safely close this one. That'll be the recommended course for users that want to test https locally.


feat(cosmos): CW-6997 Complete CoolWallet Cosmos SDK

Summary

Cosmos compatible SDK for CoolWallet.
Add Cosmos page in coin-tester.
Use local @coolwallet/transport-jre-http instead.
Upgrade lerna to version 5.

Task linked: CW-6997 Implement coin-cosmos to support blockchains built with COSMOS SDK


npm build looks like it does nothing

Correction: It DOES nothing. Fix it

Fixed in https://github.com/C-Bouthoorn/Anthony-Server/commit/e08f256cbbbf3565d2858155263ef5628c4d8122


Add create router SDK functionality

Context:
Currently the Turing SDK only supports batch experiments by covering only operations related to ensemblers and ensembling jobs, and we are now expanding its scope to cover online experiments by extending the SDK to cover operations involving other Turing components. Previously we've already implemented the SDK to supporting the listing of routers in PR #148, and this PR includes additional functionalities involving the setting up of routers.
Features:
This PR involves implementing a functionality corresponding to one of the API endpoints involving routers, i.e. creating a new router given a router configuration.

New SDK classes have been created for users to interact with (Route, TrafficRuleCondition, TrafficRule, LogConfig, ResourceRequest, Enricher, RouterEnsemblerConfig, etc.) and to build their own RouterConfig instance incrementally using these components

Example:
router_config = RouterConfig(
        environment_name="id-dev",
        name="router-1",
        routes=[
            Route(
                id="model-a",
                endpoint="http://predict-this.io/model-a",
                timeout="100ms"
            ),
            Route(
                id="model-b",
                endpoint="http://predict-this.io/model-b",
                timeout="100ms"
            )
        ],
        rules=None,
        default_route_id="test",
        experiment_engine=ExperimentConfig(
            type="nop",
            config={
                'variables':
                        [
                            {'name': 'order_id', 'field': 'fdsv', 'field_source': 'header'},
                            {'name': 'country_code', 'field': 'dcsd', 'field_source': 'header'},
                            {'name': 'latitude', 'field': 'd', 'field_source': 'header'},
                            {'name': 'longitude', 'field': 'sdSDa', 'field_source': 'header'}
                        ],
                'project_id': 102
            }
        ),
        resource_request=ResourceRequest(
            min_replica=0,
            max_replica=2,
            cpu_request="500m",
            memory_request="512Mi"
        ),
        timeout="100ms",
        log_config=LogConfig(
            result_logger_type=ResultLoggerType.NOP,
            table="abc.dataset.table",
            service_account_secret="not-a-secret"
        ),
        enricher=Enricher(
            image="asia.test.io/model-dev/echo:1.0.2",
            resource_request=ResourceRequest(
                min_replica=0,
                max_replica=2,
                cpu_request="500m",
                memory_request="512Mi"
            ),
            endpoint="/",
            timeout="60ms",
            port=8080,
            env=[
                EnvVar(
                    name="test",
                    value="abc"
                )
            ]
        ),
        ensembler=DockerRouterEnsemblerConfig(
            id=1,
            image="asia.test.io/gods-test/turing-ensembler:0.0.0-build.0",
            resource_request=ResourceRequest(
                min_replica=1,
                max_replica=3,
                cpu_request="500m",
                memory_request="512Mi"
            ),
            endpoint=f"http://localhost:5000/ensembler_endpoint",
            timeout="500ms",
            port=5120,
            env=[],
        )
    )

The SDK classes also double as objects that automatically get created (as properties of Router instances) when users receive responses from the Turing API containing Router information

Example:
# retrieving a list of routers using the SDK method list() from PR #148
routers = turing.Router.list()

# get an instance of one of the Router objects returned
my_router = routers[0]

# access attributes of Router instances (such as RouterConfig and Route) and manipulate them directly
my_router.config.routes[0].timeout = "50ms"

These SDK components returned can then be retrieved and reused as individual components for other RouterConfig configurations
Tests involving all the newly created components

Modifications

sdk/turing/router/* - new Python files containing the new SDK classes for router components
sdk/turing/router/router.py - addition of a new Router.create method to create a new Turing router with a given router configuration
sdk/turing/router/session.py - addition of a new create_router method used by Router.create to call the API method associated with creating a new Turing router
api/api/specs/* - addition of regex expressions that will be enforced by API classes generated by OpenAPI Generator; acts as a central source of truth for validating user input
 sdk/turing/generated/model/* - autogenerated API classes changed by the OpenAPI generator given the changes made to the OpenAPI specs

This is great, thanks @DeadlyCoconuts. Could you please also include samples on how to use this SDK under https://github.com/gojek/turing/tree/main/sdk/samples?

Alright sure, I'll add them in in the next PR :)


chore: relicense to Apache-2.0

This commit relicenses all of the codebase to Apache-2.0. The logic
behind this is that so much of the codebase is Apache-2.0, from
before the fork, that it doesn't make sense to dual-license the
repository. All projects under this org going forward will be GPL,
but stencil itself will stay as Apache-2.0
For proof of authors who contributed during this time's agreement
to relicense, see the PR associated with this change.

@deregtd Do you, the primary copyright holder of the following changes made during the AGPL-3.0 period, agree to your changes being licensed under Apache-2.0?

https://github.com/rgst-io/stencil/commit/7d8d0f8253955f3c1539418e2007a3b039563836
https://github.com/rgst-io/stencil/commit/eccaec20cc2ec55688ac54139dcebed523b13def
https://github.com/rgst-io/stencil/commit/bbac52b406ec66041bd9b31df66b4cc0980ec7a5

@deregtd Do you, the primary copyright holder of the following changes made during the AGPL-3.0 period, agree to your changes being relicensed under Apache-2.0?

7d8d0f8
eccaec2
bbac52b

Yes

Missed a spot and my commit wasn't signed (oops), fixed.


refactor: seo title & description asset hub

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[ ] Bugfix
[ ] Feature
[x] Refactoring

Context

[ ] Closes #7645
[ ] Requires deployment <snek/rubick/worker>

Did your issue had any of the "$" label on it?

[ ] My DOT address: Payout

Screenshots

Copilot Summary

🤖 Generated by Copilot at ba92bed
This pull request adds dynamic SEO meta tags and page titles to the explore pages based on the URL prefix and the chain or asset hub. It uses a new utility file seo.ts and updates the explore layout and pages scripts and the English locale file.

🤖 Generated by Copilot at ba92bed

We are the masters of SEO
We optimize our pages with seo.ts
We use the prefix and the hub to set the meta tags
We make our titles dynamic and localized

does not look that good now, but if it helps with seo..
I would maybe leave out the "items", because this is not logical no? There should be either "collections" or nothing

but if it helps with SEO..

hope so for bit better rank as it's h1 text (high value)

I would maybe leave out the "items", because this is not logical no? There should be either "collections" or nothing

yup, it's in the highlight

interesting second time failed deploy

pay 30 usd
let's go, let's see if will have some impact on seo

thanks @thnaylor

😍 Perfect, I’ve sent the payout
💵 $30 @ 3.78 USD/DOT ~ 7.937 $DOT
🧗 123PCJXhjb15i6JwVVRGd7KvN2sSNZrtPjr5doJq9oWctoTt
🔗 0x5f1c34cb6b56778385d9f7225fa67e1476ff6cb50a8fd32885d81e85131ff693
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


”DROBETA-TURNU SEVERIN” is listed in the drop-down menu

Description:
"DROBETA-TURNU SEVERIN" is listed in the drop-down menu alongside its corresponding county and commune, according to the law.
Precondition:
The website is up an running.

Step 1
Type "DROBETA-TURNU SEVERIN" in the search bar.

Expected results
The location is listed in the drop-down menu as "Municipiul DROBETA-TURNU SEVERIN, MEHEDINȚI".


Functions Need to be Explained... a least a little

Challenge Convert Celsius to Fahrenheit has an issue.
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:

function convertToF(celsius) {
  var fahrenheit;
  // Only change code below this line
  fahrenheit = 9/5 * celsius + 32;

  // Only change code above this line
  return fahrenheit;
}

// Change the inputs below to test your code
convertToF(30);

This is the first appearance of functions and return values, as is noted at the end of the question. But for the novice - for which, up to this point everything is fine - nothing here makes sense.
This is a classic example of the information hiding conundrum of teaching programming: how to make things function, so as to teach/demonstrate something, without having introduced certain key concepts.
But at least a little intro to functions and return values should occur here. Even if it's just guidance to the order in which the lines occur, For example:
"When the code runs, it starts with the call to convertToF(30) on line 12. The 30 is 'sent up' to the actual function, on line 2. So from that point on the variable celsius is available to be used in the function (lines 2 to 9) with the value of 30."

@johnrayworth thanks for the feedback. This challenge has gotten a lot of work done on it. We've tried to scope each challenge to just work on a single concept. This challenge being trying to combine all the mathematical operations you've learned so far. As the note says in the bottom, functions will be covered later on. I agree that hiding concepts isn't good, but I think of this challenge as a sneak peak of what is to come next.
cc/ @freeCodeCamp/moderators @HKuz what do you think?

The question is ridiculous for absolute beginners.

I agree with @HKuz - this is resolved in staging, which will be pushed to production as soon as @BerkeleyTrue has finished the platform and UI enhancements.

I am new to JavaScript I don't understand this question it's badly written and actually making me want to use another coding site. I don't know the answer, the chat room isn't helping someone like me who is a first time coder. Everyone keeps telling me to write the code down with a pen and pencil, that would be fine if I had clearer instructions. I am also not an algebra person and everyone is telling me to learn basic algebra. None of which is actually helping me to solve the query.


Minor change to cleanup some clunky sorting

Codecov Report

Merging #502 (5ef2a4c) into master (e3d7bd8) will decrease coverage by 0.14%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #502      +/-   ##
==========================================
- Coverage   86.70%   86.56%   -0.15%
==========================================
  Files          18       18
  Lines         933      923      -10
  Branches       83       82       -1
==========================================
- Hits          809      799      -10
  Misses        124      124

Impacted Files
Coverage Δ

...la/com/databricks/spark/xml/util/InferSchema.scala
88.97% <100.00%> (-0.76%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e3d7bd8...5ef2a4c. Read the comment docs.


None has no attribute get

Hello, I had an update to latest integration version today. When i did that, i get that error. I tried to get back to 1.21 which was previously working without success.
I uninstalled integration and reinstall. now it ask for logon then it says just error.

Hello, I had an update to latest integration version today. When i did that, i get that error. I tried to get back to 1.21 which was previously working without success. I uninstalled integration and reinstall. now it ask for logon then it says just error.

First step in troubleshooting is trying the app.
There's apparently new consent needed since yesterday.


[wasm][build] Guard libdispatch and Threads usage with HAS_LIBDISPATCH_API

This is a follow-up to 5e7281b993ca04486ed8f2add39c8b11f132a550 to make it possible to turn them off when building for that platform.

@swift-ci test

Hmm, is this build failure tracked by somewhere?
https://ci.swift.org/job/swift-corelibs-foundation-PR-macOS/356/
/Users/ec2-user/jenkins/workspace/swift-corelibs-foundation-PR-macOS/branch-main/swift-corelibs-foundation/CoreFoundation/Locale.subproj/CFLocale.c:1277:50: error: initializer element is not a compile-time constant
    static CFStringRef const kCFLocaleCodesKey = CFSTR("__kCFLocaleCodes");
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~

cc @parkera for the macOS CI failure


Inconsistencies between code and db schema

There are some inconsistencies between db schema and the code (go structs).
See here also.

Link does not work

@kyrcha fixed 👍


Prepare front end for deployment

This pr will be on hold since frontend is going to be moved into aws ec2

This pr will be on hold since frontend is going to be moved into aws ec2

ec2 is currently using my dev branch (this PR), so it is safe to review


i/o timeout in coredns pod

Copying from https://github.com/ubuntu/microk8s/issues/958#issuecomment-661986123, as this looks to be the crux of the issue. For some reason, some queries to <IP_ADDRESS> and <IP_ADDRESS> for api.jujucharms.com are failing:
[ERROR] plugin/errors: 2<PHONE_NUMBER>770853004.8780143945028532492. HINFO: read udp <IP_ADDRESS>:44631-><IP_ADDRESS>:53: i/o timeout
[INFO] <IP_ADDRESS>:33385 - 46047 "AAAA IN api.jujucharms.com.localdomain. udp 48 false 512" NOERROR - 0 2.000755655s
[ERROR] plugin/errors: 2 api.jujucharms.com.localdomain. AAAA: read udp <IP_ADDRESS>:57766-><IP_ADDRESS>:53: i/o timeout
[INFO] <IP_ADDRESS>:36178 - 22767 "A IN api.jujucharms.com.localdomain. udp 48 false 512" NOERROR - 0 2.000677982s
[ERROR] plugin/errors: 2 api.jujucharms.com.localdomain. A: read udp <IP_ADDRESS>:44211-><IP_ADDRESS>:53: i/o timeout
[INFO] <IP_ADDRESS>:60455 - 56232 "AAAA IN api.jujucharms.com.localdomain. udp 48 false 512" NOERROR - 0 2.000352953s
[ERROR] plugin/errors: 2 api.jujucharms.com.localdomain. AAAA: read udp <IP_ADDRESS>:45297-><IP_ADDRESS>:53: i/o timeout
[INFO] <IP_ADDRESS>:50299 - 52151 "A IN api.jujucharms.com.localdomain. udp 48 false 512" NOERROR - 0 2.000257257s
[ERROR] plugin/errors: 2 api.jujucharms.com.localdomain. A: read udp <IP_ADDRESS>:40710-><IP_ADDRESS>:53: i/o timeout
[INFO] <IP_ADDRESS>:39253 - 3642 "AAAA IN api.jujucharms.com. udp 36 false 512" NOERROR - 0 2.000834815s
[ERROR] plugin/errors: 2 api.jujucharms.com. AAAA: read udp <IP_ADDRESS>:38538-><IP_ADDRESS>:53: i/o timeout
[INFO] <IP_ADDRESS>:47372 - 10457 "A IN api.jujucharms.com. udp 36 false 512" NOERROR - 0 2.000768237s
[ERROR] plugin/errors: 2 api.jujucharms.com. A: read udp <IP_ADDRESS>:33745-><IP_ADDRESS>:53: i/o timeout
[INFO] <IP_ADDRESS>:47852 - 7227 "AAAA IN api.jujucharms.com. udp 36 false 512" NOERROR - 0 2.000442768s
[ERROR] plugin/errors: 2 api.jujucharms.com. AAAA: read udp <IP_ADDRESS>:42672-><IP_ADDRESS>:53: i/o timeout
[INFO] <IP_ADDRESS>:60290 - 23521 "A IN api.jujucharms.com. udp 36 false 512" NOERROR - 0 2.000334072s
[ERROR] plugin/errors: 2 api.jujucharms.com. A: read udp <IP_ADDRESS>:52312-><IP_ADDRESS>:53: i/o timeout

@davigar15 has reported the same issue.
This is sporadic, right? Some things we could try is to use the host to resolver. forward . /etc/resolv.conf or maybe increase the case to something longer than 30 secs [1].
Could anyone try any of the above and report back any results?
[1] https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/

Do not think this is a sporadic/transient issue. I have tried for 3 days continuously (microk8s.enable kubeflow), sometimes at different times of day and got the same error each time. Tried to debug a little bit after N failures and then found the errors in coredns pod. Also went into one another pod and tried ping <IP_ADDRESS>, which worked fine but pings to other public IPs/api.jujucharms.com failed.
As mentioned in my comment here, I did not face this issue on AWS EC2 instance with Ubuntu 2004 Server image. Until yesterday i was trying on Ubuntu Desktop 2004 (running in VMware Player) and today i have tested with Ubuntu 2004 Server locally (running in VMware Player) and not very surprising, Kubeflow was deployed successfully.

I just tried this on another machine with Ubuntu 18.04. Same error in the past one month:
ERROR cannot deploy bundle: cannot add charm "cs:~kubeflow-charmers/ambassador-89": cannot retrieve charm "cs:~kubeflow-charmers/ambassador-89": cannot get archive: Get https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/ambassador-89/archive?channel=stable: dial tcp: lookup api.jujucharms.com on <IP_ADDRESS>:53: server misbehaving
Command '('microk8s-juju.wrapper', 'deploy', 'cs:kubeflow-195', '--channel', 'stable', '--overlay', '/tmp/tmpfdpsap90')' returned non-zero exit status 1
Failed to enable kubeflow

@bipinm: can you expand a little more on this?

Also went into one another pod and tried ping <IP_ADDRESS>, which worked fine but pings to other public IPs/api.jujucharms.com failed.

Which pod(s) did you go into, and which other public IPs did you try?

After debugging with @davigar15, I think this issue is not actually Kubeflow-specific, and is a general networking issue that starts happening after a computer with microk8s is rebooted. @bipinm, @atamahjoubfar, can you verify that this is related to rebooting the host machine for microk8s? @davigar15 says that when he runs into this issue, reinstalling the microk8s snap fixes things for him.

I reinstalled microk8s, and enabled kubeflow without reboot. I still get the same error message.

Without a restart after sudo snap install microk8s --classic , Kubeflow was deployed successfully. So far I was always restarting after seeing this message
bipinm@ubuntu:~$ microk8s.status --wait-ready
Insufficient permissions to access MicroK8s.
You can either try again with sudo or add the user bipinm to the 'microk8s' group:

    sudo usermod -a -G microk8s bipinm
    sudo chown -f -R bipinm ~/.kube

The new group will be available on the user's next login.

This time instead of a re-start, ran sudo usermod ... & gnome-session-quit commands followed by rest
microk8s.status --wait-ready
microk8s.enable dns dashboard storage
microk8s.enable kubeflow

In my previous tests on Ubuntu 2004 server i followed similar restart step, but did not encounter this problem. Only seem to occur on 2004 Desktop version.
@knkski: The pod i used for ping test was nginx-ingress-microk8s-controller
Now
Without restart, i go into the pod and can ping public domain names (google.com, jujucharms.com etc)
After restart, cannot ping any public domain names but can ping their IP addresses
Test after install of microk8s +  enable kubelow but without restart (from within nginx-ingress-microk8s-controller)
bash-5.0$ nslookup google.com
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>:53

Non-authoritative answer:
Name:   google.com
Address: <IP_ADDRESS>

Non-authoritative answer:
Name:   google.com
Address: 2404:6800:4007:807::200e

ash-5.0$ nslookup jujucharms.com
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>:53

Non-authoritative answer:
Name:   jujucharms.com
Address: <IP_ADDRESS>
Name:   jujucharms.com
Address: <IP_ADDRESS>
Name:   jujucharms.com
Address: <IP_ADDRESS>
Name:   jujucharms.com
Address: <IP_ADDRESS>

Non-authoritative answer:
Name:   jujucharms.com
Address: 2001:67c:1562::20
Name:   jujucharms.com
Address: 2001:67c:1360:8001::2c
Name:   jujucharms.com
Address: 2001:67c:1562::1f
Name:   jujucharms.com
Address: 2001:67c:1360:8001::2b

Test after install of microk8s restart (+ failed enable kubelow)
bash-5.0$ nslookup google.com
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>:53

;; connection timed out; no servers could be reached

bash-5.0$ nslookup api.jujucharms.com
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>:53

;; connection timed out; no servers could be reached

@bipinm immediately after a reboot the k8s networking is not correctly setup. During that period I was getting:
bash-5.0$ nslookup jujucharms.com
nslookup: write to '<IP_ADDRESS>': Operation not permitted
;; connection timed out; no servers could be reached

Within 2 to 3 minutes the pods were reporting state Unknown and the control plane was rescheduling them getting them into Ready state again. After that point name resolution is working again.

@ktsakalozos, i was running nslookup > 15+ minutes post reboot. Sequence of steps which always failed for me

sudo snap install microk8s --classic
sudo usermod -a -G microk8s user
Reboot
After system is up, check status with microk8s.status --wait-ready
Also confirm all pods are running
microk8s.enable dns dashboard storage
Open dashboard UI and confirm everything is fine
microk8s.enable kubeflow
ping test and nslookup from pod nginx-ingress-microk8s-controller-xxxx (this is probably 15+ minutes after reboot)

Will try this once again to confirm, i am not absolutely sure if i was rebooting after step 6

@ktsakalozos , same here.
I'm running microk8s on my Ubuntu 18.04 dev machine. After booting the machine none of the Pods are starting because they are downloading some files but can't resolve the domain names so can't resolve the imports(Deno).
After manually stopping and starting the cluster via microk8s start / microk8s stop DNS resolution works perfectly fine, so something with the automatic startup process seems not to work as expected.

@ktsakalozos not rebooting the machine or microk8s stop/start did not resolve the issue for me:
+ microk8s-juju.wrapper --debug add-model kubeflow microk8s

02:01:45 INFO  juju.cmd supercommand.go:83 running juju [2.7.6 4da406fb326d7a1255f97a7391056641ee86715b gc go1.12.17]
02:01:45 DEBUG juju.cmd supercommand.go:84   args: []string{"/snap/microk8s/1551/bin/juju", "--debug", "add-model", "kubeflow", "microk8s"}
02:01:45 INFO  juju.juju api.go:67 connecting to API addresses: [<IP_ADDRESS>:17070]
02:01:45 DEBUG juju.api apiclient.go:1092 successfully dialed "wss://<IP_ADDRESS>:17070/api"
02:01:45 INFO  juju.api apiclient.go:624 connection established to "wss://<IP_ADDRESS>:17070/api"
02:01:45 INFO  cmd authkeys.go:114 Adding contents of "/var/snap/microk8s/1551/juju/share/juju/ssh/juju_id_rsa.pub" to authorized-keys
02:01:45 INFO  cmd addmodel.go:301 Added 'kubeflow' model on microk8s/localhost with credential 'microk8s' for user 'admin'
02:01:45 DEBUG juju.api monitor.go:35 RPC connection died
02:01:45 INFO  cmd supercommand.go:525 command finished

+ microk8s-juju.wrapper --debug deploy cs:kubeflow-195 --channel stable --overlay /tmp/tmpt7h9ykaa
Kubeflow could not be enabled:
02:01:45 INFO  juju.cmd supercommand.go:83 running juju [2.7.6 4da406fb326d7a1255f97a7391056641ee86715b gc go1.12.17]
02:01:45 DEBUG juju.cmd supercommand.go:84   args: []string{"/snap/microk8s/1551/bin/juju", "--debug", "deploy", "cs:kubeflow-195", "--channel", "stable", "--overlay", "/tmp/tmpt7h9ykaa"}
02:01:45 INFO  juju.juju api.go:67 connecting to API addresses: [<IP_ADDRESS>:17070]
02:01:45 DEBUG juju.api apiclient.go:1092 successfully dialed "wss://<IP_ADDRESS>:17070/model/644c781a-2e54-4ea7-8f5a-13448c037141/api"
02:01:45 INFO  juju.api apiclient.go:624 connection established to "wss://<IP_ADDRESS>:17070/model/644c781a-2e54-4ea7-8f5a-13448c037141/api"
02:01:46 INFO  juju.juju api.go:67 connecting to API addresses: [<IP_ADDRESS>:17070]
02:01:46 DEBUG juju.api apiclient.go:1092 successfully dialed "wss://<IP_ADDRESS>:17070/api"
02:01:46 INFO  juju.api apiclient.go:624 connection established to "wss://<IP_ADDRESS>:17070/api"
02:01:46 DEBUG juju.cmd.juju.application deploy.go:1442 cannot interpret as local charm: file does not exist
02:01:46 DEBUG juju.cmd.juju.application deploy.go:1294 cannot interpret as a redeployment of a local charm from the controller
02:01:46 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/kubeflow-195/meta/any?channel=stable&include=id&include=supported-series&include=published {
02:01:47 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:47 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/bundle/kubeflow-195/archive {
02:01:47 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:47 INFO  cmd deploy.go:1546 Located bundle "cs:bundle/kubeflow-195"
02:01:47 DEBUG juju.cmd.juju.application bundle.go:312 model: &bundlechanges.Model{
    Applications: {
    },
    Machines: {
    },
    Relations:        nil,
    ConstraintsEqual: func(string, string) bool {...},
    Sequence:         {},
    sequence:         {},
    MachineMap:       {},
    logger:           nil,
}
02:01:47 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/ambassador-89
02:01:47 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/ambassador-89/meta/any?include=id&include=supported-series&include=published {
02:01:47 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:47 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/argo-controller-173
02:01:47 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/argo-controller-173/meta/any?include=id&include=supported-series&include=published {
02:01:47 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:47 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/argo-ui-89
02:01:47 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/argo-ui-89/meta/any?include=id&include=supported-series&include=published {
02:01:48 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:48 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/dex-auth-32
02:01:48 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/dex-auth-32/meta/any?include=id&include=supported-series&include=published {
02:01:48 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:48 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/jupyter-controller-187
02:01:48 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/jupyter-controller-187/meta/any?include=id&include=supported-series&include=published {
02:01:48 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:48 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/jupyter-web-93
02:01:48 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/jupyter-web-93/meta/any?include=id&include=supported-series&include=published {
02:01:48 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:48 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/katib-controller-87
02:01:48 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/katib-controller-87/meta/any?include=id&include=supported-series&include=published {
02:01:48 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:48 INFO  cmd bundle.go:370 Resolving charm: cs:~charmed-osm/mariadb-k8s
02:01:48 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~charmed-osm/mariadb-k8s/meta/any?include=id&include=supported-series&include=published {
02:01:48 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:48 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/katib-manager-86
02:01:48 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/katib-manager-86/meta/any?include=id&include=supported-series&include=published {
02:01:48 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:48 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/katib-ui-82
02:01:48 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/katib-ui-82/meta/any?include=id&include=supported-series&include=published {
02:01:48 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:48 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/kubeflow-dashboard-47
02:01:48 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/kubeflow-dashboard-47/meta/any?include=id&include=supported-series&include=published {
02:01:48 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:48 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/kubeflow-profiles-53
02:01:48 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/kubeflow-profiles-53/meta/any?include=id&include=supported-series&include=published {
02:01:48 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:48 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/metacontroller-79
02:01:48 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/metacontroller-79/meta/any?include=id&include=supported-series&include=published {
02:01:49 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:49 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/metadata-api-42
02:01:49 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/metadata-api-42/meta/any?include=id&include=supported-series&include=published {
02:01:49 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:49 INFO  cmd bundle.go:370 Resolving charm: cs:~charmed-osm/mariadb-k8s
02:01:49 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~charmed-osm/mariadb-k8s/meta/any?include=id&include=supported-series&include=published {
02:01:49 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:49 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/metadata-envoy-25
02:01:49 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/metadata-envoy-25/meta/any?include=id&include=supported-series&include=published {
02:01:49 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:49 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/metadata-grpc-25
02:01:49 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/metadata-grpc-25/meta/any?include=id&include=supported-series&include=published {
02:01:49 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:49 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/metadata-ui-45
02:01:49 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/metadata-ui-45/meta/any?include=id&include=supported-series&include=published {
02:01:49 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:49 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/minio-89
02:01:49 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/minio-89/meta/any?include=id&include=supported-series&include=published {
02:01:49 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:49 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/modeldb-backend-86
02:01:49 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/modeldb-backend-86/meta/any?include=id&include=supported-series&include=published {
02:01:49 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:49 INFO  cmd bundle.go:370 Resolving charm: cs:~charmed-osm/mariadb-k8s
02:01:49 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~charmed-osm/mariadb-k8s/meta/any?include=id&include=supported-series&include=published {
02:01:49 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:49 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/modeldb-store-80
02:01:49 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/modeldb-store-80/meta/any?include=id&include=supported-series&include=published {
02:01:50 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:50 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/modeldb-ui-80
02:01:50 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/modeldb-ui-80/meta/any?include=id&include=supported-series&include=published {
02:01:50 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:50 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/oidc-gatekeeper-30
02:01:50 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/oidc-gatekeeper-30/meta/any?include=id&include=supported-series&include=published {
02:01:50 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:50 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/pipelines-api-93
02:01:50 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/pipelines-api-93/meta/any?include=id&include=supported-series&include=published {
02:01:50 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:50 INFO  cmd bundle.go:370 Resolving charm: cs:~charmed-osm/mariadb-k8s
02:01:50 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~charmed-osm/mariadb-k8s/meta/any?include=id&include=supported-series&include=published {
02:01:50 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:50 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/pipelines-persistence-178
02:01:50 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/pipelines-persistence-178/meta/any?include=id&include=supported-series&include=published {
02:01:50 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:50 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/pipelines-scheduledworkflow-174
02:01:50 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/pipelines-scheduledworkflow-174/meta/any?include=id&include=supported-series&include=published {
02:01:50 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:50 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/pipelines-ui-89
02:01:50 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/pipelines-ui-89/meta/any?include=id&include=supported-series&include=published {
02:01:50 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:50 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/pipelines-viewer-114
02:01:50 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/pipelines-viewer-114/meta/any?include=id&include=supported-series&include=published {
02:01:50 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:50 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/pipelines-visualization-24
02:01:50 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/pipelines-visualization-24/meta/any?include=id&include=supported-series&include=published {
02:01:51 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:51 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/pytorch-operator-174
02:01:51 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/pytorch-operator-174/meta/any?include=id&include=supported-series&include=published {
02:01:51 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:51 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/seldon-core-27
02:01:51 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/seldon-core-27/meta/any?include=id&include=supported-series&include=published {
02:01:51 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:51 INFO  cmd bundle.go:370 Resolving charm: cs:~kubeflow-charmers/tf-job-operator-170
02:01:51 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/tf-job-operator-170/meta/any?include=id&include=supported-series&include=published {
02:01:51 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:51 DEBUG httpbakery client.go:243 client do GET https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/ambassador-89/meta/any?include=id&include=supported-series&include=published {
02:01:51 DEBUG httpbakery client.go:245 } -> error <nil>
02:01:59 DEBUG juju.api monitor.go:35 RPC connection died
ERROR cannot deploy bundle: cannot add charm "cs:~kubeflow-charmers/ambassador-89": cannot retrieve charm "cs:~kubeflow-charmers/ambassador-89": cannot get archive: Get https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/ambassador-89/archive?channel=stable: dial tcp: lookup api.jujucharms.com on <IP_ADDRESS>:53: server misbehaving
02:01:59 DEBUG cmd supercommand.go:519 error stack:
cannot retrieve charm "cs:~kubeflow-charmers/ambassador-89": cannot get archive: Get https://api.jujucharms.com/charmstore/v5/~kubeflow-charmers/ambassador-89/archive?channel=stable: dial tcp: lookup api.jujucharms.com on <IP_ADDRESS>:53: server misbehaving
/workspace/_build/src/github.com/juju/juju/rpc/client.go:178:
/workspace/_build/src/github.com/juju/juju/api/apiclient.go:1187:
/workspace/_build/src/github.com/juju/juju/api/client.go:459:
/workspace/_build/src/github.com/juju/juju/cmd/juju/application/store.go:68:
/workspace/_build/src/github.com/juju/juju/cmd/juju/application/bundle.go:549: cannot add charm "cs:~kubeflow-charmers/ambassador-89"
/workspace/_build/src/github.com/juju/juju/cmd/juju/application/bundle.go:481:
/workspace/_build/src/github.com/juju/juju/cmd/juju/application/bundle.go:165:
/workspace/_build/src/github.com/juju/juju/cmd/juju/application/deploy.go:960: cannot deploy bundle
/workspace/_build/src/github.com/juju/juju/cmd/juju/application/deploy.go:1548:

Command '('microk8s-juju.wrapper', '--debug', 'deploy', 'cs:kubeflow-195', '--channel', 'stable', '--overlay', '/tmp/tmpt7h9ykaa')' returned non-zero exit status 1
Failed to enable kubeflow

I am having this issue as well; I noticed it after a reboot.  Restarting (disable/enable) dns did not fix for me either.

Hi @dkolbly could you attach the tarball produced by microk8s.inspect?
There is also this page that may help in debugging DNS resolution issues: https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/

Thanks @ktsakalozos I was not aware of that debugging page, and I didn't think to grab an inspect while it was broken, but here is the current state of the system in case it helps.
inspection-report-20200918_151701.tar.gz

Any updates on this? I have run into this issue multiple times as well.
Last time, i clean uninstall/reinstall of microk8s fixed it.
This time i reverted from a ha cluster to a non-ha cluster and I have the same issue.
In my case coredns cannot even talk to the master on the same machine:
E1023 22:52:10.292560       1 reflector.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: Failed to list *v1.Namespace: Get https://<IP_ADDRESS>:443/api/v1/namespaces?limit=500&resourceVersion=0: dial tcp <IP_ADDRESS>:443: i/o timeout

I believe this issue is fixed in #1635, which introduces handling around the calico networking. If anybody wants to try it out, it'll be available via latest/edge as soon as CD is done pushing that out, otherwise that fix will come in 1.20.

I'm currently getting in coredns pod with the latest/edge, could my issue be related to this one?

Warning  FailedCreatePodSandBox  3m3s   kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "1d33181b4ac559b2b71b3625b78240c4ba9a675d4118c4f0c607096f06ea3c65": error getting ClusterInformation: Get https://[<IP_ADDRESS>]:443/apis/crd.projectcalico.org/v1/clusterinformations/default: dial tcp <IP_ADDRESS>:443: i/o timeout
Warning  FailedCreatePodSandBox  2m20s  kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "7292c565f6c5da128168e118eac02eb869b47a9191ec320c923153e2dcd41ef6": error getting ClusterInformation: Get https://[<IP_ADDRESS>]:443/apis/crd.projectcalico.org/v1/clusterinformations/default: dial tcp <IP_ADDRESS>:443: i/o timeout
Warning  FailedCreatePodSandBox  95s    kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "e7a30d0d8b3d09b4a25957ef267ea2dd548b70552f42c043aa63d3f7cf9172ea": error getting ClusterInformation: Get https://[<IP_ADDRESS>]:443/apis/crd.projectcalico.org/v1/clusterinformations/default: dial tcp <IP_ADDRESS>:443: i/o timeout
Warning  FailedCreatePodSandBox  54s    kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "dd29dc68affcdcb012860dd9fd7a620c238e2d850c18dbe1834a6a0970c1e5e6": error getting ClusterInformation: Get https://[<IP_ADDRESS>]:443/apis/crd.projectcalico.org/v1/clusterinformations/default: dial tcp <IP_ADDRESS>:443: i/o timeout
Warning  FailedCreatePodSandBox  12s    kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "9deb3e6c4c955202232dbecf389987c479a0e8605db47cdb04b5053b9a9b5a75": error getting ClusterInformation: Get https://[<IP_ADDRESS>]:443/apis/crd.projectcalico.org/v1/clusterinformations/default: dial tcp <IP_ADDRESS>:443: i/o timeout

I'm also experiencing this issue on Ubuntu 20.10 (GNU/Linux 5.8.0-26-generic x86_64)
I run:
sudo snap install microk8s --classic
microk8s enable dns

Wait for it to do its thing, then:
$ mkctl --namespace kube-system logs coredns-7f9c69c78c-pkmjt

And it's full of:
[ERROR] plugin/errors: 2<PHONE_NUMBER>059125262.7191380029860206540. HINFO: read udp <IP_ADDRESS>:60257-><IP_ADDRESS>:53: i/o timeout
[INFO] <IP_ADDRESS>:45683 - 51409 "HINFO IN<PHONE_NUMBER>059125262.7191380029860206540. udp 57 false 512" NOERROR - 0 2.000492982s
[ERROR] plugin/errors: 2<PHONE_NUMBER>059125262.7191380029860206540. HINFO: read udp <IP_ADDRESS>:45638-><IP_ADDRESS>:53: i/o timeout
[INFO] <IP_ADDRESS>:47762 - 48500 "HINFO IN<PHONE_NUMBER>059125262.7191380029860206540. udp 57 false 512" NOERROR - 0 2.000423213s
[ERROR] plugin/errors: 2<PHONE_NUMBER>059125262.7191380029860206540. HINFO: read udp <IP_ADDRESS>:39596-><IP_ADDRESS>:53: i/o timeout
[INFO] <IP_ADDRESS>:60306 - 65170 "HINFO IN<PHONE_NUMBER>059125262.7191380029860206540. udp 57 false 512" NOERROR - 0 2.000368166s
[ERROR] plugin/errors: 2<PHONE_NUMBER>059125262.7191380029860206540. HINFO: read udp <IP_ADDRESS>:33063-><IP_ADDRESS>:53: i/o timeout

microk8s inspect doesn't show any issue, iptables is configured to allow forwarding.

@brendanmckenzie I feel this might be the dns pod not being able to reach <IP_ADDRESS>. Did you try setting a different forward dns as describe in [1]?
[1] https://discuss.kubernetes.io/t/add-on-dns/11287

The issue is present no matter what forwarding DNS server I use.
Additionally - other pods are able to ping <IP_ADDRESS> (so is the host machine).
$ mkctl run test --image=alpine -ti -- sh
If you don't see a command prompt, try pressing enter.
/ # ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=111 time=1.079 ms
64 bytes from <IP_ADDRESS>: seq=1 ttl=111 time=1.216 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 1.079/1.147/1.216 ms
/ # nslookup dns.google
Server:		<IP_ADDRESS>
Address:	<IP_ADDRESS>:53

;; connection timed out; no servers could be reached

And the subsequent logs from coredns -
[ERROR] plugin/errors: 2 dns.google. AAAA: read udp <IP_ADDRESS>:45472-><IP_ADDRESS>:53: i/o timeout
[ERROR] plugin/errors: 2 dns.google. A: read udp <IP_ADDRESS>:57037-><IP_ADDRESS>:53: i/o timeout

I facing the exact same issue, anyone come up with a solution to this ?

I fixed this in my setup by changing the CIDR as detailed in the doco below. It appears there's network and DNS resolution issues when your hosts DNS / local network is within the default microk8s pod subnet of <IP_ADDRESS>/16.
https://microk8s.io/docs/change-cidr

I did face this issue in following environment:

Ubuntu 20.04
Microk8s channel 1.24/stable

and upgrading to Ubuntu 22.04 solves the issue. I hope this be useful for fixing this issue.

I did face this issue in following environment:

Ubuntu 22.10
MicroK8s v1.26.1 revision 4595

Fixed by what was already suggested here: microk8s stop/start

I also face this issue in following environment:
Ubuntu 20.04
Microk8s channel 1.24/stable


Display values are only shown for variable references not form fields.

This needs to appear in the sidebar panels as well.


fix #8028: call api.NewTypesDB() instead of new

The code was calling new(api.TypesDB) which didn't initialize an
unexported map inside of the type. Call api.NewTypesDB() instead.
Required for all non-trivial PRs

[x] Rebased/mergable
[ ] Tests pass
[x] CHANGELOG.md updated

Replaced by #8055


Fix deserealization issues that leads to panic

Fixes https://github.com/scylladb/gocql/issues/116

Moved to upstream - https://github.com/gocql/gocql/pull/1694


Error when excludeCredentials is missing in creationOptionsJSON

I use the webauthn-lib in my server implementation and it doesn't return 'excludeCredentials' in registration options when there is no credentials to exclude. This leads to TypeError: Cannot read properties of undefined (reading 'map') which happens here
const publicKey: PublicKeyCredentialCreationOptions = {
    ...creationOptionsJSON,
    challenge: base64URLStringToBuffer(creationOptionsJSON.challenge),
    user: {
      ...creationOptionsJSON.user,
      id: utf8StringToBuffer(creationOptionsJSON.user.id),
    },
    excludeCredentials: creationOptionsJSON.excludeCredentials.map(toPublicKeyCredentialDescriptor),
  };

Imo, the behavior of webauthn-lib is correct because if you look at PublicKeyCredentialCreationOptions, you see that excludeCredentials is not required and defaults to empty array.

Imo, the behavior of webauthn-lib is correct because if you look at PublicKeyCredentialCreationOptions, you see that excludeCredentials is not required and defaults to empty array.

Getting pedantic for a second, the behavior of my pair of libraries in SimpleWebAuthn are correct because they've been built to assume use with each other. Any support for other libraries by @simplewebauthn/browser is because those other libraries chose to follow the API of @simplewebauthn/browser's methods and pass in the options its methods require. 🙂
You're right that the spec says that excludeCredentials is optional and defaults to an empty array when it's not provided in the call to navigator.credentials.create(). I made the conscious decision a long time ago to be more explicit about those values and return their defaults from @simplewebauthn/servers's generateRegistrationOptions() when those values are omitted.
After sleeping on this issue I'm deciding not to make any changes to @simplewebauthn/browser to address this issue. Users of webauthn-lib can choose to include excludeCredentials: [] when they pass options output to @simplewebauthn/browser's startRegistration() to satisfy its type requirements. Alternatively such RP devs can fork the library and maintain a custom copy that can handle the omission of excludeCredentials, or simply use another library that works better for them.
To that last point I believe GitHub's own webauthn-json might have an API that better aligns with the output from a server library like webauthn-lib

Thank you for the reply.


Default value of TTL options?

What are the default value of TTL index options?

--ttl.frequency = ?
--ttl.max-total-removes = ?
--ttl.max-collection-removes = ??

Windows 7 x64

ArangoDB Version:        3.5 RC1
Storage Engine: RocksDB
Deployment Mode:    Single Server
Deployment Strategy:ArangoDB Starter
Infrastructure:            own
Operating System:    Windows 7 x64
Total RAM in your machine:        12GB
Disks in use:       SSD
Used Package:      other

These are the default values from the source code:
  frequency = 30 * 1000; // milliseconds
  maxTotalRemoves = 1000000;
  maxCollectionRemoves = 1000000;

Please note that you can always invoke the arangod executable with the --help command, e.g.
arangod.exe --help (note that for this arangod.exe must be in your path).
This will show the most common options with their default value. Using --help-ttl will show a per-section help only for the TTL indexes.
Right now (3.5.0-RC2) this prints
Section 'ttl' (TTL options)
  --ttl.frequency <uint64>                                    frequency (in milliseconds) for the TTL background thread invocation. a value of 0 turns the TTL background
                                                              thread off entirely (default: 30000)
  --ttl.max-collection-removes <uint64>                       maximum number of documents to remove per collection (default: 1000000)
  --ttl.max-total-removes <uint64>                            maximum number of documents to remove per invocation of the TTL thread (default: 1000000)
  --ttl.only-loaded-collection <boolean>                      only consider already loaded collections for removal (default: true)

The documentation also has it: https://www.arangodb.com/docs/devel/programs-arangod-options.html#ttl


Constructor use does not match example

sorted-array.js line 6 states that var length   = arguments.length;. However, to work as it does in the example, it needs to be array.length. Otherwise, it will only copy the first element into the internal array (or the first two if a compare function is supplied).

Good catch. I need to start using test-driven development.


Feature Request: Have a build mode that leverages an XCBBuildService proxy for a more integrated experience

We should support a new xcodeproj.build_mode value of "proxy", which causes Xcode to use a custom XCBBuildService proxy.
Differences from BwB mode (not all of this has to land in the initial version):

BazelDependencies target only shows Bazel output, output from Bazel targets that don't translate to Xcode targets, and possibly output from unfocused targets

Probably will be renamed

calculate_output_groups.py isn't needed any more

Similar functionality will be part of of the proxy, just loaded into memory

BEP is parsed/translated to create a Build Report

Each target is represented as an actual target
Dia files are parsed and sent over as diagnotics (#400 and #402), fixing Fix-Its
Swift parsable output is parsed (when a new version of https://github.com/bazelbuild/rules_swift/pull/304 lands), showing per-file progress
Progress bar is updated to match the progress made towards the Build Report (so probably doesn't match Bazel's really weird progress indicator)

Where possible, we no longer copy products to DerivedData (e.g. non-zipped binaries or bundles)
If possible, IndexingInfoResponse points to bazel-out/ per-library indexing data, preventing the need for index-import

This can only work if -file-prefix-map is used

Some open questions:

How do we want to integrate the proxy with Xcode? And do we make some of these options for the user to decide?

Launch Xcode.app/Contents/MacOS/Xcode from $SRCROOT with XCBBUILDSERVICE_PATH set. This has the side benefit of fixing some relative path issues (e.g. #1284). Ideally we could modify the name and/or icon of the Xcode instance in the Dock, otherwise this could be confusing (though we could kill all versions of the same Xcode that are open...).
Modify the Xcode.app bundle. This has permissions/security issues.

Is this the new default?

I assume no, at least to start, and possibly ever, because of the above integration issues

How are unfocused targets represented in the Build Report?

We might be able to give them an ID that isn't associated with a target in the project. If that's the case, they aren't handled any differently. Otherwise we can have them be sub-outputs on BazelDependencies

This issue will serve as an Epic. Smaller focused issues will be made as needed.

Looks great at a high level! Some Qs/thoughts:

Are we planning to handle progress bar messages here as well?
+1 for initializing from $SRCROOT with XCBBUILDSERVICE_PATH set, unless there's a strong need / significant DX improvement for modifying the bundle I'd wouldn't go that route?
I think if this is going to be the default or not is something we can discuss once the impl is more mature? From a user perspective it would be nice to have the benefits of this mode by default I think but agree that we have to weight that vs the integration issues

Are we planning to handle progress bar messages here as well?

I forgot to mention it. I’ve added it to the list above.


Enhancement 141 admin view 01

corrected PR with limited files changed
draft
Resolves Issue 141
From USER STORY 109 : Admin View Page
Completed:

AdminView.kt screen added for user with admin role to be routed to after login
Admin View screen will have 3 buttons: Add Product, View All Products, and Edit User Role
Add Product button from AdminView goes to add product page

Library | Loom - 18 November 2023 - Watch Video

We also want to include unit tests if and when possible to make sure we're getting full coverage of our code. This will simulate a real world environment where tests are extremely important.
Unit Test Example

Please resolve the fix merge conflict

Login with existing admin role now routes to a new screen called AdminView which has 3 buttons: Add Product, All Products, and Edit User Role.

@Annelisebx Please fix this PR so it passed CI.

@taylorpapke  I removed the import that @Robel-003 pointed out.  I reverted it back to the previous back arrow from Main. I think CI is passing now.


Send Packet syntax not supported on 1.19.2 (I believe)

When trying to send packets, console always outputs an error (I have tried also using an actual packet too):

This is quite unfortunate, however, this is probably not surprising as it's 1.19.2, I haven't tested this on 1.18.2 though.
I'm using skript-packet 2.1.
(Error: https://pastebin.com/VR0evWb2)
Thanks :)

SP works fine in 1.19.3 with ProtocolLib v5.0.0-SNAPSHOT-b608


Run as PID 1

Use exec in entrypoint.sh in order to inherit PID 1 and receive Unix signals such as SIGINT (Ctrl + C).

Fixed in 35adf00d for 0.2.0


Fix Auto Button in ElvUI

Uses the ElvUI skin system to make the auto button fit.
This has been tested in wild, trainer, and pvp battles. And things toggle correctly
I did have to  have a 1 pixel gap between the two buttons, due to the hover color would not show correctly, due to them being on top of each other.

Ill let @bloerwald take a look at this (as he did some ElvUI stuff prior!)

So I was looking over the ElvUI API and how they do things, and the standard seem to be to create a method on the Skins module, and then call S:AddCallbackForAddon('tdBattlePetScript') to register it. You could also have the function on this module, and register that with S:AddCallbackForAddon('tdBattlePetScript', Module.ElvUISkin)
I think doing it this way would allow you to move all the ElvUI specific code into a single function instead of several spots over the file. (IE the ToolButton).

As long as that stupid art frame doesn't reappear and the solution isn't opt-in (i.e. a new skin module rather than just depending on the existing ones), I don't care about how ElvUI handling is done at all, as evidenced by one of my (now removed) comments. I had a not-so-great discussion with ElvUI devs back then so I never cared about how it "should" be done correctly.
If you want to be really sure @axc450, request screenshots of it with

ElvUI disabled
ElvUI enabled, but blizzard frame skinning globally disabled and pet battle skin modules disabled
ElvUI enabled, but blizzard frame skinning globally enabled but pet battle skin modules disabled
ElvUI enabled, but blizzard frame skinning globally disabled and pet battle skinning enabled
ElvUI enabled, and blizzard frame skinning globally enabled and pet battle skinning enabled

I had real "fun" making sure all the combinations work, but it seems that part of the logic is unchanged (the guard-condition in the callback).

I didnt even think about screenshots. Sorry.

Screen shots
Only PBS

PBS, ElvUI, with options window visible to show the combinations of blizzard.enable and blizzard.petbattleui

List of addons enabled

In PVP pet battle to show the button hides properly

This is not an opt in thing. If the ElvUI pet skin is enabled then so is this. This just builds on top of what ElvUI is already doing by making PBS fit into the design. During testing I did have the art frame show up again, but noticed that its being made visible with SetShown so I blocked that method.
I had a thought after I got your reply. Does this callback really need to be in this file. I think moving it into its own file would be best. Separation of concerns. PetBattle.lua will stay with modifying the default UI, and the new file will contain the ElvUI skin.

@gizzmo Thanks so much for taking a look at this. Please add a CHANGELOG.md entry under v1.8 and I will get this merged + released :)

Added ElvUI as an optional dependency in the toc just to be sure.


Error during the submission

When I run the following command
./run.py RandomAgent -s
I get the following error

ServerErrorPrint Expecting value: line 1 column 1 (char 0) 400
Expecting value: line 1 column 1 (char 0)

Any clues??

I just checked with git pull. It is up to date.
One change though I made in helper/baselines/init.py.  I commented the last two lines, i.e.
# from .keras import *
# from .tensorforce import *

because it was giving me error related to rl.agents and tensorforce. After commenting, it was running and I was visually able to see the skeleton output. But above mentioned arise during the submission mode.
On a separate note, Can you tell me other dependencies (apart from keras, tensorflow) that are needed to run this project ?

I'll add the dependencies this weekend, but if the agent runs locally, I doubt it is due to missing dependencies. I am leaning towards temporary server or communication issue. What are the status and messages of your submission on the server? You can check it here.
Thank you for your patience.


ESP32/wifi-echo: Generate QR code display link for devices without display

Problem
Need a mechanism to display QR code for devices that do not have a physical display
Summary of Changes
i. URL encode the QR code text and pass as data to the QR code display page.
ii. We can later move this page to the CHIP repository.

Reminder to use the "re-request review button"


fix(ingestion): sort by last modified not working in the UI

What happens if this is used with a source that supports patch_custom_properties? Please add some tests for the scenario where the source produces MCP patches for dataset properties
e.g. redshift does this
https://github.com/datahub-project/datahub/blob/6704d444704c11239b6a3ee0075fd5045c3e2f89/metadata-ingestion/src/datahub/ingestion/source/redshift/redshift.py#L834

In this case the final work-units contains two patch work units, one from source and second from auto_patch_last_modified


ERROR: Could not find a version that satisfies the requirement tensorflow==2.3 (from versions: none)

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary):
TensorFlow version:
Python version:
Installed using virtualenv? pip? conda?:
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:

Describe the problem
Provide the exact sequence of commands / steps that you executed before running into the problem
Any other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

Getting error on installing TENSORFLOW

Having an identical issue with installing Tensorflow on a clean Python reinstallation using pip. 64 bit Win10 Pro, CPU only. Looking for a workaround if an immediate solution is not possible.

Workaround found: current version of Tensorflow is not compatible with Python 3.9; I was able to get it to install by first installing Python 3.8.

Getting error on installing TENSORFLOW

@Harshit-Kesar,
From the error log, it seems like you have installed 32-bit Python. TensorFlow is tested and supported on 64-bit systems. For more information, please take a look at the system requirements.
Could you please install 64-bit Python and check if you are facing the same issue. Thanks!


[TA] Regenerated based on the latest swagger SHA before beta release

/azp run java - textanalytics - tests

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-ai-textanalytics


Remove all ASP.NET Framework Files from Every Commit and deleted image file

Removing a File from Every Commit at https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History
We can use that to remove all the ASP.NET Framework files and reduce the repo size, and retain history.
All the ASP.NET Framework files were moved to the https://github.com/aspnet/AspNetDocs repo. We'd like to remove all that massive history from our repro .
See also https://stackoverflow.com/questions/17470780/is-it-possible-to-slim-a-git-repository-without-rewriting-history
Started in #11049

Thank you for contacting us. Due to a lack of activity on this discussion issue we're closing it in an effort to keep our backlog clean. If you believe there is a concern related to the ASP.NET Core which hasn't been addressed, please file a new issue.


Adding subproblem heuristics and removing template code

Hello @krooonal! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file col_gen_estimator/_bdr_classifier.py:

Line 776:80: E501 line too long (80 > 79 characters)
Line 801:71: W291 trailing whitespace

In the file col_gen_estimator/_col_gen_classifier.py:

Line 161:80: E501 line too long (80 > 79 characters)


Added the svg file

#31

You actually need to make this logo using tools like illustrator/figma
you can learn how to create vector graphics.
let me know if you are going to work further. Else You can close this PR

Hey @ashuvssut, I replicated the logo in ai and exported as svg, hope this works!

Wow! thanks


Fonts changed to professional type in suspense.html

I have fixed the font in suspense.html

If you are proposing a new font style, change it everywhere on the website, and share before/after screenshots.
I don't think, this is required.
Please feel free to open a new issue/bug or you can take up an existing issue.


Docs about timestamp mapping from SQL to generated Code.

I am missing docs about how timestamps get mapped from SQL to the generated code.
I am using sqlite.

Most drivers can marshal the data received from the database into time.Time so nothing extra is really needed.
Did you face any issues with timestamps?