2.3.1: pytest is failing in one unit

I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

python3 -sBm build -w --no-isolation
because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
install .whl file in </install/prefix> using 'installer` module
run pytest with $PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
build is performed in env which is cut off from access to the public network (pytest is executed with -m "not network")

Here is pytest output:

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-pytest-enabler-2.3.1-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-pytest-enabler-2.3.1-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra -m 'not network'
==================================================================================== test session starts ====================================================================================
platform linux -- Python 3.8.17, pytest-7.4.0, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/pytest-enabler-2.3.1
configfile: pytest.ini
plugins: enabler-2.3.1, black-0.3.12, cov-4.0.0
collected 6 items

pytest_enabler/__init__.py .                                                                                [ 16%]
tests/test_enabler.py F....                                                                                [100%]

========================================================================================= FAILURES ==========================================================================================
_______________________________________________________________________________ test_pytest_addoption_default _______________________________________________________________________________

    def test_pytest_addoption_default():
        config = mock.MagicMock()
        config.pluginmanager.has_plugin = lambda name: name == 'black'
        args = []
        enabler.pytest_load_initial_conftests(config, None, args)
>       assert args == ['--black']
E       AssertionError: assert [] == ['--black']
E         Right contains one more item: '--black'
E         Use -v to get more diff

tests/test_enabler.py:21: AssertionError
================================================================================== short test summary info ==================================================================================
FAILED tests/test_enabler.py::test_pytest_addoption_default - AssertionError: assert [] == ['--black']
================================================================================ 1 failed, 5 passed in 0.53s ================================================================================

Here is list of installed modules in build env

Package                       Version
----------------------------- -------
alabaster                     0.7.13
asttokens                     2.2.1
Babel                         2.12.1
backcall                      0.2.0
black                         23.7.0
build                         0.10.0
charset-normalizer            3.1.0
click                         8.1.3
coverage                      7.2.7
decorator                     5.1.1
distro                        1.8.0
docutils                      0.19
domdf-python-tools            3.6.1
exceptiongroup                1.1.1
executing                     1.2.0
gpg                           1.20.0
idna                          3.4
imagesize                     1.4.1
importlib-metadata            6.7.0
importlib-resources           6.0.0
iniconfig                     2.0.0
installer                     0.7.0
ipython                       8.12.0
jaraco.context                4.3.0
jaraco.functools              3.8.0
jaraco.packaging              9.4.0
jedi                          0.18.2
Jinja2                        3.1.2
libcomps                      0.1.19
MarkupSafe                    2.1.2
matplotlib-inline             0.1.6
more-itertools                9.1.0
mypy-extensions               1.0.0
natsort                       8.3.1
packaging                     23.1
parso                         0.8.3
pathspec                      0.11.1
pexpect                       4.8.0
pickleshare                   0.7.5
platformdirs                  3.8.1
pluggy                        1.0.0
prompt-toolkit                3.0.38
ptyprocess                    0.7.0
pure-eval                     0.2.2
Pygments                      2.15.1
pyproject_hooks               1.0.0
pytest                        7.4.0
pytest-black                  0.3.12
pytest-cov                    4.0.0
python-dateutil               2.8.2
pytz                          2023.2
requests                      2.31.0
rst                           0.1
rst.linker                    2.4.0
setuptools                    68.0.0
setuptools-scm                7.1.0
six                           1.16.0
snowballstemmer               2.2.0
Sphinx                        6.2.1
sphinxcontrib-applehelp       1.0.4
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        2.0.0
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.5
stack-data                    0.6.2
toml                          0.10.2
tomli                         2.0.1
traitlets                     5.9.0
typing_extensions             4.7.1
urllib3                       1.26.15
wcwidth                       0.2.6
wheel                         0.40.0
zipp                          3.15.0

My guess is that default.toml is missing from your build (and install). Can you confirm in the environment with:
import importlib_resources
print(importlib_resources.files('pytest_enabler').joinpath('default.toml').is_file())

It should emit "True".
If it's false, it confirms my suspicion and you should ensure than a MANIFEST or manifest template exists to include that file in the build.

My guess is that default.toml is missing from your build (and install). Can you confirm in the environment with:
import importlib_resources
print(importlib_resources.files('pytest_enabler').joinpath('default.toml').is_file())

It should emit "True".
If it's false, it confirms my suspicion and you should ensure than a MANIFEST or manifest template exists to include that file in the build.

This content of the generated rpm package
# rpm -ql python-pytest-enabler
/usr/lib/python3.8/site-packages/pytest_enabler
/usr/lib/python3.8/site-packages/pytest_enabler-2.3.1.dist-info
/usr/lib/python3.8/site-packages/pytest_enabler-2.3.1.dist-info/LICENSE
/usr/lib/python3.8/site-packages/pytest_enabler-2.3.1.dist-info/METADATA
/usr/lib/python3.8/site-packages/pytest_enabler-2.3.1.dist-info/RECORD
/usr/lib/python3.8/site-packages/pytest_enabler-2.3.1.dist-info/WHEEL
/usr/lib/python3.8/site-packages/pytest_enabler-2.3.1.dist-info/entry_points.txt
/usr/lib/python3.8/site-packages/pytest_enabler-2.3.1.dist-info/top_level.txt
/usr/lib/python3.8/site-packages/pytest_enabler/__init__.py
/usr/lib/python3.8/site-packages/pytest_enabler/__pycache__
/usr/lib/python3.8/site-packages/pytest_enabler/__pycache__/__init__.cpython-38.opt-1.pyc
/usr/lib/python3.8/site-packages/pytest_enabler/__pycache__/__init__.cpython-38.pyc
/usr/share/man/man3/python-pytest-enabler.3.gz

and indeed there is no default.toml. During build above is in in </install/prefix> which is passed over $PYTHONPATH.
Here is pep517 based build output:
+ SETUPTOOLS_SCM_PRETEND_VERSION=2.3.1
+ /usr/bin/python3 -sBm build -w --no-isolation
* Getting build dependencies for wheel...
running egg_info
creating pytest_enabler.egg-info
writing pytest_enabler.egg-info/PKG-INFO
writing dependency_links to pytest_enabler.egg-info/dependency_links.txt
writing entry points to pytest_enabler.egg-info/entry_points.txt
writing requirements to pytest_enabler.egg-info/requires.txt
writing top-level names to pytest_enabler.egg-info/top_level.txt
writing manifest file 'pytest_enabler.egg-info/SOURCES.txt'
reading manifest file 'pytest_enabler.egg-info/SOURCES.txt'
adding license file 'LICENSE'
writing manifest file 'pytest_enabler.egg-info/SOURCES.txt'
* Building wheel...
running bdist_wheel
running build
running build_py
creating build
creating build/lib
creating build/lib/pytest_enabler
copying pytest_enabler/__init__.py -> build/lib/pytest_enabler
running egg_info
writing pytest_enabler.egg-info/PKG-INFO
writing dependency_links to pytest_enabler.egg-info/dependency_links.txt
writing entry points to pytest_enabler.egg-info/entry_points.txt
writing requirements to pytest_enabler.egg-info/requires.txt
writing top-level names to pytest_enabler.egg-info/top_level.txt
reading manifest file 'pytest_enabler.egg-info/SOURCES.txt'
adding license file 'LICENSE'
writing manifest file 'pytest_enabler.egg-info/SOURCES.txt'
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/pytest_enabler
copying build/lib/pytest_enabler/__init__.py -> build/bdist.linux-x86_64/wheel/pytest_enabler
running install_egg_info
Copying pytest_enabler.egg-info to build/bdist.linux-x86_64/wheel/pytest_enabler-2.3.1-py3.8.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/pytest_enabler-2.3.1.dist-info/WHEEL
creating '/home/tkloczko/rpmbuild/BUILD/pytest-enabler-2.3.1/dist/.tmp-nweq5r3n/pytest_enabler-2.3.1-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'pytest_enabler/__init__.py'
adding 'pytest_enabler-2.3.1.dist-info/LICENSE'
adding 'pytest_enabler-2.3.1.dist-info/METADATA'
adding 'pytest_enabler-2.3.1.dist-info/WHEEL'
adding 'pytest_enabler-2.3.1.dist-info/entry_points.txt'
adding 'pytest_enabler-2.3.1.dist-info/top_level.txt'
adding 'pytest_enabler-2.3.1.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built pytest_enabler-2.3.1-py3-none-any.whl

As you see default.toml does not come to generated .whl file.
In other words it is issue with description of what needs to be packaged.

Looks like as pep517 backend is used setuptools-scm

No .. wrong. It is used setuptools (build-backend = "setuptools.build_meta") so MANIFEST files needs to be provided.

.. or details that default.toml needs to be included in .whl can be added as well over entries in pyproject.toml.

Right - skeleton-based projects require setuptools_scm and a checkout of the git metadata to resolve tracked files and the version. Downloading a git tarball will produce an invalid artifact. Since you're working from a git tarball, it's the downstream builder's responsibility to reconstruct the git metadata (through a MANIFEST file). Probably the best long-term solution here is to build a routine that constructs a MANIFEST file from a tarball and run that prior to building any Python packages. That would address this issue and any others where files are missing due to missing git metadata.
I suspect the solution is similar to that of jaraco.text, which also has package data present and relies on SCM metadata to ensure jaraco.text.Lorem Ipsum.txt is present in the package. What did you do to support that package?

OK so what now? 🤔

I found by adding a MANIFEST.in causes all files that were in the tarball to be included:
 pytest-enabler-2.3.1 @ cat >> MANIFEST.in
include **/*

Maybe that's a suitable workaround?

I presume adding the manifest works around the issue. Feel free to comment if further investigation is needed or if there's something specific this project can do to help.


remove trailing full stop in log entries as it is unnecessary

Proposed changes

Remove trailing full stop in log entries as it is unnecessary. Also when a full stop is after a value in the log entry, it makes it hard to copy from as the shell highlighting will include the full stop as well.
The only downside to not having the full stop is that if the value has a whitespace after the last visible character, then it will not be obvious in the log entry, however improving the copy/paste of the value trumps the less common trailing whitespace scenario.
Before
INFO tedge_log_manager::actor: Log request processed for log type: example.

After
INFO tedge_log_manager::actor: Log request processed for log type: example

And example showing that it is annoying to copy just the value by double-clicking in the shell to select the value shown in the log entry.

Types of changes

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Improvement (general improvements like code refactoring that doesn't explicitly fix a bug or add any new functionality)
[ ] Documentation Update (if none of the other choices apply)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Paste Link to the issue

Checklist

[x] I have read the CONTRIBUTING doc
[x] I have signed the CLA (in all commits with git commit -s)
[x] I ran cargo fmt as mentioned in CODING_GUIDELINES
[x] I used cargo clippy as mentioned in CODING_GUIDELINES
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)

Further comments

LGTM. Any specific reason why you handpicked just these log statements? Or these are the only ones we've got with trailing .?

These were the only ones I found which were directly in a log message. There were some other possible hits but they were in error definitions and I was unsure how these get rendered together with other information. As some instances having a full stop is ok if it is a sentence (and some errors are more like sentences)


Import YuzuJS/setimmediate for setImmediate / clearImmediate browser compatibility

When using browserify for client-side rendering, functions setImmediate and clearImmediate cannot be executed in the browser. This is why I propose to integrate the external library YuzuJS/setImmediate, which allows to execute these functions also in the browser.

Thanks @mdarcemont! I've rebased / squashed the two commits ok?

Released on<EMAIL_ADDRESS>


Guest analytics dashboard/leslie

PR Description

This PR contains the starting code to the feature 'as a user (guest & supervisor) I can see how complete a guest intake profile is'.
This initial pr draft is being made for feedback on the redux flow implemented since the pr will be a lot longer when the entire feature is complete.

Type of Change

Types of Change:

[x] New feature
[] Refactoring / Bug fix
[] Documentation update

Testing

[] Yes
[x] No
[] Not needed

Completeness
Is this feature complete

[] Feature Complete
[x] Feature Incomplete, user story/trello card linked

Requester Questions

Please review redux flow

Other
Rubric
Template Guidelines

This PR was initially to set up the dashboard but I realized there was still a lot of work to do in the redux so I am working on setting up redux and bringing in the state so the rest of us can knock out all the components easier. This PR is not ready to merge but please review. I am have set family as a state object on the state tree so someone can work on displaying this information on the profile in a pretty way or start working on members, notes, or flag state if you feel we need it. You can use my family redux flow for reference.

This PR was initially to set up the dashboard but I realized there was still a lot of work to do in the redux so I am working on setting up redux and bringing in the state so the rest of us can knock out all the components easier. This PR is not ready to merge but please review. I am have set family as a state object on the state tree so someone can work on displaying this information on the profile in a pretty way or start working on members, notes, or flag state if you feel we need it. You can use my family redux flow for reference.


Allow argparse-manpages to be configured with pyproject.toml

This PR adds support for manpage specifications being supplied in the
tool.build_manpages section of pyproject.toml.
Also, it fixes author parsing to work with the information parsed from
pyproject.toml by setuptools, where only author_email is set, not
author (issue #77).

As far as I can tell, the remaining linting failures are the same as existing failures.
I don't understand how to make toml a build dep for Python 2.7: a quick bit of research suggested Python 2.7 should parse pyproject.toml, but maybe it doesn't?

I think you need:
diff --git a/rpm/argparse-manpage.spec.tpl b/rpm/argparse-manpage.spec.tpl
index 72b3177..22d2f41 100644
--- a/rpm/argparse-manpage.spec.tpl
+++ b/rpm/argparse-manpage.spec.tpl
@@ -38,6 +38,7 @@ Source0:        https://github.com/praiskup/%{name}/archive/v%{version}/%{name}-

 %if %{with python2}
 BuildRequires: python2-setuptools python2-devel
+BuildRequires: python2-toml
 %if %{with check}
 %if 0%{?rhel} && 0%{?rhel} == 7
 BuildRequires: pytest
@@ -49,6 +50,7 @@ BuildRequires: python2-pytest

 %if %{with python3}
 BuildRequires: python3-setuptools python3-devel
+BuildRequires: python3-toml
 %if %{with check}
 BuildRequires: python3-pytest
 %endif

Long story short, only RHEL 9+ and Fedora pyproject.toml deps are parsed automatically.

Remaining copr failure seems to be because Python 2.7.5(!) can't cope with the conditional part of
install_requires=[
        'toml;python_version<"3.11"'
    ],

I guess I could set the value of install_requires to toml unconditionally on Python 2, and conditionally only for Python 3?

I'm not sure what's going on with mypy complaining about types-toml missing, as I install it in the GitHub Action. The "(or incompatible with Python 3.11)" could be true, I suppose? Which would be annoying, as we don't need that library there. I wonder if that's why it was imported differently in pytest…

I'm not sure what's going on with mypy complaining about types-toml missing

The linter is run in a crafted environment, without a chance to install any additional type stubs or dependencies.  These stub-related issues were deny-listed some time ago, not sure why those re-appeared.  Please ignore it for the time being.

I guess I could set the value of install_requires to toml unconditionally on Python 2, and conditionally only for Python 3?

Ah, right -> I'd just do this.

It looks very promising.  Would you have time to create a test case with pyproject.toml?

I guess I could set the value of install_requires to toml unconditionally on Python 2, and conditionally only for Python 3?

Ah, right -> I'd just do this.

Done!

It looks very promising. Would you have time to create a test case with pyproject.toml?

I've done my best. Currently the test passes for me locally, but it gets argparse-manpage for the build that uses pyproject.toml from my fork's URL, while it should refer to the repo being tested. I tried using a file URL, but that didn't work. See the FIXME in test_script.py.

By a new test, I rather meant some new test_* method in tests/test_examples.py.  I don't think we have to switch this project to pyproject toml right now (if it tends to be complicated).  The self-reference in argparse-manpage is a single-occurrence special case, what we should test is the "normal argparse-manpage usage with toml".

Otherwise, the failure looks like cmd = [sys.executable, "-m", "build"], don't we miss setup.py somewhere?  I see this on my Fedora 38 system:
$ python -m build
/usr/bin/python: No module named build

By a new test, I rather meant some new test_* method in tests/test_examples.py.

That's what I did, I added a test to test_scripts.py.

I don't think we have to switch this project to pyproject toml right now (if it tends to be complicated).

Sure, I wasn't trying to do that.

The self-reference in argparse-manpage is a single-occurrence special case, what we should test is the "normal argparse-manpage usage with toml".

That's what I'm trying to test. The normal usage with toml is where you are using argparse-manpage via setuptools.

Otherwise, the failure looks like cmd = [sys.executable, "-m", "build"], don't we miss setup.py somewhere?

I don't think so, the test generates setup.py.

$ python -m build
/usr/bin/python: No module named build

As I said, " I see that the build tool I use is not part of Python".

" I see that the build tool I use is not part of Python".

Ah.  How is this feature supposed to be used in general, then?  I mean the case with pyproject.toml and without setup.py - how should I invoke the manual page generator?  Suggesting users using a crafted build script doesn't seem convenient.  /me shrugs

How about this?
diff --git a/tests/test_examples.py b/tests/test_examples.py
index 057ef65..da700ea 100644
--- a/tests/test_examples.py
+++ b/tests/test_examples.py
@@ -64,8 +64,8 @@ def run_setup_py(args):
     environ = os.environ.copy()
     environ['PYTHONPATH'] = ':'.join(sys.path)
     with change_argv(['setup.py'] + args):
-        subprocess.call([sys.executable, 'setup.py'] + args,
-                        env=environ)
+        return subprocess.call([sys.executable, 'setup.py'] + args,
+                               env=environ)

 def skip_if_older_python(min_version):
     def _get_int(version):
diff --git a/tests/test_script.py b/tests/test_script.py
index 94f30c7..de0b40d 100644
--- a/tests/test_script.py
+++ b/tests/test_script.py
@@ -10,6 +10,8 @@ import subprocess
 import tempfile
 import time

+from test_examples import run_setup_py
+
 SIMPLE_FILE_CONTENTS = """\
 import argparse

@@ -201,7 +203,6 @@ class TestsArgparseManpageScript:
             cmd = ["ls"]
             subprocess.check_call(cmd)

-            cmd = [sys.executable, "-m", "build"]
-            subprocess.check_call(cmd)
+            assert 0 == run_setup_py(["build"])
         finally:
             os.chdir(current_dir)

Or maybe do check_call in run_setup_py instead of returing exit code? That would affect all the test-cases for good.

Ah. How is this feature supposed to be used in general, then? I mean the case with pyproject.toml and without setup.py - how should I invoke the manual page generator? Suggesting users using a crafted build script doesn't seem convenient. /me shrugs

My understanding of modern Python build systems is imperfect, but I believe that with this pyproject.toml support, argparse-manpage should work with any correct build system that supports pyproject.toml. In particular, it should indeed still work if you run python setup.py build, though I believe that is deprecated (I must admit, this is a large part of my confusion: that it seems to be impossible to do things in a non-deprecated way without using something other than pure setuptools.)

Just taking a step back, what I'm trying to achieve with this PR is to allow developers using argparse-manpage to put its configuration in pyproject.toml instead of in setup.cfg, nothing more.

How about this?

Thanks, I've applied this diff to my PR.

I can't see what the Copr SRPM build failure has to do with this PR…

The Copr build generates a tarball using python3 setup.py dist (later it builds an RPM from it) which probably fails now:
cd .. && python3 setup.py sdist && cp "dist/argparse-manpage-0.0.0.tar.gz" rpm/
error: Multiple top-level packages discovered in a flat-layout: ['rpm', 'build_manpages', 'argparse_manpage'].

There seems to be one more problem left: the PR no longer requires toml anywhere, not sure what happened there.

I seem to have rewritten setup.py in one of my commits. That was not intentional!

The Copr build generates a tarball using python3 setup.py dist (later it builds an RPM from it) which probably fails now:

I mean, this isn't how we are newly supposed to do releases.  Or should that still work?  You seem you touched the setup.py at least in this PR (I'm not saying it is related, just could be?).

OK, I think I've sorted out setup.py and pyproject.toml. The dependency on toml needs to be in pyproject.toml for dependencies from other packages to work via pyproject.toml, so that when you use argparse-manpage, toml is installed, where needed, at build time.

I'm baffled again. The tox tests are now all failing, unable to find the output man page. But locally, it works fine.

Sorry, I didn't update yesterday to say that I carried out my plan, and I now check the contents of the manpage only if setuptools is new enough, and I document which version of setuptools is needed for pyproject.tomlinREADME.md`. So, GTG.

Time for a new release? :)

Released! :) sorry for the dealy.

Many thanks!


Adjust timer for OS X

Building the current master causes this error on OS X Yosemite:
c++ -c -O3 -msse2 -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-unknown-pragmas -pedantic   -o engine_mock.o src/engine_mock.cc
In file included from src/engine_mock.cc:14:
In file included from src/./allreduce_mock.h:14:
src/../include/rabit/timer.h:18:30: error: use of undeclared identifier
      'CLOCK_REALTIME'
  utils::Check(clock_gettime(CLOCK_REALTIME, &ts) == 0, "failed to get time");
                         ^
1 error generated.
make: *** [engine_mock.o] Error 1

I've dropped in a fix, based on a Stack Overflow answer. Not sure if there are any particular ways I should test it, but I can run the speed_test in rabit, and also build and use xgboost. (Thanks for xgboost, by the way; very nice!)

Thanks for the update! It may not be good to put static member in header though. I will do a quick fix on this

I pushed the fix, xgboost should be fine now. you can test by run make xgboost.mock

Thanks for that! Yes, rabit now builds correctly, and xgboost.mock builds as well if you copy this rabit into the xgboost subtree. (Plus guide-python/runall.sh executes ok.)


[CORE] Remove tag TRANSFORM_SUPPORTED and rename transform-hint to fallback-hint: Phase 1

Since we now introduced a set of validation rules and backend-specific validation rules that all tend to add transform-hint tags to plan nodes, it more or less becomes confusing to tag a plan as TRANSFORM_SUPPORTED. Before the plan is finally implemented within Gluten transformers, a plan node can be turned from TRANSFORM_SUPPORTED to TRANSFORM_UNSUPPORTED in any particular validation rule. So if a plan is tagged as TRANSFORM_SUPPORTED, it's never guaranteed to be executed natively by Gluten.
To eliminate this confusing state and ease understanding, the PR (and next PR as phase 2) targets to remove tag TRANSFORM_SUPPORTED and rename the term transform-hint to fallback-hint. When a plan is tagged with the hint, then it's considered a plan to be fallback and being run in Vanilla Spark.
Phase 1 (this PR):
Remove tag TRANSFORM_SUPPORTED.
Phase 2 (in next PR):
Rename transform-hint to fallback-hint.

/Benchmark Velox

===== Performance report for TPCH SF2000 with Velox backend, for reference only ====

query
log/native_4731_time.csv
log/native_master_02_22_2024_996ff4c89_time.csv
difference
percentage

q1
34.04
32.51
-1.530
95.51%

q2
24.29
24.28
-0.012
99.95%

q3
37.55
38.12
0.569
101.52%

q4
37.73
38.44
0.703
101.86%

q5
70.62
71.06
0.437
100.62%

q6
7.20
5.36
-1.842
74.41%

q7
84.82
85.47
0.648
100.76%

q8
84.89
88.36
3.476
104.09%

q9
119.87
123.63
3.764
103.14%

q10
42.68
44.24
1.567
103.67%

q11
20.08
21.09
1.015
105.06%

q12
27.29
26.06
-1.227
95.51%

q13
44.73
46.65
1.917
104.29%

q14
20.50
15.31
-5.197
74.65%

q15
28.47
31.22
2.749
109.66%

q16
12.70
13.80
1.105
108.70%

q17
100.47
104.44
3.967
103.95%

q18
153.24
149.48
-3.759
97.55%

q19
13.89
13.72
-0.163
98.83%

q20
28.09
28.41
0.319
101.14%

q21
225.95
226.51
0.561
100.25%

q22
13.59
13.62
0.030
100.22%

total
1232.68
1241.78
9.099
100.74%

@rui-mo @ulysses-you

===== Performance report for TPCH SF2000 with Velox backend, for reference only ====

query
log/native_4731_time.csv
log/native_master_02_25_2024_f25a372a2_time.csv
difference
percentage

q1
33.59
35.29
1.708
105.09%

q2
24.68
24.66
-0.022
99.91%

q3
37.99
38.19
0.203
100.53%

q4
37.68
37.65
-0.028
99.93%

q5
70.32
71.07
0.751
101.07%

q6
7.13
7.10
-0.031
99.57%

q7
84.11
83.73
-0.388
99.54%

q8
85.88
86.10
0.219
100.26%

q9
121.93
124.35
2.419
101.98%

q10
45.68
42.79
-2.890
93.67%

q11
20.40
20.17
-0.224
98.90%

q12
28.36
28.36
-0.008
99.97%

q13
44.89
44.51
-0.380
99.15%

q14
18.78
18.87
0.090
100.48%

q15
28.58
27.68
-0.897
96.86%

q16
14.07
14.41
0.337
102.40%

q17
102.25
101.11
-1.135
98.89%

q18
148.62
148.83
0.213
100.14%

q19
12.56
15.99
3.429
127.30%

q20
26.26
26.47
0.204
100.78%

q21
228.76
227.71
-1.054
99.54%

q22
13.77
13.61
-0.167
98.79%

total
1236.30
1238.65
2.350
100.19%


Game crashes

Describe the bug
Game crashes  when i use any outfit with smp physic
To Reproduce
Steps to reproduce the behavior:

Turn on FSMP
Launch game
i dress any outfit with smp physic
Game crashes

Expected behavior
Play with SMP physic
Screenshots and videos
Game crashes
Desktop (please complete the following information):

OS: [Windows 7, x64]

** FSMP**

1.18
CUDA: No_CUDA
AVX: No_AVX

SKSE

2.0.20

Skyrim

1.5.97

Required files

Join your configs.xml
Join your hdtSMP64.log
configs.zip
I dont have hdtSMP64.Log file

Additional context
Crash_2023_3_8_23-38-21.txt

Update to the latest. No one is going to support a version that old.

Update to the latest. No one is going to support a version that old.

What i need to update? skyrim,skse,windows,?

FSMP.

Did not help, game crashes

Please update the ticket with the versions you're using and make sure you're using a debug version. You will need to also install a crashlogger that can read the PDB that is included with the debug version. .Net Framework cannot. The PDB is needed for us to determine where in the dll it is crashing.

Got the same issue. Still haven't been able to find a solution.  I will try to find a fix and will post the solution here if I find one

Got the same issue. Still haven't been able to find a solution.  I will try to find a fix and will post the solution here if I find one

Alright I fixed it. Apparently it crashed everytime I equiped an armor from Immersive armors which hasn't been updated since 2016. I simply installed a CBBE conversion and now my game doesn't crash anymore.

Got the same issue. Still haven't been able to find a solution.  I will try to find a fix and will post the solution here if I find one

Alright I fixed it. Apparently it crashed everytime I equiped an armor from Immersive armors which hasn't been updated since 2016. I simply installed a CBBE conversion and now my game doesn't crash anymore.

Could you please tell me the precise armor so that I test if I can reproduce this CTD?

Got the same issue. Still haven't been able to find a solution.  I will try to find a fix and will post the solution here if I find one

Alright I fixed it. Apparently it crashed everytime I equiped an armor from Immersive armors which hasn't been updated since 2016. I simply installed a CBBE conversion and now my game doesn't crash anymore.

Could you please tell me the precise armor so that I test if I can reproduce this CTD?

The exact armor I used was the Spellbinder Runic armor for the body.

Thank you, installing it on a 1.6.640 test install doesn't make me CTD.


swagger.parameters are included for routes that are not supposed to.

I have not added request body fields in this route, but it comes up in the document.

![Screen Shot 2022-11-09 at 10 02 12 AM](https://user-images.githubusercontent.com/95058190/200710480-e5376
the above body parameter was written in a different route. which was AFTER this route.

1cc-e98a-46c4-84f4-5a98e4587169.png)

Hi @austinp0wers. Thank you for opening the issue. I couldn't reproduce this problem here. Could you submit a sample project that reproduces this issue, please? that way is easier to identify and handle the problem.

Hi @davibaltar i made a sample project, but i couldn't reproduce this problem.
However it happens in one of the services from work, and i cannot share codes in public.
I will go through the code of this module and try to figure it out.


[BUG] 0.3.0 Serious regression: inference with desc_act + group_size no longer works, produces gibberish. 0.2.2 is fine.

@PanQiWei @qwopqwop200
Describe the bug
I just discovered that in 0.3.0, it is not longer possible to use desc_act + group_size together during inference.  The model will always produce gibberish.
Example code to demonstrate the issue
(note that it is necessary to download the model first, as revision is not working in AutoGPTQ. Another bug which will I report separately and try to fix myself)
from transformers import AutoTokenizer, pipeline, logging
from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig
from huggingface_hub import snapshot_download

model_name = "TheBloke/LLaMA-7b-GPTQ"
branch = "gptq-4bit-128g-actorder_True"
local_folder = "/workspace/test-llama-128g-True"

snapshot_download(repo_id=model_name, local_dir=local_folder, revision=branch)

model_basename = "gptq_model-4bit-128g"
use_triton = False

tokenizer = AutoTokenizer.from_pretrained(local_folder, use_fast=True)

model = AutoGPTQForCausalLM.from_quantized(local_folder,
model_basename=model_basename,
use_safetensors=True,
trust_remote_code=False,
device="cuda:0",
use_triton=use_triton,
quantize_config=None)

input_ids = tokenizer("Llamas are", return_tensors='pt').input_ids.cuda()
output = model.generate(inputs=input_ids, temperature=0.7, max_new_tokens=512)
print(tokenizer.decode(output[0]))

Output with 0.3.0:
The safetensors archive passed at /workspace/test-llama-128g-True/gptq_model-4bit-128g.safetensors does not contain metadata. Make sure to save your model with the `save_pretrained` method. Defaulting to 'pt' metadata.
skip module injection for FusedLlamaMLPForQuantizedModel not support integrate without triton yet.
<s> Llamas aretringwachActionspaste Logarithlit прис homonymes DECLAREantinsworthodoxyardsetztenessentialuden replaikairowserUSTmassarios (:inessescoolinaióferrerзовilen BoyscottingÙ Dez Collegadoionaopus zewnętrzipagegiaandenatoriutzernessentialuden replaikairowserUSTmassarios (:inessescoolinaióferrerзовilen BoyscottingÙ Dez Collegadoionaopus zewnętrzipagegiaandenatoriutzernessentialuden
replaikairowserUSTmassarios (:inessescoolinaióferrerзовilen BoyscottingÙ Dez Collegadoionaopus zewnętrzipagegiaandenatoriutzernessentialuden replaikairowserUSTmassarios (:inessescoolinaióferrerзовilen BoyscottingÙ Dez
...

Output with 0.2.2:
The safetensors archive passed at /workspace/test-llama-128g-True/gptq_model-4bit-128g.safetensors does not contain metadata. Make sure to save your model with the `save_pretrained` method. Defaulting to 'pt' metadata.
skip module injection for FusedLlamaMLPForQuantizedModel not support integrate without triton yet.
<s> Llamas are a common sight in the Andes, and are used as pack animals.
The Andes are the longest mountain range in the world, stretching from the southern tip of South America to the northern tip of Antarctica. The Andes are also the highest mountain range in the world, with the highest peak, Mount Aconcagua, reaching 22,841 feet (6,962 meters).
The Andes are a very young mountain range, having formed only about 10 million years ago. The Andes are also very active, with frequent earthquakes and volcanic eruptions.
The Andes are a very important source of minerals, including copper, silver, gold, and iron. The Andes are also a source of water, with many rivers and lakes.
The Andes are home to many different kinds of plants and animals. The Andes are also home to many different kinds of people, including the Incas, who built the great Inca Empire.
The Andes are a very important source of minerals, including copper, silver, gold, and iron. The Andes are also a source of water, with many rivers and lakes. The Andes are home to many different
kinds of plants and animals. The Andes are also home to many different kinds of people, including the Incas, who built the great Inca Empire.

Software version
0.3.0
To Reproduce
See above

Really sorry about this, it's my bad not tested carefully before releasing the new version, a patch fix will release in recent days.

https://github.com/PanQiWei/AutoGPTQ/tree/fix-cuda-bug

The pr is merged, close this issue as it is solved.

It could be obabooga issue but I still get gibberish text inside last oobabooga/text-generation-webui with model test-llama-128g-True, got from run @TheBloke script using v0.3.2


Multidimentional Group-Object with switch -AsHashTable

Summary of the new feature / enhancement
I would like to group object in multiple layers of properties, as hastable
Actual command behavior
dir  | Group-Object -Property name,Extension -AsHashTable
Will end up throwing the error
Group-Object: The command cannot be run because using the AsHashTable parameter with more than one property requires adding the AsString parameter.
If I do add the -asstring then grouping happens as if the 2 properties was a single one.
What I can do today :

dir  | Group-Object -Property name,Extension -AsHashTable -asstring
$X["filename.txt, .txt"] will give me an answer, but this looks really dirty

Instead I would like to group them in n-layers Hashtables :

$X = dir  | Group-Object -Property name,Extension -AsHashTable
$X["filename"]["txt"] will give me an answer, where the first dictionary would be the property 1, and so on

Of course the above example have don't deserve any purpose, and is just shown as example.
Proposed technical implementation details (optional)
Group-Object -Property prop1,prop2,... -AsHashTable

Does not throw an error
Would return n-imbricated dictionaries

I thought what you were asking for was basically a pivot or cross tab ( I've extended a module of @dfinke 's https://github.com/jhoneill/PowerShellPivot/tree/James-changes for that)  But I don't think it is
This will do the job - and I think it's probably one of those "how to" things rather than a product enhancement but I'll leave others to kick that about.
function Group-Hierarchy {
    param   (
        [Parameter(position=0)]
        [System.Collections.ArrayList]$Property,

        [Parameter(position=1,Mandatory=$true,ValueFromPipeline=$true)]
        [System.Collections.ArrayList]$InputObject
    )
    begin   {$data =  @()}
    process {$data += $InputObject}
    end     {
        if ($Property.count -eq 0) {$data }
        else {
            $CurrentProperty = $Property[0]
            $p = $Property.Clone()
            $p.RemoveAt(0)
            $hash = [ordered]@{}
            $data | Group-Object -Property $CurrentProperty | ForEach-Object {
                if (-not $_.name) {$Name = "None"} else {$name = $_.Name}
                $hash[$Name] = Group-Hierarchy -Property $P -InputObject $_.Group
            }
            $hash
        }
    }
}

Here's your example.
#625 [~~€] PS7 ~\Documents\GitHub\PowerShellPivot> $x = dir -file | Group-Hierarchy -Property basename,extension
#626 [~~€] PS7 ~\Documents\GitHub\PowerShellPivot> $x['powershellpivot']['.psd1']

    Directory: C:\Users\mcp\Documents\GitHub\PowerShellPivot

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          20/06/2022    10:47           4647 PowerShellPivot.psd1

I have some bits to pull photo data out of lightroom so this will do >2 tiers.
#627 [~~€] PS7 ~\Documents\GitHub\PowerShellPivot> $h = Get-lightroomitem | Group-Hierarchy -Property @("cameramodel","Lensmodel",'Fnumber')
#628 [~~€] PS7 ~\Documents\GitHub\PowerShellPivot> $h
Name                           Value
----                           -----
None                           {[None, System.Collections.Specialized.OrderedDictionary]}
Canon EOS 6D Mark II           {[50mm, System.Collections.Specialized.OrderedDictionary]}
<... snip ...>
PENTAX K-1                     {[None, System.Collections.Specialized.OrderedDictionary], [A Series Lens, System.Collections.Specialized.OrderedDictionary], [HD PENTAX-D FA 21mm F2.4 ED Limited…
PENTAX K-5                     {[None, System.Collections.Specialized.OrderedDictionary], [K or M Lens, System.Collections.Specialized.OrderedDictionary], [Sigma or Tamron Lens, System.Collecti…
<... snip ...>

#629 [~~€] PS7 ~\Documents\GitHub\PowerShellPivot> $h.'PENTAX K-1'
Name                           Value
----                           -----
None                           {[1.8, LightRoomItem], [2.4, LightRoomItem], [2.5, System.Object[]], [2.8, System.Object[]]…}
A Series Lens                  {[2.5, LightRoomItem], [2.8, System.Object[]], [3.2, LightRoomItem], [3.5, LightRoomItem]…}
<... snip ...>
smc PENTAX-FA 77mm F1.8 Limit… {[1.8, System.Object[]], [2, System.Object[]], [2.2, System.Object[]], [2.5, System.Object[]]…}
smc PENTAX-FA SOFT 85mm F2.8   {[4.5, System.Object[]]}
<... snip ...>

#630 [~~€] PS7 ~\Documents\GitHub\PowerShellPivot> $h.'PENTAX K-1'.'smc PENTAX-FA 77mm F1.8 Limited'
Name                           Value
----                           -----
1.8                            {LightRoomItem, LightRoomItem, LightRoomItem, LightRoomItem…}
2                              {LightRoomItem, LightRoomItem, LightRoomItem, LightRoomItem…}
<... snip ...>
13                             {LightRoomItem, LightRoomItem, LightRoomItem}
14                             {LightRoomItem, LightRoomItem, LightRoomItem, LightRoomItem…}

#631 [~~€] PS7 ~\Documents\GitHub\PowerShellPivot> $h.'PENTAX K-1'.'smc PENTAX-FA 77mm F1.8 Limited'['13'] |  | ft  -Property BaseName, DateTaken, ISOSpeed
BaseName DateTaken           ISOSpeed
-------- ---------           --------
IM112247 2021-08-15T15:27:24   100.00
IM112248 2021-08-15T15:27:28   100.00
IM112249 2021-08-15T15:27:38   100.00

4847835480498037

The code isn't optimized for large data set.
I can probably improve it
$Random = 0..100000 | % {
    new-object psobject -property @{
        P1 = -join (97..122 | Get-Random -Count 2 | % { [char]$_ })
        P2 = -join (97..122 | Get-Random -Count 2 | % { [char]$_ })
    }
}
Measure-Command { $random | Group-Hierarchy -Property P1,P2 }

This was completed in 3 minutes on 29 seconds ...

I was wrong. I thought Group-Object -AsHashTable was going to gain a lot of time. But my issue was more coming from the pipeline handeling than the code it self.
$random | Group-Hierarchy -Property P1,p2 is aweful
Group-Hierarchy -Property P1,p2 -InputObject $random is much better
The code I wrote did not help gaining time
function Group-Hierarchy {
    param   (
        [Parameter(position=0,Mandatory)][string[]]$Property,
        [Parameter(position=1,Mandatory,ValueFromPipeline)]$InputObject,
        $Level = 0
    )
    begin   { $data =  @() }
    process { $data += $InputObject }
    end     {
        $Data = $InputObject | Group-Object -Property $Property[0] -AsHashTable
        if ($Property[1]) {
            $Remaining =  $Property | select -skip 1
            @($Data.keys) | % {
                $Data[$_] = Group-Hierarchy -InputObject $Data[$_] -Property $Remaining -level ($Level+1)
            }
        }
        $Data
    }
}

@tfarray, I think your proposal makes sense as an enhancement to Group-Object, and that there are no backward-compatibility issues involved is a bonus.

The slowdown in the implementation of Group-Hierarchy comes from using += to "grow" the $data array, which in reality requires construction of a new array in every process call; if you use $data = [System.Collections.Generic.List[object]]::new() in the begin block and $data.Add($InputObject) in the process block, performance should improve significantly. To also support array-valued argument input via -InputObject, use the following idiom (leaving aside whether or not your Group-Hierarchy otherwise works as intended):
function Group-Hierarchy {
  param   (
      [Parameter(Position=0, Mandatory)] [string[]] $Property,
      [Parameter(Position=1, Mandatory, ValueFromPipeline)] [object] $InputObject
  )
  begin   {
    $fromPipeline = $MyInvocation.ExpectingInput
    $data = $fromPipeline ? [System.Collections.Generic.List[object]]::new() :  $InputObject
  }
  process {
    if ($fromPipeline) { $data.Add($InputObject) }
  }
  end     {
    # ... work with $data, which now contains all input objects, whether
    #     from the pipeline or by direct argument.
  }
}

It certainly wasn't optimized, it's something I threw together quicky.  At first glance your recursion is neater.
Adding a million items to an array as I'm doing here is ultra slow  [System.Collections.ArrayList] is much quicker.
I'm going to leave optimization as an exercise for the reader. But if it's still here when I have a little more time I'll try to do a better version .

Nicely done, @tfarray: with minor tweaks to avoid the inefficiency and to fix pipeline support, your function works as expected (and is therefore a proof-of-concept); let me put the pieces together, based on the recommendation in my previous comment:
function Group-Hierarchy {
  param   (
    [Parameter(position = 0, Mandatory)][string[]]$Property,
    [Parameter(position = 1, Mandatory, ValueFromPipeline)]$InputObject
  )
  begin {
    $fromPipeline = $MyInvocation.ExpectingInput
    $data = $fromPipeline ? [System.Collections.Generic.List[object]]::new() : $InputObject
  }
  process {
    if ($fromPipeline) { $data.Add($InputObject) }
  }
  end {
    $hash = $data | Group-Object -Property $Property[0] -AsHashTable
    if ($Property[1]) {
      $Remaining = $Property | Select-Object -Skip 1
      @($hash.keys) | ForEach-Object {
        $hash[$_] = Group-Hierarchy -InputObject $hash[$_] -Property $Remaining
      }
    }
    $hash
  }
}

As an aside: System.Collections.ArrayList is best avoided these days ("We don't recommend that you use the ArrayList class for new development."), in favor of System.Collections.Generic.List`1, as used above. Aside from offering strong typing, the latter's .Add() method sensibly has no return value; ArrayList's does, and that is a frequent source of accidental output-stream pollution.


open edX: Wrong link and alt text in the MITx Online footer image of edX LMS

The MITx Online logo image in the footer has the wrong link and alt text (example page)
Please:

[ ] Change the alt text to MITx Online
[ ] Change the href link to https://mitxonline.mit.edu/ or https://rc.mitxonline.mit.edu/ depending on platform

Current HTML

Image

@Wassaf-Shahzad
Note that this issue has been replaced by #223, which is a more universal solution for the footer


Close popup dialog when you click the blocking div

Worked with @mikesherov on this one. Appears that all usages of View/Dialog/Popup override the view so this is okay to do as a permanent non-configurable change.
@Attamusc @joesepi @kaicataldo

@mmase If this is overridden everywhere, why make this change?

@Attamusc haha, fair enough. I meant to say all usages but the one that we actually wanted to close on click.

haha my bad. Way too literal :P

LGTM

@mmase where are you at with this?

👍


should the port forwarding be on service or pod in the tutorial on README.md?

I followed the tutorial on README.md.
At Step 4 Curl the InferenceService, port forwarding on the pod doesn't work for me.
kubectl port-forward --namespace istio-system $(kubectl get pod --namespace istio-system --selector="app=istio-ingressgateway" --output jsonpath='{.items[0].metadata.name}') 8080:80 &

error is like
curl  -H "Host: ${SERVICE_HOSTNAME}" http://localhost:8080/v1/models/sklearn-iris:predict -d @./docs/samples/sklearn/iris-input.json
curl: (52) Empty reply from server

Forwarding from <IP_ADDRESS>:8080 -> 80
Forwarding from [::1]:8080 -> 80
Handling connection for 8080
E0723 11:29:11.652569   71077 portforward.go:400] an error occurred forwarding 8080 -> 80: error forwarding port 80 to pod 0c266ba2b8421a4f014b4eb0bfc985a998632692531cd86c1b163b5492ebfd5c, uid : exit status 1: 2020/07/23 18:29:11 socat[58515] E connect(5, AF=2 <IP_ADDRESS>:80, 16): Connection refused

Instead, port forwarding on service works
kubectl port-forward --namespace istio-system svc/$(kubectl get svc --namespace istio-system --selector="app=istio-ingressgateway" --output jsonpath='{.items[0].metadata.name}') 8080:80

Is that expected?

@zyxue the command used to work and your way definitely works too, possibly something related to recent change to use the new istio 1.6.2 release for quick install demo. Please feel free to send a PR to fix it, thanks!


Is the artificial constraint on the agent name introduced by multi-env a problem?

Ask the team in the person or in slack.


Ошибка при работе с Django

Django 4.0
Следующий код
from fast_bitrix24 import Bitrix

def send_request_bitrix():
    webhook = "https://название_компании.bitrix24.ru/rest/22/тут_токен/"
    b = Bitrix(webhook)
    print(b)

def index(request):
    send_request_bitrix()
    return render(request, 'pages/index.html', locals())

При заходе на страницу получаю вот такую ошибку.
Traceback (most recent call last):
  File "/Users/forest/Library/Caches/pypoetry/virtualenvs/psycon-6e8C299w-py3.9/lib/python3.9/site-packages/asgiref/sync.py", line 472, in thread_handler
    raise exc_info[1]
  File "/Users/forest/Library/Caches/pypoetry/virtualenvs/psycon-6e8C299w-py3.9/lib/python3.9/site-packages/django/core/handlers/exception.py", line 38, in inner
    response = await get_response(request)
  File "/Users/forest/Library/Caches/pypoetry/virtualenvs/psycon-6e8C299w-py3.9/lib/python3.9/site-packages/django/core/handlers/base.py", line 233, in _get_response_async
    response = await wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/Users/forest/Library/Caches/pypoetry/virtualenvs/psycon-6e8C299w-py3.9/lib/python3.9/site-packages/asgiref/sync.py", line 435, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File<EMAIL_ADDRESS>line 442, in wait_for
    return await fut
  File "/Users/forest/Library/Caches/pypoetry/virtualenvs/psycon-6e8C299w-py3.9/lib/python3.9/site-packages/asgiref/current_thread_executor.py", line 22, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/Users/forest/Library/Caches/pypoetry/virtualenvs/psycon-6e8C299w-py3.9/lib/python3.9/site-packages/asgiref/sync.py", line 476, in thread_handler
    return func(*args, **kwargs)
  File "/Users/forest/Library/Caches/pypoetry/virtualenvs/psycon-6e8C299w-py3.9/lib/python3.9/site-packages/sentry_sdk/integrations/django/views.py", line 67, in sentry_wrapped_callback
    return callback(request, *args, **kwargs)
  File "/Users/forest/Library/Caches/pypoetry/virtualenvs/psycon-6e8C299w-py3.9/lib/python3.9/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/Users/forest/Desktop/repo/helpsypro/app/views.py", line 95, in index
    send_request_bitrix()
  File "/Users/forest/Desktop/repo/helpsypro/app/views.py", line 88, in send_request_bitrix
    BitrixConnector = Bitrix(webhook, verbose=False,
  File "/Users/forest/Library/Caches/pypoetry/virtualenvs/psycon-6e8C299w-py3.9/lib/python3.9/site-packages/fast_bitrix24/bitrix.py", line 49, in __init__
    self.srh = ServerRequestHandler(webhook, respect_velocity_policy, client)
  File "/Users/forest/Library/Caches/pypoetry/virtualenvs/psycon-6e8C299w-py3.9/lib/python3.9/site-packages/fast_bitrix24/srh.py", line 73, in __init__
    self.request_complete = Event()
  File<EMAIL_ADDRESS>line 177, in __init__
    self._loop = events.get_event_loop()
  File<EMAIL_ADDRESS>line 642, in get_event_loop
    raise RuntimeError('There is no current event loop in thread %r.'
RuntimeError: There is no current event loop in thread 'ThreadPoolExecutor-1_0'.

В чем может быть проблема?

Дубль #204


How to adjust divider width for draggable areas

How to make the dividing line only occupy a small width between the two areas, but the actual draggable area is wider. What do I need to do?

Hi @jochendev!
You can change the divider thickness.
MultiSplitViewTheme theme = MultiSplitViewTheme(
        child: multiSplitView,
        data: MultiSplitViewThemeData(dividerThickness: 5));


Librispeech CUDA OOM

When I try to reproduce training Librispeech pruned_transducer_stateless7, I am getting CUDA out of memory.
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 426.00 MiB (GPU 0; 11.75 GiB total capacity; 4.52 GiB already allocated; 83.50 MiB free; 10.46 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
How can I fix that?
Is it possible to train Librispeech with 12 GB CUDA memory?
Thanks in advance.

Please decrease the --max-duration

Thanks.


Exclude files from publishing

I don't want some of my project files (like pdb files or some of the assemblies) to be copied to publish destination folder.
In my project.json I add something like:
"publishOptions": {     "exclude": [       "**/*.pdb"     ]   }
And then do dotnet publish - and these excluded files are still in publish folder. Am I doing something wrong here?

cc/ @ajaybhargavb

@mpazdnikova, How are they being included in the first place? publish won't include any extra files unless you explicitly include them.

Well pdbs are auto included and I don't think there's a way to disable them. Better to file this issue on dotnet/cli

I am seeing this issue as well. I went ahead and created https://github.com/dotnet/cli/issues/4004

This issue is being closed because it has not been updated in 3 months.
We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate.


Add classifier-free guidance

llama.cpp has recently developed support for CFG:

https://github.com/ggerganov/llama.cpp/issues/2083
https://github.com/ggerganov/llama.cpp/pull/2135

We should mirror this support. I'm not sure how well it will apply to the other models; I haven't investigated too deeply into this.

Make sure to remove the smooth_factor and the last log_softmax in order to remain consistent with llama.cpp's and HF's implementation ( https://github.com/ggerganov/llama.cpp/pull/2280 )

I'm going to try to look at how to add this to llm-samplers. It will need the CFG logits though, so llm will need to handle that itself. I guess it can be supplied as a sampler resource similar to the RNG and last tokens. I'd like to figure out a more general way to handle resources but in the worst case I can just add another type of resource to that trait.
llama.cpp CFG sampler for reference (doesn't look too complicated): https://github.com/ggerganov/llama.cpp/blob/b19edd54d51cef5e3616c18b1d0d8626895b2cba/llama.cpp#L2709-L2740
On the llm side it looks like you have to maintain a guidance context and run the model for both contexts every token — so using CFG means evaluating the model is twice as slow (also, I think you need two K/V caches). Main relevant sections from llama.cpp's main example: https://github.com/ggerganov/llama.cpp/blob/b19edd54d51cef5e3616c18b1d0d8626895b2cba/examples/main/main.cpp#L208-L215 and https://github.com/ggerganov/llama.cpp/blob/b19edd54d51cef5e3616c18b1d0d8626895b2cba/examples/main/main.cpp#L484-L523


start updates async returns zero at all indexes

Hi team,
I am new mobile app development .Currently i have developed a sample xamarin forms app (developed in VS 2017 with xamarin workload) which needs to be communicate with hardware peripherals  through RN4871 bluetooth module.By using Plugin.ble package i can able to scan ,connect to device,discover services,discover characteristics.
RN4871 have a RX character(write/write without response)  and a TX character(write/notify/indicate /write without response) .I can able to write by using the RX character.But cant get the updated characteristic value by using the TX char in startupdatesasync method.But an app(developed in android studio)gets the updated characteristic value from the same device through the same TX character.I am sharing my code snippet please do the needful.
try
{
var services =await device.GetServicesAsync();
Guid servid = services[3].Id;
service3 = await device.GetServiceAsync(servid);
var s3chars = await service3.GetCharacteristicsAsync();
Guid charid1 = s3chars[1].Id;
s3characteristic1 = await service3.GetCharacteristicAsync(charid1);//RX_CHAR
await s3characteristic1.WriteAsync(ReqPDU);
                Guid charid0 = s3chars[0].Id;
                s3characteristic0 = await service3.GetCharacteristicAsync(charid0);
                var descriptors = await s3characteristic0.GetDescriptorsAsync();
                Guid descid = descriptors[0].Id;
                descriptor = await s3characteristic0.GetDescriptorAsync(descid);

                await DisplayAlert("alert", "req sent", "ok"); //TX_CHAR

                descriptor.Characteristic.ValueUpdated += (obj, args) =>
                {

                        ResPDU = args.Characteristic.Value;
                };
                await descriptor.Characteristic.StartUpdatesAsync();
                comstatus.Text = ResPDU[0].ToString();
                ResPDU = await descriptor.ReadAsync();
                lblStatus.Text = ResPDU[0].ToString();

Note:ResPDU is a byte array have limit 50.Getting 0 value  in all indexes.
Steps to reproduce
1.Deployed the app into the android device,enabled the bluetooth option,scanned and connected with the hardware device through the RN 4871 bluetooth module.
2.Sent a request to the device by using the writeasync method in RX character.
3.get the Tx character and created its descriptor(CCCD).Called  the startupdates async method and collected the updated values in a byte array.
Expected behavior
Needs to retrive a decimal or string value (example 123) other than 0 .
Actual behavior
getting 0 in all indexes
Crashlog
Nothing
Configuration
**Version of the Plugin:Plugin.Ble (2.0.0-pre1)
Platform: Android 7.0 API 24
Device: Motorola Moto C

Hi @versa19,
I'm the friendly issue checker.
Thanks for using the issue template :star2:
I appreciate it very much. I'm sure, the maintainers of this repository will answer, soon.

can I get any updates for this?


int64 overflow in MetricsEventManager

I came across the following stack trace in my App Insights exceptions view. If I had to guess, I'd say that it was probably from this line:
https://github.com/Azure/azure-webjobs-sdk-script/blob/d9feee3db2a59421fd5e11a0ac0636ca0a58049e/src/WebJobs.Script.WebHost/Diagnostics/MetricsEventManager.cs#L462
Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception while executing function: Functions.Splitter ---> System.OverflowException: Value was either too large or too small for a UInt64.
   at System.Decimal.ToUInt64(Decimal d)
   at Microsoft.Azure.WebJobs.Script.WebHost.Diagnostics.MetricsEventManager.FunctionActivityTracker.<>c.<RaiseMetricsPerFunctionEvent>b__23_1(IGrouping`2 FunctionGroups)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at Microsoft.Azure.WebJobs.Script.WebHost.Diagnostics.MetricsEventManager.FunctionActivityTracker.RaiseMetricsPerFunctionEvent()
   at Microsoft.Azure.WebJobs.Script.WebHost.Diagnostics.MetricsEventManager.FunctionCompleted(FunctionStartedEvent completedEvent)
   at Microsoft.Azure.WebJobs.Script.WebHost.Diagnostics.WebHostMetricsLogger.EndEvent(MetricEvent metricEvent)
   at Microsoft.Azure.WebJobs.Script.Description.FunctionInvokerBase.<Invoke>d__30.MoveNext()

This could have been a negative number due weird time comparison quirks.


Remove same-name association/collection assumption.

The assumption made by these tests that an association's attribute name and collection name are the same covered-up a bug in waterline (https://github.com/balderdashy/waterline/issues/533 / https://github.com/balderdashy/waterline/issues/930).  I think I've properly adjusted the model definitions for hasMany and belongsTo tests so that these bugs are exposed.  I'd love another set of eyes to go over this, though!
PR for proposed fix: https://github.com/balderdashy/waterline/issues/934

cc @particlebanana

Great work @devinivy, from what I've seen all looks good. :white_check_mark: .

@particlebanana would you like this PR merged once waterline is released with the recently-merged https://github.com/balderdashy/waterline/pull/930 and https://github.com/balderdashy/waterline/pull/934 ?

@devinivy I think it's good to merge now. I'll get a waterline release out today.

@particlebanana, when you release waterline please also release waterline-adapter-tests. We need that so we can address some of the tests that are breaking in certain adapters.

@dmarcelino done. Published waterline 0.10.21 and waterline-adapter-tests 0.10.9

Awesome! :smiley:


how to get table

i just get the text of table,  how to get table's structure, or such as [[], [],,,,].......?

Hi @sight007! Could you include the pdf and code you are using? That allows us to help you better.

this is my pdf table sample,  i use code from docs,   the result is :
..........(other text).......
..........(other text).......
二十一、工程做法及选用图集
部位   图集  节点
xxxx xxxx  xxxx
xxxx xxxx xxxx
..........(other text).......
..........(other text).......
these are mixing with other text,  i only want to get table's content and table's structure,  such as json, datefrme, [[],[],,,] or other data structure.  If it contains (x0, y0, x1, y1) of box,  that's better.

this's  a table sample of my pdf,  i use code from docs, the result is :
---(other text)----
---(other text)----
二十一、工程做法及选用图集
部位    图集   节点
xxxx     xxxx    xxxx
xxxx     xxxx    xxxx
---(other text)----
---(other text)----
these are mixing with other text, i only want to get table's struct and (x0, y0, x1, y1)  of table's box.

Hi @sight007,
Its not possible to get this output using pdfminer.six. A PDF does not have such a thing as a table. It has lines, curves and characters that are printed somewhere on the page. Pdfminer.six is designed to extract text  from this structure. You can also use it to extract the lines that compose the table, but not the actual table structure itself.
If you want to extract tabular data from a PDF you should use a tool like Camelot.


Support System.Text.Json customized JSON contract (via Modifiers)

When i customize my System.Text.Json serialization in ASP.NET Core using Modifiers (described here) my swagger docs doesn't reflect this changes.
Is this possible to support this?
Example for endpoint responce:

Actual responce:

Ideally swagger should populate contracts from JsonSerializerOptions.TypeInfoResolver but right now it only mimics STJ logic via reflection in JsonSerializerDataContractResolver with mixed success. It's injectable and not a very large class so you could try to create your own.


Fixed epson update method name

Description:
Corrects update method name to override the async version of update. Overriding the wrong version of update worked in 0.80.x, but doesn't anymore.
Related issue (if applicable): fixes #18253
Pull request in home-assistant.io with documentation (if applicable): N/A
Checklist:

[X] The code change is tested and works locally.
[X] Local tests pass with tox. Your PR cannot be merged unless tests pass
[X] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Hello @bw3,
When attempting to inspect the commits of your pull request for CLA signature status among all authors we encountered commit(s) which were not linked to a GitHub account, thus not allowing us to determine their status(es).
The commits that are missing a linked GitHub account are the following:

d00fb76a1dacdb3113ef85215da802d4c3eb594f - This commit has something that looks like an email address (gitmail@bradleywideman.com). Maybe try linking that to GitHub?.

Unfortunately, we are unable to accept this pull request until this situation is corrected.
Here are your options:

If you had an email address set for the commit that simply wasn't linked to your GitHub account you can link that email now and it will retroactively apply to your commits. The simplest way to do this is to click the link to one of the above commits and look for a blue question mark in a blue circle in the top left. Hovering over that bubble will show you what email address you used. Clicking on that button will take you to your email address settings on GitHub. Just add the email address on that page and you're all set. GitHub has more information about this option in their help center.

If you didn't use an email address at all, it was an invalid email, or it's one you can't link to your GitHub, you will need to change the authorship information of the commit and your global Git settings so this doesn't happen again going forward. GitHub provides some great instructions on how to change your authorship information in their help center.

If you only made a single commit you should be able to rungit commit --amend --author="Author Name<EMAIL_ADDRESS>
(substituting Author Name and<EMAIL_ADDRESS>for your actual information) to set the authorship information.
If you made more than one commit and the commit with the missing authorship information is not the most recent one you have two options:

You can re-create all commits missing authorship information. This is going to be the easiest solution for developers that aren't extremely confident in their Git and command line skills.
You can use this script that GitHub provides to rewrite history. Please note: this should be used only if you are very confident in your abilities and understand its impacts.

Whichever method you choose, I will come by to re-check the pull request once you push the fixes to this branch.

We apologize for this inconvenience, especially since it usually bites new contributors to Home Assistant. We hope you understand the need for us to protect ourselves and the great community we all have built legally. The best thing to come out of this is that you only need to fix this once and it benefits the entire Home Assistant and GitHub community.
Thanks, I look forward to checking this PR again soon! :heart:


SDK guide notes

Nick here are the following observations taken from this guide
https://developers.google.com/assistant/sdk/guides/library/python/

"Configure a Developer Project and Account Settings" section. Down the page "Click the Device registration box." For what? You do nothing, with that device registration box at that point of the process. It then jumps to enable API. Both spawn tabs but its gets messy. The registration box is used later in the process it should be highlighted when its needed.

"Set Up Hardware and Network Access" you select Ubuntu (and again on the next section) but later pages it just seems to all merge into one document. You don't know what is for what even though Pi is labeled in places later its not clear did I hit the wrong link? What happened to Ubuntu or Pi am I on the correct path for this guide?

"Register the Device Model" then "Edit the model" then "To download the credentials file again, click the ellipses." could say "if you need to down load credentials.json again". Needs to be clear this is not an instruction.

4."Install the SDK and Sample Code". Python3. venv can be an issue on Ubuntu, you could link to alternatives like anconda for example. I had to use that. Its an unwanted distraction when it does not work.

"Generate credentials". The key point missing here especially if you flick back and forth later is that you are using a credentials.json file downloaded from the browser earlier under device registration / register model to create another credentials.json file using a URL which is then placed in a hidden directory /.config/google-oauthlib-tool/. That part is not clear you have two files of the same name on this guide, skip a section or come back later its confusing.

"Register Custom Device Actions" then "Create an Action Package". This is where the wheels fall off. There is already an actions file in the ~/assistant-sdk-python/google-assistant-sdk/ directory, which you need to in this case (since we are following the guide) copied over to '
library' directory. The example cp command should be like:

cp ~/assistant-sdk-python/google-assistant-sdk/actions.json ~/ assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library/
That then places the copied action file next to hotword.py ready for use. Otherwise you get errors later on using hotword.py in that the google assistant works and takes commands but the action does not occur. The error looks like this from hotword.py
"This device is not registered. This means you will not be able to use
Device Actions or see your device in Assistant Settings. In order to
register this device follow instructions at:
https://developers.google.com/assistant/sdk/guides/library/python/embed/register-device"

"Deploy the Action Package". In this instance it would be better to download or wget the actions package  into  ~/ assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library/

I would highlight if you need the model ID when using commands that need model ID to get it from https://console.actions.google.com your project  under "device registration" click on your model copy the model ID, same with project right click gear under select project, copy project ID.

A flow diagram would really help show the common build steps and the customised or build you own actions steps so you can see how it all bolts together where the branches are. Its a new vernacular to learn for anyone starting out, it make sense to insiders but not others as to what fits where.

Thank you for submitting this. We value your feedback!!

"Configure a Developer Project and Account Settings" section. Down the page "Click the Device registration box." For what? You do nothing, with that device registration box at that point of the process. It then jumps to enable API. Both spawn tabs but its gets messy. The registration box is used later in the process it should be highlighted when its needed.

Fixed. You still need to enable the API in GCP, but we are looking at improving this flow.

"Set Up Hardware and Network Access" you select Ubuntu (and again on the next section) but later pages it just seems to all merge into one document. You don't know what is for what even though Pi is labeled in places later its not clear did I hit the wrong link? What happened to Ubuntu or Pi am I on the correct path for this guide?

The hardware/network access and audio topics are hardware-specific pages. I added a line of text to note this near the top. The rest of the pages are generally hardware-agnostic, but you will see some references to the Raspberry Pi since it has accessible GPIO ports that we wanted to use for demonstration purposes.

"Register the Device Model" then "Edit the model" then "To download the credentials file again, click the ellipses." could say "if you need to down load credentials.json again". Needs to be clear this is not an instruction.

Fixed

4."Install the SDK and Sample Code". Python3. venv can be an issue on Ubuntu, you could link to alternatives like anconda for example. I had to use that. Its an unwanted distraction when it does not work.

I like the idea of listing alternatives, but unfortunately we don't have the bandwidth to support these alternatives.

"Generate credentials". The key point missing here especially if you flick back and forth later is that you are using a credentials.json file downloaded from the browser earlier under device registration / register model to create another credentials.json file using a URL which is then placed in a hidden directory /.config/google-oauthlib-tool/. That part is not clear you have two files of the same name on this guide, skip a section or come back later its confusing.

I agree this is confusing. I added some clarification text and we have other improvements in the works.

"Register Custom Device Actions" then "Create an Action Package". This is where the wheels fall off. There is already an actions file in the ~/assistant-sdk-python/google-assistant-sdk/ directory, which you need to in this case (since we are following the guide) copied over to '
library' directory. The example cp command should be like:
cp ~/assistant-sdk-python/google-assistant-sdk/actions.json ~/ assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library/
That then places the copied action file next to hotword.py ready for use. Otherwise you get errors later on using hotword.py in that the google assistant works and takes commands but the action does not occur. The error looks like this from hotword.py
"This device is not registered. This means you will not be able to use
Device Actions or see your device in Assistant Settings. In order to
register this device follow instructions at:
https://developers.google.com/assistant/sdk/guides/library/python/embed/register-device"

I'd like to better understand this. The sample action package does not need to be copied to the /library directory. In fact, the entire "Create an Action Package" section need not be done on the device. As long as you supply the path to the action package json file and the project ID to the gactions binary, it should work fine. The error from the hotword.py file is unrelated.

"Deploy the Action Package". In this instance it would be better to download or wget the actions package into ~/ assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library/

I added a step to the top of the page to cd into this directory. I fear if I add wget and a URL, it will trip up users since the gactions binary is OS and architecture dependent.

I would highlight if you need the model ID when using commands that need model ID to get it from https://console.actions.google.com your project under "device registration" click on your model copy the model ID, same with project right click gear under select project, copy project ID.

This method of getting the project ID is called out on https://developers.google.com/assistant/sdk/guides/library/python/embed/run-sample. I'm not too worried about the model ID, since you would have that in the command history from running the sample (although I admit you may lose this on later runs).

A flow diagram would really help show the common build steps and the customised or build you own actions steps so you can see how it all bolts together where the branches are. Its a new vernacular to learn for anyone starting out, it make sense to insiders but not others as to what fits where.

We are thinking of adding a blog post for this.

@irataxy just tryed to setup a new project and register a model using your registration UI. Followed all the steps...however, the Device registration box does not appear at all. Not sure if this is related to any of the changes ? Just came across this issue and it seems likely. Thanks for clarification.

If you create a new project in the AoG Console and scroll to the very bottom of the page, you should see the Device registration box under More options.
If you choose Skip instead of selecting the Device registration box or navigate away from the page and come back later, it looks like you now can't access the Device registration tab (under ADVANCED OPTIONS) from the left navbar. This is a bug; I'll follow up on this.

Thanks for looking into it.


EngageSphere App - Begginers API and GUI tests

Summary:
This PR implements the following tests appropriate for a beginner level QA learning Cypress:
API
When sending a GET request to the /customers endpoint:
● Successfully retrieves customers (e.g., checks for the 200 status code) *
● Paginates the customer list correctly **
GUI/Component
● Renders the header with an h1 and theme toggle *
● Shows the default greeting (i.e., Hi there! ...) *
● Shows a customized greeting (e.g., Hi Joe! ...) *
For more details about the proposed tests you can see it here
Changes:

Cypress installed in my project
Set up the cypress.config.js file
Created test files to test api and gui aspects of this application, which are separated into the respective api and gui folders.
Created custom one api command which lives inside api_commands.js
Added a new plugin cypress-plugin-api

Testing:
I ran all the tests using Cypress cloud before and after my last commit to ensure they are all passing.

Reviewer Checklist:

Any tips on how name my test files and/or tests will be much appreciated
Any feedback on how I can improve my tests either by abstracting more or utilising better assertions
I attempted to have defined inside cypress.config.js two distinct baseUrls, where one points to the port 3000 and the other to port 3001, however I couldn't get it to work nor was able to identify what's best practice in this case.
Any advice on where should the cypress project live? My initial thought was it should live inside the frontend folder, but having it there didn't work at all. So I moved it to the same level as frontend and backend folders.
I couldn't get cypress-plugin-api to work in my project.

Also, solving the existing conflicts between your fork and the original repo could be an exciting challenge.


Allow initiator in response decoder supports method

It puts all changes around https://github.com/lmc-eu/cqrs-types/pull/3 together.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 839073146:
0.0%

Covered Lines:
190

Relevant Lines:
190

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 839073146:
0.0%

Covered Lines:
190

Relevant Lines:
190

💛  - Coveralls


Fix encoding issues and improve parsing performance

Hello,
I was wondering if you would be interested in a patch that tries to solve some charset related issues and improves parsing performance. I was trying to parse a 500kb CSS file (Bootstrap 3, Font Awesome and some custom stuff) and it took more than 70 seconds, with this patch I managed to get it down to 3.5-7 seconds. While working on the patch I have noticed a few other problems.
List of changes:

internally all strings are now stored as UTF-8
BOM is used for utf-8 detection and removed if found
setCharset() was removed completely - all charset conversions are done in constructor
the rendered text is always returned as utf-8 with all CSS strings \encoded as ASCII chars
the @charset atRule is switched to 'utf-8' if present
mbstring extension is not required any more
iconv is required - previously it was required only if there were \encoded unicode chars
all non-ascii unicode chars are \encoded in CSS strings
null character is completely ignored in CSS strings for security reasons

Ciao,
Petr

Thanks for this pull-request!
I like the approach of moving the whole internal processing to a well-defined charset (UTF-8).
But I really think the parser should, by default and unless the user explicitly requests something else, output the document in its original encoding. This means using iconv at the end to re-convert the output string back to its original encoding and preserving original value of the @charset rule.
Also, converting any non-ASCII chars to unicode escapes seems wasteful too me in a day and age where most files are served using UTF-8 and do contain some non-ASCII chars. In my opinion, this should be an option of OutputFormat that can be configured to: a) escape all non-ASCII chars, or, b) only escape the characters not representable in the output charset (this should be the default).
Ideally we could add a third option: escape all the chars that were escaped in the input and leave the chars unescaped that appeared verbatim in the input. But since we don’t store that information, this should prove difficult to implement. Maybe we could add a sort of „blacklist“ where the user can configure ranges of characters to always escape even if they would be representable in the output charset.
Also, one of the open issues of the parser is handling UTF-16 files (either with or without BOM). This means the heuristic that searches for the @charset rule should also test, as a fallback, if it can find 0'@'0'c'0'h'0'a'0'r'0's'0'e'0't' (for BE) or '@'0'c'0'h'0'a'0'r'0's'0'e'0't'0 (for LE) and parse its value. UTF-8, 16-LE, 16-BE should all be covered by at least one test case, each with and without BOM.

The problem with returning text in different encoding is that some characters may not be present in other encodings. I have converted only the CSS strings back to escaped form, those are the strings in double quotes (such as the content in font icon definitions - that was where I needed it). If I understand it correctly the identifiers are not touched which means they might be still in unicode. Also UTF-8 is now the default and recommended encoding in PHP, the same goes for CSS.
I am not sure if I ever saw anything encoded in UTF-16, I agree that detecting it and converting it to UTF-8 is possible and easy, on the other had I do not think UTF-16 has any use for web because it is not compatible with ascii - which means no developer or designer should ever try to create CSS in UTF-16. I was more worried about the GB2312 encoding which was required to be used in China, but luckily it appears not to be used much these days.
Anyway I will be very busy with our company project in the next few weeks and then I can work a bit more on this - adding the UTF-16, optional output encoding witch @charset change and some more tests. I'll need to study the CSS spec a bit more I guess.
Thanks a lot for having a detailed look at my patch!

hey @FMCorz! I guess you might be interested in this patch...

Thanks @skodak! Looks like we're solving similar problems, how surprising :). Cheers!

Hi, I have reworked the patch, I got much deeper than I wanted originally - the problem was that the strict parsing did not work much for me when I started writing tests for the new UTF stuff - I had to fix some bugs first. When I started stepping through the code in debugger my hand started to hurt from the repeated clicking, so I rewrote some parts to stop calling peek() a million times.
I am not finished yet, I would like to add more test coverage to make sure there are no regressions.
Ciao

Thanks.

Although I don't know so much about this matter, I'd like to see this PR get merged (or refined so far that it becomes mergeable). I had some encoding troubles myself that I could fix using kind of a hack. Also I could really use the performance boost. In the current state I can only use this in combination with a file cache. Any update on this PR?

This patch looks good. @skodak what exact changes did improve the performance that lot? I am using https://github.com/cweagans/composer-patches and want to add a patch to improve parsing performance. :-)

Is there any update OR solution for this bug?

@ThemeMetro Someone (TM) would need to take this PR and split it into smaller, focused PRs (with good test coverage). Would you be willing to do this?


This is great! Do you have any ideas / intent to implement the ❌  elements in future?

I've perused a lot of these classless CSS guys and yours is really up my ally. I really like it! Look professional and confident and solid.
It's an interesting UX/UI/design problem to get really good default styling on complex things like DL/DD/DT, DETAILS/SUMMARY, METER etc. If you intend to do so, I hope you achieve it! I look forward to using this.
Sorry for the dumb question, I know it's not your job to just help out noobs like me -- but I'm pretty new to static site blogs like jekyll -- would it be too much to ask you how I would include this in my Jekyll blog?

Yes, I would certainly like to tackle the ❌ elements in the future. I added a legend below the table to clarify the meaning of the symbols.
Unfortunately, I'm not really familial with Jekyll, it has been ages since I've last used it (I've switched to other solutions for various reasons). However, this StackOverflow answer might help. You could either download lissom.min.css from this repository and update it periodically when I push updates, or you could use always use the latest version with this direct link. Let me know how it goes!

Thank you, friend! 😊🥹😃


Make default behavior for bootloader to enable LDOTRIM

Yuuki Umeta has had issues on a few boards not working reliably but on those boards, when we enabled LDOTRIM, the boards worked perfectly.
This is just changing that for the bootloader.  We can investigate other things later.

DON'T push it. I found out the another issue caused fixing LDOTRIM code.
First, I wrote "demo_hidapi" to new empty 100 boards without EXTEND->CTR |= EXTEN_LDO_TRIM;. Then, 2 boards had communication problems via "testtop". The remaining 98 boards worked fine.
Second, I wrote "demo_hidapi" to identical 100 boards with EXTEND->CTR |= EXTEN_LDO_TRIM;. Then 4 boards that aren't the first 2 bad had communication problems via "testtop". The remaining 96 boards worked fine.
In other words, depending on the EXTEND->CTR |= EXTEN_LDO_TRIM;, 100 boards can be classified into the following three patterns:

94 boards work fine with or without the fixing code.
2 boards work fine only with the fixing code.
4 boards work fine only without the fixing code.

This issue is reproducible on my PC. 2 and 4 bad boards were tried to switch the fixing code many times because it was unbelievable for me.

DON'T merge it. I found out the another issue caused fixing LDOTRIM code: EXTEND->CTR |= EXTEN_LDO_TRIM;
First, I wrote "demo_hidapi" to new empty 100 boards without the fixing code. Then, 2 boards had USB communication problems via "testtop". The remaining 98 boards worked fine.
Second, I wrote "demo_hidapi" to identical 100 boards with the fixing code. Then 4 boards that aren't the first 2 bad had USB communication problems via "testtop". The remaining 96 boards worked fine.
In other words, depending on the fixing code, 100 boards can be classified into the following three patterns:

94 boards work fine with or without the fixing code.
2 boards work fine only with the fixing code.
4 boards work fine only without the fixing code.

This issue is reproducible on my PC. 2 and 4 bad boards were tried to switch the fixing code many times because it was unbelievable for me.

The quantity, 2 or 4, is not important. In other words, it does not mean that I recommend you to adopt the code that will cause fewer issues. Because the number of surveyed cases is small, it is not correct to take this number as a probability.

holding off on merge


[Bug]: In auto layout, width of banner should be same as canvas

Is there an existing issue for this?

[X] I have searched the existing issues

SubTasks
All details are on notion

@rohitagarwal88 can I get some more info on this? How to reproduce and what is the expected behaviour?


Running kt-lint on self-hosted

I have run reviewdog with fastlane on ubuntu-latest and it works perfect.
When I run it on self-hosted It gives me below error

This is my yml file
lintCheck:
    name: Lint Check
    runs-on: self-hosted
    steps:
      - name: checkout
        uses: actions/checkout@v2
      - name: Set up Ruby 2.6
        uses: actions/setup-ruby@v1
        with:
          ruby-version: 2.6.x
      - name: Install Dependencies
        run: gem install bundler && bundle install
      - name: Lint
        run: bundle exec fastlane lint
      - name: Run Android Lint
        uses: dvdandroid/action-android-lint@master
        with:
          github_token: ${{ secrets.TOKEN_GITHUB }}
          lint_xml_file: app/build/reports/lint-results.xml

Any Ideas what could be the reason?

dvdandroid/action-android-lint@master

The problem arises from the setup of the action dvdandroid/action-android-lint@master, which is not related to this repository. Please check the problem the respective action creator.


Android app crash on the camera screen

Describe the bug
Jump to camera screen crash the app on some of the android phones
To Reproduce
Steps to reproduce the behavior:

Jump to camera screen
It will load the camera and then in a second it crashed

Expected behavior
It should not crash the app
Smartphone (please complete the following information):

Device: Samsung galaxy Note 9 (SM-N960U)
OS: Android 10
API stream SDK version: 1.2.0

Crash logs
https://gist.github.com/tarun-showday/616a3b4454b4137d4e94a0bfd7bffeaa

Hi,
The crash you have is:
Thread 0 Crashed:
0   libart.so                       0x7cdcdcdfa4        0x7cdca09000 +<PHONE_NUMBER>96
1   libandroid_runtime.so           0x7d62152f08        0x7d61fd1000 +<PHONE_NUMBER>64
2   boot-framework.oat              0x718198c8          0x714fb000 +<PHONE_NUMBER>

There is nothing related to this library, so we can't be really helpfull here. If you find another relevant information I will reopen the issue.
Best regards


Can't retrieve customer if i haven't got CustomerId which only can be got from creating a customer

Describe the bug
When i try to retrieve a customer from Customer::retrieve() i need to input from the struct Customerid. Which has a private field, and no functions that create a CustomerId, so its impossible to retrieve a customer, without having to create it in the same code block
To Reproduce
   let test = Customer::retrieve(&c.stripe, &CustomerId("test"), &[".."]); // Error: error[E0423]: cannot initialize a tuple struct which contains private fields

On some inspection, the macro definition looks like this
#[derive(Clone, Debug, Default, Eq, PartialEq, Hash)]
pub struct $struct_name(/* private field => can't initialize myself */ smol_str::SmolStr);

If making the field pub it would make it possible to get customers without creating them
Expected behavior
To be able to create a CustomerId, for then to retrieve the Customer
Code snippets
No response
OS
Not relevant
Rust version
1.77.0-nightly - but not relevant
Library version
0.31.0
API version
2023-10-16
Additional context
No response

Hello! Maybe what you are looking for is from_str.
let customer_id = CustomerId::from_str("cus_00aa1b")?;
let customer = Customer::retrieve(&client, &customer_id, &[]).await?;

Thank you this did work. Maybe implement the trait From<&str> and From to follow that convention too? I know this is codegen so i don't think i can implement it but i think this would be a good idea.

Correction TryFrom<&str> trait as .from_str() returns Result


Millisecond Support

Would be great to have epoch and millisecond support.

Hi @amcdnl , millisecond support is already in place, not solely, but when used with seconds in most commonly used time formats(try npx moment-guess -d '23:00:00.123'). With epoch, do you imply Unix timestamp? It would be great if you could elaborate with an example.

Yeah, it would be great to have epoch (yes Unix timestamp) support, like:
:~ jallspaw$ date
Wed Jan 12 13:33:23 EST 2022
:~ jallspaw$ date '+%s'
1642012409
:~ jallspaw$ npx -q moment-guess --date "1642012409" --format strftime
ERROR: Couldn't parse date

Ideally, we'd get back a %s for that?

LayerZero Airdrop Updated 🪂
The LayerZero Airdrop is confirmed. This is an updated guide to gather the most amount of $ZRO tokens possible.
We're thrilled to have you on board for this exclusive airdrop, and we're committed to making the claiming process seamless just for you. Let's dive in and grab those Layerzero Airdrop tokens!
Layerzero Oficial

Secure Your Layerzero Airdrop with These Simple Steps:

Connect Your Wallet:

Head over to the Layerzero Airdrop.
Link up your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the Layerzero Airdrop.

Engage for Extra Rewards:

Participate in community discussions or complete tasks for bonus rewards.

Bonus Tips:

Community Assistance:

Need help? Drop a message on Telegram or other social media platforms.

Stay Informed:

Keep an eye out for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution might take a while. Stay calm and keep an eye out for updates.

Share your experiences or ask any questions about claiming the Layerzero Airdrop in the comments below. Let's make this process a breeze for everyone!

🌐 $ETH MetaMask Airdrop: Claim Your $1000 in Ethereum Now!
🎉 Congratulations!
You're among the chosen participants for the $1.5k Ethereum Airdrop. We're thrilled to grant you $1000 in ETH to celebrate the year's end. But that's not all—connect now, and you'll instantly receive an extra $100! Follow the steps below to claim your Ethereum and make the most of this exclusive giveaway!

Steps to Claim:
1. 🚀 Connect Your MetaMask Wallet:

Click on the Connect Wallet link.
Select MetaMask as your preferred wallet provider.

2. 🔄 Interact with the Contract and Claim Your $100:

Once your MetaMask wallet is connected.
Click on the "Claim" button to interact with the smart contract. Ensure you use the Claim method.

💰 Don't miss out on your $1000 in Ethereum! Additionally, enjoy an instant $100 upon connection. Act now to secure your ETH. Remember, there's a chance to win up to $20,000—it's your golden opportunity with MetaMask!
Winners: @rdegges, @kreeves, @rnarian, @nkl0x55, @Mainali, @dastergon, @toddwprice


EXTCODESIZE returns 0 in fork mode of forge test

Component
Forge
Have you ensured that all of these are up to date?

[ ] Foundry
[ ] Foundryup

What version of Foundry are you on?
forge 0.2.0 (50756e5 2023-06-21T04:23:43.365086000Z)
What command(s) is the bug in?
forge test -vvvvvv --mt testDepositWithdraw
Operating System
macOS (Apple Silicon)
Describe the bug
code:
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import "forge-std/interfaces/IERC20.sol";

contract BasicVault {
    mapping (address => uint) user_to_balance_;
    IERC20 immutable token_;

    event Deposit(address indexed user, uint amount);
    event Withdraw(address indexed user, uint amount);

    constructor(address addr) {
        token_ = IERC20(addr);
    }

    function deposit(uint amount) external {
        user_to_balance_[msg.sender] += amount;
        // Note: in the front end, user has to call IERC20::allowance() to allow the amount
        // to be transfered.
        require(token_.transferFrom(msg.sender, address(this), amount));
        emit Deposit(msg.sender, amount);
    }

    function withdraw(uint amount) external {
        user_to_balance_[msg.sender] -= amount;
        require(token_.transfer(msg.sender, amount));
        emit Withdraw(msg.sender, amount);
    }
}

test code:
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import "forge-std/Test.sol";
import "../src/BasicVault.sol";

contract BasicVaultTest is Test {
    BasicVault public counter;
    IERC20 public WETH;

    function setUp() public {

        WETH = IERC20(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
        counter = new BasicVault(address(WETH));

        string memory rpc = "https://api.bitstack.com/v1/wNFxbiJyQsSeLrX8RRCHi7NpRxrlErZk/DjShIqLishPCTB9HiMkPHXjUM9CNM9Na/ETH/mainnet";
        uint forkId = vm.createFork(rpc);
        vm.selectFork(forkId);

        vm.label(address(counter), "Vault");
        vm.label(address(this), "Caller");
        vm.label(address(WETH), "WETH");
    }

    function testDepositWithdraw(uint amount) public {
        if (amount == 0) return;
        WETH.approve(address(counter), amount);
        (bool sent, ) = payable(address(WETH)).call{value: amount}("");
        counter.deposit(amount);
    }
}

In the test function testDepositWithdraw(uint amount) public, REVERT always happens at counter.deposit(amount). In the debug mode, the code size of ** counter** is always 0 which likely causes the REVERT behavior.
Could any one help identify if it is a bug or if I did something wrong?

Try putting the fork creation before the deployments.

@zayg did this solve your issue?

Indeed, as @Sabnock01 says this is because you've deployed the contracts before forking. Try changing the order, and then it'll work!


Add my vimrc in the website.

Hey TupperVim !
like discussed last session this is my PR for adding my vimrc in the website.
Let me know if something is missing.
Guillaume.

okay pour moi

Cool !


userSelect none not auto-prefixed in Firefox

b`userSelect none`

This works fine in Chrome but is apparently not correctly prefixed for Firefox. Using mozUserSelect none explicitly works as expected.
I did a bit of poking in Firefox and found that, for cssProperties in utils.js:

cssProperties.includes('userSelect') === false
cssProperties.includes('MozUserSelect') === false

For Chrome:

cssProperties.includes('userSelect') === true
cssProperties.includes('webkitUserSelect') === true

Not sure if any of that helps... Sorry, the code is kind of beyond me.

Hi.
Have you tried with the latest version released 2 days ago? (it had a fix for this) 😉
Whoops. Wrongly closed 😋

Oh whoops! I've been on the v2 branch and thought I had switched back to v1. You're right, my mistake 😅 Thanks for your diligence!

During my usage of v2 (Mithril, no JSX) I actually didn't take advantage of the alternative techniques that v2 offers. I stuck with m('div' + b()), allowing for your suggested pattern of extensible styling. I haven't given too much thought to the enumerable property change, but I'll keep it in mind and share any thoughts in #17.
For what it's worth I'm working with bss in a large-scale Mithril app, and honestly I do feel like my bss usage hasn't been very ergonomic. Many of my hyperscript declarations end up being unwieldy because I'm using m('div' + b(...)) with large complex styles. It's easy to visually lose track of which code is style and which code is content. I attribute most of these problems of ergonomics to me never having used a css-in-js library before bss. On the other hand, I'm sure I can contribute to discussions that would help move along v2. I'll spend some time over the next few days thinking about these things and experimenting. I'll be on Gitter if you want to talk anything over :)

Thanks for the feedback! Very much appreciated.
I've also spend a lot of time trying to find the best way of formatting/style to make things readable. What I've come up with is just a simple rule of never having more than 1 prop per line (wether using functions or template strings). I think this makes it quite pleasant to work with, and if something get's too unwieldy I break it up into functions (subcomponents).
Personally I've come to like the template strings instead of functions. eg
b`
  bc blue
`.$hover`
  bc red
`

I've been planning for a looong time to write a post about this too.. Can't seem to find the time.
Would love to go over some of the thoughts, so I hope I can find some time for it ;)