PDD fails in ugly way if puzzle line is followed by another (not puzzle) comment

In my Python file I have:
    # @todo #0 uncomment following
    # self.__cache(stats)

After running pdd, it shows:
/var/lib/gems/2.3.0/gems/pdd-0.17.3/lib/pdd/source.rb:143:in `rescue in puzzles': ["in /home/piotrek/dsp/code/calculatingSummary.py", #<PDD::Error: Space expected>] (PDD::Error)
        from /var/lib/gems/2.3.0/gems/pdd-0.17.3/lib/pdd/source.rb:141:in `puzzles'
        from /var/lib/gems/2.3.0/gems/pdd-0.17.3/lib/pdd.rb:97:in `block (3 levels) in xml'
        from /var/lib/gems/2.3.0/gems/pdd-0.17.3/lib/pdd.rb:96:in `each'
        from /var/lib/gems/2.3.0/gems/pdd-0.17.3/lib/pdd.rb:96:in `block (2 levels) in xml'
        from /var/lib/gems/2.3.0/gems/nokogiri-1.7.1/lib/nokogiri/xml/builder.rb:391:in `insert'
        from /var/lib/gems/2.3.0/gems/nokogiri-1.7.1/lib/nokogiri/xml/builder.rb:375:in `method_missing'
        from /var/lib/gems/2.3.0/gems/pdd-0.17.3/lib/pdd.rb:95:in `block in xml'
        from /var/lib/gems/2.3.0/gems/nokogiri-1.7.1/lib/nokogiri/xml/builder.rb:293:in `initialize'
        from /var/lib/gems/2.3.0/gems/pdd-0.17.3/lib/pdd.rb:93:in `new'
        from /var/lib/gems/2.3.0/gems/pdd-0.17.3/lib/pdd.rb:93:in `xml'
        from /var/lib/gems/2.3.0/gems/pdd-0.17.3/bin/pdd:90:in `<top (required)>'
        from /usr/local/bin/pdd:23:in `load'
        from /usr/local/bin/pdd:23:in `<main>'

After inserting a blank line between these two, everything works fine.
I'm not sure if this is an incorrect behaviour, but for sure the error message is very poor - I think it should print at least line number with malformed puzzle.

@yegor256 please, pay attention to this issue

@rultor release, tag is 0.17.5

@rultor release, tag is 0.17.5

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.17.5

@pchmielowski @yegor256 Oops, I failed. You can see the full log here (spent 2min)
Usage of loopback devices is strongly discouraged for production use.   Done

Building dependency tree... 0%

Building dependency tree... 0%

Building dependency tree... 50%

Building dependency tree... 50%

Building dependency tree

Reading state information... 0%

Reading state information... 0%

Reading state information... Done

libmagic-dev is already the newest version.
libmagic1 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+ sudo gem install pdd
Fetching: mini_portile2-2.1.0.gem
Fetching: mini_portile2-2.1.0.gem ( 87%)
Fetching: mini_portile2-2.1.0.gem (100%)
Fetching: mini_portile2-2.1.0.gem (100%)
Fetching: nokogiri-1.7.1.gem
Fetching: nokogiri-1.7.1.gem (  1%)
Fetching: nokogiri-1.7.1.gem (  2%)
Fetching: nokogiri-1.7.1.gem (  3%)
Fetching: nokogiri-1.7.1.gem (  4%)
Fetching: nokogiri-1.7.1.gem (  5%)
Fetching: nokogiri-1.7.1.gem (  6%)
Fetching: nokogiri-1.7.1.gem (  7%)
Fetching: nokogiri-1.7.1.gem (  8%)
Fetching: nokogiri-1.7.1.gem (  9%)
Fetching: nokogiri-1.7.1.gem ( 10%)
Fetching: nokogiri-1.7.1.gem ( 11%)
Fetching: nokogiri-1.7.1.gem ( 12%)
Fetching: nokogiri-1.7.1.gem ( 13%)
Fetching: nokogiri-1.7.1.gem ( 14%)
Fetching: nokogiri-1.7.1.gem ( 15%)
Fetching: nokogiri-1.7.1.gem ( 16%)
Fetching: nokogiri-1.7.1.gem ( 17%)
Fetching: nokogiri-1.7.1.gem ( 18%)
Fetching: nokogiri-1.7.1.gem ( 19%)
Fetching: nokogiri-1.7.1.gem ( 20%)
Fetching: nokogiri-1.7.1.gem ( 21%)
Fetching: nokogiri-1.7.1.gem ( 22%)
Fetching: nokogiri-1.7.1.gem ( 23%)
Fetching: nokogiri-1.7.1.gem ( 24%)
Fetching: nokogiri-1.7.1.gem ( 25%)
Fetching: nokogiri-1.7.1.gem ( 26%)
Fetching: nokogiri-1.7.1.gem ( 27%)
Fetching: nokogiri-1.7.1.gem ( 28%)
Fetching: nokogiri-1.7.1.gem ( 29%)
Fetching: nokogiri-1.7.1.gem ( 30%)
Fetching: nokogiri-1.7.1.gem ( 31%)
Fetching: nokogiri-1.7.1.gem ( 32%)
Fetching: nokogiri-1.7.1.gem ( 33%)
Fetching: nokogiri-1.7.1.gem ( 34%)
Fetching: nokogiri-1.7.1.gem ( 35%)
Fetching: nokogiri-1.7.1.gem ( 36%)
Fetching: nokogiri-1.7.1.gem ( 37%)
Fetching: nokogiri-1.7.1.gem ( 38%)
Fetching: nokogiri-1.7.1.gem ( 39%)
Fetching: nokogiri-1.7.1.gem ( 40%)
Fetching: nokogiri-1.7.1.gem ( 41%)
Fetching: nokogiri-1.7.1.gem ( 42%)
Fetching: nokogiri-1.7.1.gem ( 43%)
Fetching: nokogiri-1.7.1.gem ( 44%)
Fetching: nokogiri-1.7.1.gem ( 45%)
Fetching: nokogiri-1.7.1.gem ( 46%)
Fetching: nokogiri-1.7.1.gem ( 47%)
Fetching: nokogiri-1.7.1.gem ( 48%)
Fetching: nokogiri-1.7.1.gem ( 49%)
Fetching: nokogiri-1.7.1.gem ( 50%)
Fetching: nokogiri-1.7.1.gem ( 51%)
Fetching: nokogiri-1.7.1.gem ( 52%)
Fetching: nokogiri-1.7.1.gem ( 53%)
Fetching: nokogiri-1.7.1.gem ( 54%)
Fetching: nokogiri-1.7.1.gem ( 55%)
Fetching: nokogiri-1.7.1.gem ( 56%)
Fetching: nokogiri-1.7.1.gem ( 57%)
Fetching: nokogiri-1.7.1.gem ( 58%)
Fetching: nokogiri-1.7.1.gem ( 59%)
Fetching: nokogiri-1.7.1.gem ( 60%)
Fetching: nokogiri-1.7.1.gem ( 61%)
Fetching: nokogiri-1.7.1.gem ( 62%)
Fetching: nokogiri-1.7.1.gem ( 63%)
Fetching: nokogiri-1.7.1.gem ( 64%)
Fetching: nokogiri-1.7.1.gem ( 65%)
Fetching: nokogiri-1.7.1.gem ( 66%)
Fetching: nokogiri-1.7.1.gem ( 67%)
Fetching: nokogiri-1.7.1.gem ( 68%)
Fetching: nokogiri-1.7.1.gem ( 69%)
Fetching: nokogiri-1.7.1.gem ( 70%)
Fetching: nokogiri-1.7.1.gem ( 71%)
Fetching: nokogiri-1.7.1.gem ( 72%)
Fetching: nokogiri-1.7.1.gem ( 73%)
Fetching: nokogiri-1.7.1.gem ( 74%)
Fetching: nokogiri-1.7.1.gem ( 75%)
Fetching: nokogiri-1.7.1.gem ( 76%)
Fetching: nokogiri-1.7.1.gem ( 77%)
Fetching: nokogiri-1.7.1.gem ( 78%)
Fetching: nokogiri-1.7.1.gem ( 79%)
Fetching: nokogiri-1.7.1.gem ( 80%)
Fetching: nokogiri-1.7.1.gem ( 81%)
Fetching: nokogiri-1.7.1.gem ( 82%)
Fetching: nokogiri-1.7.1.gem ( 83%)
Fetching: nokogiri-1.7.1.gem ( 84%)
Fetching: nokogiri-1.7.1.gem ( 85%)
Fetching: nokogiri-1.7.1.gem ( 86%)
Fetching: nokogiri-1.7.1.gem ( 87%)
Fetching: nokogiri-1.7.1.gem ( 88%)
Fetching: nokogiri-1.7.1.gem ( 89%)
Fetching: nokogiri-1.7.1.gem ( 90%)
Fetching: nokogiri-1.7.1.gem ( 91%)
Fetching: nokogiri-1.7.1.gem ( 92%)
Fetching: nokogiri-1.7.1.gem ( 93%)
Fetching: nokogiri-1.7.1.gem ( 94%)
Fetching: nokogiri-1.7.1.gem ( 95%)
Fetching: nokogiri-1.7.1.gem ( 96%)
Fetching: nokogiri-1.7.1.gem ( 97%)
Fetching: nokogiri-1.7.1.gem ( 98%)
Fetching: nokogiri-1.7.1.gem ( 99%)
Fetching: nokogiri-1.7.1.gem (100%)
Fetching: nokogiri-1.7.1.gem (100%)
ERROR:  Error installing pdd:
	nokogiri requires Ruby version >= 2.1.0.
container c71ed332d214f51ce5367a6eabcce203da7e646c05b905298acd1f50650c4d12 is dead
Tue Apr 25 21:10:14 UTC 2017

@rultor release, tag is 0.17.5

@rultor release, tag is 0.17.5

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.17.5

@pchmielowski @yegor256 Oops, I failed.   Done

Building dependency tree... 0%

Building dependency tree... 0%

Building dependency tree... 50%

Building dependency tree... 50%

Building dependency tree

Reading state information... 0%

Reading state information... 0%

Reading state information... Done

libmagic-dev is already the newest version.
libmagic1 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+ sudo -i gem install pdd
Fetching: slop-4.4.1.gem
Fetching: slop-4.4.1.gem ( 11%)
Fetching: slop-4.4.1.gem ( 26%)
Fetching: slop-4.4.1.gem ( 41%)
Fetching: slop-4.4.1.gem ( 56%)
Fetching: slop-4.4.1.gem ( 71%)
Fetching: slop-4.4.1.gem ( 85%)
Fetching: slop-4.4.1.gem (100%)
Fetching: slop-4.4.1.gem (100%)
Successfully installed slop-4.4.1
Fetching: pdd-0.17.4.gem
Fetching: pdd-0.17.4.gem (  1%)
Fetching: pdd-0.17.4.gem (  2%)
Fetching: pdd-0.17.4.gem (  3%)
Fetching: pdd-0.17.4.gem (  4%)
Fetching: pdd-0.17.4.gem (  5%)
Fetching: pdd-0.17.4.gem (  6%)
Fetching: pdd-0.17.4.gem (  7%)
Fetching: pdd-0.17.4.gem (  8%)
Fetching: pdd-0.17.4.gem (  9%)
Fetching: pdd-0.17.4.gem ( 10%)
Fetching: pdd-0.17.4.gem ( 15%)
Fetching: pdd-0.17.4.gem ( 20%)
Fetching: pdd-0.17.4.gem ( 25%)
Fetching: pdd-0.17.4.gem ( 30%)
Fetching: pdd-0.17.4.gem ( 35%)
Fetching: pdd-0.17.4.gem ( 40%)
Fetching: pdd-0.17.4.gem ( 45%)
Fetching: pdd-0.17.4.gem ( 50%)
Fetching: pdd-0.17.4.gem ( 55%)
Fetching: pdd-0.17.4.gem ( 60%)
Fetching: pdd-0.17.4.gem ( 65%)
Fetching: pdd-0.17.4.gem ( 70%)
Fetching: pdd-0.17.4.gem ( 75%)
Fetching: pdd-0.17.4.gem ( 80%)
Fetching: pdd-0.17.4.gem ( 85%)
Fetching: pdd-0.17.4.gem ( 90%)
Fetching: pdd-0.17.4.gem ( 95%)
Fetching: pdd-0.17.4.gem (100%)
Fetching: pdd-0.17.4.gem (100%)
Successfully installed pdd-0.17.4
Parsing documentation for slop-4.4.1
Installing ri documentation for slop-4.4.1
Parsing documentation for pdd-0.17.4
Installing ri documentation for pdd-0.17.4
Done installing documentation for slop, pdd after 0 seconds
2 gems installed
+ sudo -i bundle install
\u001b[33mDon't run Bundler as root. Bundler can ask for sudo if it is needed, and
installing your bundle as root will break this application for all non-root
users on this machine.\u001b[0m
\u001b[31mCould not locate Gemfile or .bundle/ directory\u001b[0m
container 0dfebf1a52572222616e1e850290c13ae1accf0c1a0c0b2c192e47dbd547ab61 is dead
Wed Apr 26 14:39:31 UTC 2017

@rultor release, tag is 0.17.5

@rultor release, tag is 0.17.5

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.17.5

@pchmielowski @yegor256 Oops, I failed. You can see the full log here (spent 4min)
    \u001b[32mWhen I run bin/pdd with "\u001b[32m\u001b[1m--exclude=test.txt -v -f=/dev/null\u001b[0m\u001b[0m\u001b[32m"\u001b[90m # features/step_definitions/steps.rb:72\u001b[0m\u001b[0m
    \u001b[32mThen Stdout contains "\u001b[32m\u001b[1mexcluding test.txt\u001b[0m\u001b[0m\u001b[32m"\u001b[90m                    # features/step_definitions/steps.rb:78\u001b[0m\u001b[0m
    \u001b[32mThen Exit code is zero\u001b[90m                                       # features/step_definitions/steps.rb:97\u001b[0m\u001b[0m

Feature: Using .pdd config file
  As a source code writer I want to be able to
  call PDD as a command line tool and configure
  it via .pdd configuration file

  Scenario: Simple puzzles collecting\u001b[90m                          # features/uses_config.feature:6\u001b[0m
    \u001b[32mGiven I have a "\u001b[32m\u001b[1mSample.java\u001b[0m\u001b[0m\u001b[32m" file with content:\u001b[90m            # features/step_definitions/steps.rb:45\u001b[0m\u001b[0m
\u001b[32m      """\u001b[0m
\u001b[32m      @todo #13 Let's do it later, dude\u001b[0m
\u001b[32m      """\u001b[0m
    \u001b[32mAnd I have a "\u001b[32m\u001b[1m.pdd\u001b[0m\u001b[0m\u001b[32m" file with content:\u001b[90m                     # features/step_definitions/steps.rb:45\u001b[0m\u001b[0m
\u001b[32m      """\u001b[0m
\u001b[32m      --verbose\u001b[0m
\u001b[32m      --source=.\u001b[0m
\u001b[32m      --file=out.xml\u001b[0m
\u001b[32m      """\u001b[0m
fatal: Not a git repository (or any of the parent directories): .git
    \u001b[32mWhen I run bin/pdd with "\u001b[32m\u001b[1m\u001b[0m\u001b[0m\u001b[32m"\u001b[90m                                 # features/step_definitions/steps.rb:72\u001b[0m\u001b[0m
    \u001b[32mThen Exit code is zero\u001b[90m                                     # features/step_definitions/steps.rb:97\u001b[0m\u001b[0m
    \u001b[32mAnd Stdout contains "\u001b[32m\u001b[1mreading .\u001b[0m\u001b[0m\u001b[32m"\u001b[90m                            # features/step_definitions/steps.rb:78\u001b[0m\u001b[0m
    \u001b[32mAnd XML file "\u001b[32m\u001b[1mout.xml\u001b[0m\u001b[0m\u001b[32m" matches "\u001b[32m\u001b[1m/puzzles[count(puzzle)=1]\u001b[0m\u001b[0m\u001b[32m"\u001b[90m # features/step_definitions/steps.rb:88\u001b[0m\u001b[0m

21 scenarios (\u001b[32m21 passed\u001b[0m)
90 steps (\u001b[32m90 passed\u001b[0m)
0m6.390s
Coverage report generated for Cucumber Features, Unit Tests to /home/r/repo/coverage. 226 / 226 LOC (100.0%) covered.
\u001b[33m[Coveralls] Outside the Travis environment, not sending data.\u001b[0m
Running RuboCop...
/home/r/repo/.rubocop.yml: Style/ClassLength has the wrong namespace - should be Metrics
Inspecting 23 files
\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m\u001b[32m.\u001b[0m

23 files inspected, \u001b[32mno offenses\u001b[0m detected
grep -q -r '2014-2017'     --include '*.rb'     --include '*.txt'     --include 'Rakefile'     .
+ rm -rf '*.gem'
+ sed -i 's/1\.0\.snapshot//g' lib/pdd/version.rb
+ git add lib/pdd/version.rb
+ git commit -m 'version set to '
[__rultor c39c64b] version set to
 1 file changed, 1 insertion(+), 1 deletion(-)
+ gem build pdd.gemspec
WARNING:  pessimistic dependency on slop (~> 4.4.1) may be overly strict
  if slop is semantically versioned, use:
    add_runtime_dependency 'slop', '~> 4.4', '>= 4.4.1'
WARNING:  See http://guides.rubygems.org/specification-reference/ for help
  Successfully built RubyGem
  Name: pdd
  Version:
  File: pdd-.gem
+ chmod 0600 ../rubygems.yml
+ gem push pdd-.gem --config-file ../rubygems.yml
Pushing gem to https://rubygems.org...
There was a problem saving your gem: Number is invalid
container 3bf62329297a1e79ca9fba0ffb937839b6608cd4a28ed13c91a91d96a86fc177 is dead
Wed Apr 26 15:30:21 UTC 2017

@pchmielowski try version 0.17.5 -- the problem is fixed there.

@pchmielowski I'm closing it, the problem is gone, in my opinion. If you see it again, please submit a new ticket. Thanks for using the tool and your contribution!

Oops! There is no order for job gh:yegor256/pdd#63.

Oops! Job gh:yegor256/pdd#63 is not in scope.


TypeError running gulp

I started with a fresh clone of the repository and received the following TypeError when running gulp.
Unhandled rejection TypeError: __html.replace is not a function
    at /Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/list-stylesheets/index.js:27:33
    at Array.forEach (<anonymous>)
    at encodeCodeBlocks (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/list-stylesheets/index.js:24:33)
    at encodeEntities (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/list-stylesheets/index.js:45:20)
    at module.exports (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/list-stylesheets/index.js:52:22)
    at module.exports (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/extract-css/index.js:11:16)
    at /Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/inline-css/lib/inlineContent.js:15:9
    at tryCatcher (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/bluebird/js/main/util.js:26:23)
    at Promise._resolveFromResolver (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/bluebird/js/main/promise.js:483:31)
    at new Promise (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/bluebird/js/main/promise.js:71:37)
    at inlineContent (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/inline-css/lib/inlineContent.js:8:12)
    at /Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/inline-css/index.js:27:9
    at tryCatcher (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/bluebird/js/main/util.js:26:23)
    at Promise._resolveFromResolver (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/bluebird/js/main/promise.js:483:31)
    at new Promise (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/bluebird/js/main/promise.js:71:37)
    at module.exports (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/inline-css/index.js:8:12)

Changing the gulp-inline-css devDependency from<EMAIL_ADDRESS>to ^3.3.0 seems to have resolved the issue.

Hi. There is a reason why a bespoke version of gulp-inline-css is used, because it has a few bugs/quirks in it, which I fixed but didn't go to upstream. I'll certainly have a look and see what the issue is.

I have rm -rf node_modules and ran npm i again, then tested gulp and it worked OK. Can you confirm your node/npm version?
I'm running:
Node: v6.3.0
npm: 5.3.0

Currently running:
Node v9.6.1
npm: 5.8.0
Issue also occurs with Node LTS version:
Node v8.10.0
npm 5.6.0
Same issues occur on the 'develop' branch, which I am currently using.

That's strange, I can't replicate the issue here at all. Can you let me know the specific task this error is thrown after. I'd imagine, its likely one of the CSS related gulp tasks.

Full trace below:
schopenhauer:HTML-Email-Boilerplate-Redux jcass$ ./node_modules/.bin/gulp
[12:37:37] Using gulpfile ~/PhpstormProjects/HTML-Email-Boilerplate-Redux/gulpfile.js
[12:37:37] Starting 'clean'...
[12:37:37] Finished 'clean' after 20 ms
[12:37:37] Starting 'git-rev-info'...
[12:37:37] Finished 'git-rev-info' after 19 ms
[12:37:37] Starting 'build-html-samples'...
Unhandled rejection TypeError: __html.replace is not a function
    at /Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/list-stylesheets/index.js:27:33
    at Array.forEach (<anonymous>)
    at encodeCodeBlocks (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/list-stylesheets/index.js:24:33)
    at encodeEntities (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/list-stylesheets/index.js:45:20)
    at module.exports (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/list-stylesheets/index.js:52:22)
    at module.exports (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/extract-css/index.js:11:16)
    at /Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/gulp-inline-css/node_modules/inline-css/lib/inlineContent.js:15:9
    at tryCatcher (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/gulp-inline-css/node_modules/bluebird/js/main/util.js:26:23)
    at Promise._resolveFromResolver (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/gulp-inline-css/node_modules/bluebird/js/main/promise.js:483:31)
    at new Promise (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/gulp-inline-css/node_modules/bluebird/js/main/promise.js:71:37)
    at inlineContent (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/gulp-inline-css/node_modules/inline-css/lib/inlineContent.js:8:12)
    at /Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/gulp-inline-css/node_modules/inline-css/index.js:27:9
    at tryCatcher (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/gulp-inline-css/node_modules/bluebird/js/main/util.js:26:23)
    at Promise._resolveFromResolver (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/gulp-inline-css/node_modules/bluebird/js/main/promise.js:483:31)
    at new Promise (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/gulp-inline-css/node_modules/bluebird/js/main/promise.js:71:37)
    at module.exports (/Users/jcass/PhpstormProjects/HTML-Email-Boilerplate-Redux/node_modules/gulp-inline-css/node_modules/inline-css/index.js:8:12)

The only thing I'm doing differently that I can think of is that I did not install gulp globally, and that I am using nvm to mange node.js versions on OSX.


Add support for Linux and MacOS

v1.1.0 seems to run on Linux. Did not test if the device stays up or not


docs(paeckchen): add appveyor badge

Coverage remained the same at 100.0% when pulling 7d1e48013c00e950891b43f3dfb892b55a9a297b on appveyor2 into 9e044ac33c67412528ee14a810002dbc4520589a on master.


Help Wanted: Ways to add alt text are unclear

As I found out in https://github.com/mattermost/mattermost-server/issues/19193, there is at least some way to add alt text but it's not very discoverable.
Adding a docs section dedicated to accessibility or making "alt text" an easier to search for term could help make this easier.

Hi @myasonik - Would you be open to creating a PR with this documentation update?

Sorry, I don't think that's something I'll have time for

Thanks for letting me know, @myasonik!

@myasonik, is this still available?

I don't use Mattermost anymore and don't work there so I've got no idea. @cwarnermm would be the person to ask.

Hello, @rukundob451! We'd welcome a docs PR from you to address this docs issue.

Hello, @rukundob451! We'd welcome a docs PR from you to address this docs issue.

Alright @cwarnermm, going to look into it.

@cwarnermm - is this issue still relevant, and if so what would you like to be done here (I looked at the attached issue)?

Thanks, @TomerPacific. Adding the ability to specify ALT text in Mattermost is a product feature request. I'm going to close this issue.


Allow user to create pipeline video sources

Consider the feedback of fail/success implicit on the above diagram.

A second idea - much simpler - could be to add the field custom_pipeline in the extended_configuration, which would be used by create_stream() when it is not null/empty. In the front-end, enabling "Manual mode" would erase encode, size, and FPS fields, to be clear that that fields wouldn't be used in conjunction with the custom_pipeline field.


Retry cache installation attempts on Windows

Introduce a simple Retry class that retries an operation until it succeeds to a fixed number of attempts.  It was easier to pull this out as a library class for testing purposes.  The Retry class is used in CacheStorageWriter to retry the move of a downloaded blob into place in the cache.  This operation may fail on Windows because (we suspect) of anti-virus software and/or Windows Defender.
Fixes #1855 and #1438, #1635, #1763

One high-level feedback: I think we should print out a warning prominently whenever Jib does a retry, and especially for Windows, we include a message about possible anti-virus interference. As I said a while ago, this anti-virus may happen pretty often, if not always to some users, and they may just get the false impression that Jib is slower than other tools. For this kind of repeated failures, I think we should try to make the user correct the situation or at least let them know the potential performance hit.
That said, now I think it would be ideal if Jib would not have to be worried about potential inference of anti-virus, which may require re-designing the cache. For example, I think Maven will most likely be free of this concern, as it must have been battle-tested and it would be sad if people have to turn off anti-virus whenever they have to use Maven.

Agreed — I'm just not sure how to log this. I guess using j.u.logging should be enough in this case: it can be redirected if necessary.
Maven downloads directly into the repository location, and people do encounter repository corruption (we did with CT4E, if you remember, because we weren't obtaining the right lock). search for .lastUpdated.

Maven downloads directly into the repository location, and people do encounter repository corruption (we did with CT4E, if you remember, because we weren't obtaining the right lock). search for .lastUpdated.

This is not really related to this issue, but I remember the issue. I was conjecturing that it is perhaps due to explicitly executing Maven (for example, our CT4E code runs mvn package programmatically on a sample test project actually open in a test Eclipse instance that runs as Junis tests) inside Eclipse and this somehow interferes with m2e inside Eclipse during tests. But I may be wrong, of course.
But my point is not really about corruption. Corruption sounds like an independent issue that should not happen and be fixed if it can ever happen. Rather, I am saying that essential and popular tools like Maven, Gradle, etc., does not require that you disable anti-virus to use it (at all or efficiently). So, in the same general sense, if it is technically feasible to make Jib free from being affected by anti-virus, I think that would be ideal from the user perspective.

And not that we should make Jib ideal right now. We will go for this retry approach now. I just wish in the future we could eventually make anti-virus a non-issue.

I see what your saying. Excellent point. I wonder how many people run maven in parallel against the same local repository. Maybe we should be placing the Jib cache inside the maven.local.repo...

Looks good. Any idea how we can simulate this? Use a debugger or something to pause and go lock the file?

I tried reproducing these build errors in my Windows VM (which had no anti-virus, but did have Windows Defender, I believe), but was unsuccessful.

I'll merge this and ping the associated issues to ask if the affected users can try building from HEAD.

NB: #1438 involves errors removing the temp directory and isn't fixed by this PR.


[BUG] spec-hash only found in appliedwork not in work

There is no way for someone debugging the system to understand whether the spec in Work match the spec-hash in AppliedWork.
❯ k get deployment -o yaml
apiVersion: v1
items:

apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
multicluster.x-k8s.io/spec-hash: 923e114d98ff748ddb45f8a3d58a529255aac363bbbd76c3238d6573d40dba85

The specHash is not needed in Work object, whenever manifests are updated / created, a new SpecHash is generated for each spec of Work, which then is compared to the spec-Hash in appliedWork.


Cannot install tensorflow 2.3.0

Click to expand!
Issue Type
Build/Install
Source
binary
Tensorflow Version
2.3.0
Custom Code
No
OS Platform and Distribution
Windows 10
Mobile device
No response
Python version
3.7
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
I cannot, for the life of me, figure out how to install tensorflow 2.3.0. I've downgraded to Python 3.7 and have tried every resource I can. I've upgraded pip, installing via pip install tensorflow==2.3.0, and I've even tried downloading the wheels off of the pip site (which gave the explanation that they're not supported on my platform, even though I tried the cp35, cp36, and cp38 windows wheels, which are the only ones I saw).
When running my Python 3.7's pip, I get:
pip install tensorflow==2.3.0
ERROR: No matching distribution found for tensorflow==2.3.0

As well as:
pip install tensorflow
ERROR: Could not find a version that satisfies the requirement tensorflow (from versions: none)
ERROR: No matching distribution found for tensorflow

I specifically need 2.3.0 to work properly with keras-rl. Any help would really be appreciated, as I've scoured every resource on the internet that I can possibly find.

### Standalone code to reproduce the issue

```shell
N/A

Relevant log output
No response

Hi @Denzeduous !
Thanks for sharing your observation. I can replicate this issue in my local windows machine.
Supported version list seems to be  restricted to >2.8.0rc1 and < 2.11 now.
2.3/2.4 version are pretty outdated.
Could you check with 2.8.1 or higher version (<2.11 for pip  or Direct ML plugin for higher version) and let us know.
Attached relevant thread for reference.
Thank you!

Hello mohantym,
Thank you! That seems to be working with keras-rl for now. By chance, do you know what keras version is most compatible with tensorflow 2.8.1? It seems to be having some difficulties now. I know that is technically a different project, so no worries if you can't answer.

@Denzeduous !
You can install 2.8.1 keras for Tensorflow if you are facing any compatibility issues.
Keras and others package version dependencies are mentioned here in setup.py file.
Can we consider this as resolved then.
Thank you!

Yes, thank you so much mohantym! You were a great help!


Typo and need more variables

Typo  ob_php-fpm/docker-entrypoint.sh

71        echo 'max_executionn_time=300'

71       echo 'max_execution_time=300'

Need more variables in .env file.
71        echo 'max_execution_time=300'
82        echo 'upload_max_filesize=50M'
83        echo 'post_max_size=50M'

Hi, thanks for the note. Fixed the typo. If you want to extend with more variables, feel free to make a  PR with the changes.


Suggestion for an upfront-length, compatibly-ordered varint

In this talk at time 39:31, D. Richard Hipp (creator of SQLite)
describes the variable-length integer format used for SQLite’s BTrees.
The format is similar to the format currently described in this
repository, with the differences that the content is stored in
big-endian order and that the ninth byte is entirely filled with content
so that the maximum magnitude is exactly 64 bits.
He describes the result as “a mistake” and “a failure”, and advises
designers of any varint system to consider the following criteria:

The first byte should determine the magnitude of the integer.
The encoded ordering should be compatible with the logical ordering.

In particular, he suggests the following scheme (here, A0 through A8 are
code units to be decoded):

A0
Value

0–240
A0

241–248
240 + 256 × (A0 – 241) + A1

249
2288 + 256 × A1 + A2

250
A1…A3 as a 3-byte big-endian integer

251
A1…A4 as a 4-byte big-endian integer

252
A1…A5 as a 5-byte big-endian integer

253
A1…A6 as a 6-byte big-endian integer

254
A1…A7 as a 7-byte big-endian integer

255
A1…A8 as a 8-byte big-endian integer

It appears that this was important enough for SQLite4 to switch its
varint format to exactly what is described above. More details,
including the decoding and encoding algorithms, appear in the SQLite
docs.
The importance of property (1) is recognized by multihash; this
(according to its README) is why a multihash’s size appears at the
beginning of the hash instead of the end. Without this property, you
can’t skip over elements in a stream; you have to read every byte.
The importance of property (2) is recognized by UTF-8, which has the
analogous property: to compare two UTF-8 encoded codepoints, it suffices
to compare their raw code units. This raises the performance ceiling on
hot-loop operations by removing an encode/decode step, which in turn
enables hardware-accelerated implementations, like repz cmpsb on x86.
The format described above is compatible with raw unsigned 8-bit
integers of value at most 240, so preserves the soft-guarantee in the
multihash specification that “you do not need to implement varints until
the standard multihash table has more than 127 functions.”
Note that this scheme encodes unsigned integers of size up to 64 bits.
As discussed in previous issues (#9), this limitation is a good thing.
Thoughts?
(Posting this given that the README reads, “There is time to discuss the
details of this. All multiformats are far from requiring this varint.”)

(1) thanks @wchargin! this is great to see-- nuggets of wisdom like that are great to surface. since multihash is finally getting to the IETF (thanks @msporny), we should finalize this decision ASAP.
(2) Problem with suggested structure.
We want to have varints that can grow infinitely. No implementations do this, and the implementations call for establishing a soft implementation side bound. But we wanted to avoid setting some limit that would in the future be too small.
(Now of course, we dont expect function tables to need more than 8 bytes worth of entries... so for multihash's use this is not a significant thing)
(2) discussion of criteria above

The first byte should determine the magnitude of the integer.

@wchargin mentions being able to skip the whole multihash value after reading only 1 byte (as opposed to n bytes of varint). definitely useful for us. (Though we still need to check the length of the value, so utility may be limited).

Are there other reasons to have this property?

The encoded ordering should be compatible with the logical ordering.

Richard Hipp mentions this as important for being able to compare integers easily (ie < and >). Multihash's use of these varints is just for the table, where only equality matters. (i mean, it's possible to reason about hash function ranges... but unlikely to do that in a hot path).

do we see a realistic case for multihash function code comparisons (> or <, not =). in a hot path?

other reasons to have this property?

(3) There is another important reason we may want to improve the varints we use: there are other varint structures that are much better for hardware. So if we make a change, we should do the hardware improvement too. I think whatever others do may already be covered by this encoding. (cc @whyrusleeping )
(4) We've been using multihash for a few years so there's a ton of multihashes out there with this varint. BUT since only blake2 has entries above 127 (not many users out there for this), we may be able to change varint without too much disruption. I don't think we can keep the same exact byte values though, which would def break those users.
@whyrusleeping do you know of anybody other than us using blake2 multihashes?

@jbenet as far as I know, nobody is using blake2b hashes yet. However, people could be doing so via ipfs add, so its potentially problematic. One possible solution would be to define blake2 as being the current varint encoding in the new scheme. It kinda sucks, and the exact bytes might not even be valid in the new scheme, but its an option.
As for better varints, I (and @stebalien) have thought at some length about this, and we both are in agreement that having the prefix of the varint be the length of the number is a good idea. Though, we prefer not limiting the size of the varint to 8 bytes (as @jbenet mentioned).
One scheme we talked about was (something like this, probably misremembering a few things, but its similar to the sqlite scheme). For numbers 0-127, use just one byte. If the first bit is set, then the entire first byte (sans that leading bit) becomes the number of bytes the number will use. This allows for a maximum value of something like 2^1016, which is plenty big enough for most usecases. We could even define the 'maximum length' (all bits in the first integer set) to mean use the next byte for additional length, or even values above 64 for the length start implying number lengths of 2^N.
The end result of that conversation was really 'you can optimize a varint scheme for any particular purpose you want, but no varint is going to be perfect for every scenario'

My worry is less others using the hash in go-ipfs and more others using multihashes elsewhere. A quick search turns up at least one user: https://github.com/leeola/fixity/blob/fad04a9deab7b823ea6a560d056c3fb64a881c88/hash.go
We can fork the spec but that would be unfortunate.

Richard Hipp mentions this as important for being able to compare
integers easily (ie < and >). Multihash's use of these varints is
just for the table, where only equality matters. […] other reasons to
have this property?

Is this repository intended to define a general-purpose unsigned varint,
or specifically an unsigned varint to be used only by multiformats?
If a general-purpose varint, then property (2) definitely seems
beneficial. The fact that people will want to sort these varints seems
like sufficient justification to me.
If a multiformats-only varint, then it’s property (2) may well be
superfluous. Reasoning about hash function ranges is a plausible way to
identify (say) the family of blake2b or skein256 hashes, but this does
seem like a pretty niche operation.

if we make a change, we should do the hardware improvement too.

This makes sense to me, though I don’t know what it entails.

As for better varints, I (and @Stebalien) have thought at some length
about this

Great to have your input from experience. I’ll certainly defer to you
(plural) on this issue. :-)

For numbers 0-127, use just one byte. If the first bit is set, then
the entire first byte (sans that leading bit) becomes the number of
bytes the number will use

If we do change schemes, this one also makes sense to me. It has both
desirable properties described above, unless I’m mistaken. (Suggestion:
define the number of additional bytes as (a[0] & 0x7f) + 1, so that a
leading byte of 0x80 makes sense. The max value is then 2^1024 − 1,
stored in 129 bytes each with value 0xff.)
(Toy implementations here.)

One possible solution would be to define blake2 as being the current
varint encoding in the new scheme. It kinda sucks, and the exact bytes
might not even be valid in the new scheme, but its an option.

A good idea, but unfortunately I don’t think that it works in any of the
schemes proposed so far. If I’m reading the table correctly, "0xb2 0x20"
are the code units for blake2-256 (i.e., the numeric value is 6432).
A leading byte of 0xb2 implies a 1-byte varint under SQLite, or a
51-byte varint under why’s proposal (52-byte with my modification),
while we want it to be a 2-byte varint.

Friendly ping—I know that some folks wanted to resolve this quickly.
@whyrusleeping @stebalien: Seems like you two have the most context
here. How do you weigh the benefits of switching to the scheme that Why
proposed against the costs of switching and potentially invalidating
some existing hashes? How would you like to proceed?

Unfortunately, I think the costs are unknown and possibly unknowable, unless we switch and see what breaks. At the very least, we'd need buy-in from @diasdavid and then we may need to reach out to the wider community (this isn't a small change).


Is there any support for case sensitive on column name

Table:
type HrEmployee struct { 	    bun.BaseModel bun:"select:hr_employee"	    ID            int64 bun:"id"	    IsDriver      bool  bun:"isdriver"     }
Query:
err := db.Database(host).NewSelect().Model(&driverList). 		    WhereGroup(" AND ", func(query *bun.SelectQuery) *bun.SelectQuery { 			    return query.Where("isDriver=?", true) 	    }).Scan(ctx)
It's showing an error for the isDriver filed. how can I resolve this issue?
ERROR** #42703 column driver.isdriver does not exist

See https://bun.uptrace.dev/guide/models.html#sql-naming-convention

See https://bun.uptrace.dev/guide/models.html#sql-naming-convention
@vmihailenco problem is this is a microservice and database already created. it's not possible to change the column name.
Any suggestion for this situation?

If you get spurious SQL parser errors, try to quote the identifier with double quotes (backticks for MySQL) to check if the problem goes away.

If you get spurious SQL parser errors, try to quote the identifier with double quotes (backticks for MySQL) to check if the problem goes away.


Block fprint unlock on gdm

SDDM doesnt, but GDM supports login with fingerprint.
SDDM may support this soon too, it was planned for Plasma 6.
A better option would be something like GrapheneOS, which afaik locks the fingerprint after 3 failed attempts.
 It will be more secure though.
Also, fprint-enroll is broken somehow on Silverblue-main-hardened, but I havent tried regular silverblue-main. It works perfectly fine in the TUI, which smells like an upstream bug.

I'm confused by this cause it seems like multiple issues in one :smile:
On the one hand, you're asking for fprint unlock to be blocked for some reason (why?).
On the other hand, you're reporting a bug. Can you please clarify the core goal for this issue?

so, I was

requesting a security hardening of fprintd to lock after less tries (if not already done)
relativizing that request by the fact that the sensor doesnt work well anyways, so not even I can unlock my laptop like that.

I think the default timeout is 2 failed tries at least in the terminal for sudo. This may be different on gdm and also different in plasma and gnome screenlocker.

for 1, I'm confused. if it already locks after a few failures, that seems like desired behavior. potentially https://github.com/secureblue/secureblue/issues/127 is related
for 2, please check upstream silverblue-main like you mentioned and if you can't repro there, reopen this issue. Otherwise this is likely an issue with the package itself and you can report it to the maintainers.

Yes this is a PAM issue. The relevant PAM service stacks are unchanged from Fedora. This hsould be tested on a normal Silverblue VM.


ouroboros-consensus/docs: draft test-consensus-plan.md

After studying relevant parts of the Ouroboros paper and considering possible test suite designs that would include injecting network latencies, I've drafted this document, which arguably contains at least the beginning of a plan :). The current content is dominated by discussions of the intentional departures from the paper's spec and how that makes it difficult to test the paper's properties when injecting network latencies.
This is a rather dense document, so I think we'll need some synchronous communication. For that purpose, would you skim it until you have a sense of which parts you'd like us to talk about first, and then I'll organize a call with a few slides for that topic? Thanks.
Ideally, I've failed to notice some solutions to the problems listed here and we'll find them together, simplifying the challenges as currently laid out. Otherwise, I'm hoping for feedback on the document's overall organization, its explanations (high- and low-level), reprioritization of its content, reprioritization of the listed tasks, etc. Thanks again.
I wrote this document primarily to organize and vet my thoughts on these issues before discussing them with the consensus team. It'll also serve as a catalyst for us to cooperatively develop a plan. And I think it does eventually belong in the repo to archive our test suite design motivations/decisions.

@mrBliss @edsko @dcoutts @nc6 I hope to get feedback from several of you, but I'm guessing it makes the most sense to start with just one, since the first is doomed to find my "rubber ducky"-level mistakes :(
Would anyone like to go first? If you do the skimming I suggested in the PR description, we can start from there. Thanks!

Bit- and priority-rot -- I'll come back to this eventually.


[3pt]  - Add comments counter - Student B

Even if the API gives you the number of comments you will create a specific function to calculate it.
Make sure that the correct number is displayed on the Comments pop up.
Respect the following rules:

Each counter should be implemented as a separate module.
A counter function should look for specific DOM elements (e.g. for the comments counter it should look for comments) and make the counting based on what is actually displayed on the page.
A counter function should cover all the edge cases you can think about.

HI @ikennarichard,
Good job on:
Adding functionality for the comments counter
Adding counting comments script in a module
Fixing linter errors
Best,
Mussie


UILD-428: update API URLs

https://folio-org.atlassian.net/browse/UILD-428

@SKarolFolio what about this API /resource/check/{inventoryId}/supported
do you use it on UI side?

Hi @askhat-abishev, Good catch! /resource/check/{inventoryId}/supported is used by ui-inventory.  I created  https://folio-org.atlassian.net/browse/MODINV-1129 to fix this in ui-inventory.


showIcon documented, but not present in props

Describe the bug
I found that showIcon prop is not working in version 4.10.0. I see this prop on main website, I see it on Github, but I can't use it.
Also showIcon prop is not presented in @types/react-datepicker
To Reproduce
Steps to reproduce the behavior:

install react-datepicker
Use it with prop showIcon

Demo
https://codepen.io/aziaev/pen/vYaoKpv
Expected behavior
Icon is presented on screen and svg dom element is inside of input container. Works on main website:

Screenshots
Prop does not exists, and it's not presented in dom

OS: Windows 10
Chrome

Additional context
Add any other context about the problem here.

Looks like that showIcon prop removed and related classname doesn't added

experiencing same thing

I am seeing the same

I noticed that providing type prop of 'date' 'datetime' or 'time' will display the proper icon

I noticed that providing type prop of 'date' 'datetime' or 'time' will display the proper icon
It is due to yersterdays update but still buggy. Only visible for me with the following css:
.react-datepicker__input-container .react-datepicker__calendar-icon {     padding: unset !important;     top: 10px;     left: 7px; }

I have the same problem

Same here.

datepicker__calendar

Worked for me, need to set showIcon = true and add this to your CSS. Appeared with some padding issues on mine, so set the padding left to 30px with: .react-datepicker__view-calendar-icon input

Since showIcon now resides in @types/react-datepicker, the problem appears to be resolved.
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/6918081f66a51df9eab940d9b690d627467c4401/types/react-datepicker/index.d.ts#L181
( cc. @martijnrusschen )


bug striping result set to one character

This bug was introduced in 99f72b4bf4b5bc207ffd28498f8dcd5de832a66a For a given result query, it returns r[1].strip(), which makes no sense at all, I think this could have been the result of test line not being cleaned up?

That's commit 99f72b4bf4b5bc207ffd28498f8dcd5de832a66a in the querymanager repo. 'Data Lab Admin' made that commit on March 24, 2023. I suppose @mjfitzpatrick used this account?
This change would make sense if r was expected to be a sequence (e.g. a list), and r[1] a string in that list. But is r actually a string already? Maybe it is now (due to some change elsewhere), but was a list back in March? Need to (together please) a) track it down, and b) verify that nothing is broken in querymanager now, by reverting to return qcToString(r).

I think it has always been a string of characters, either in 'text' or byte form, for now I've changed that part back to what was all along. I also have to check the querymanager end as the same original fix has the same thing in another function which is used in querymanager, but I'll look into that more thoroughly on Monday.

On Oct 28, 2023, at 4:50 PM, Robert Nikutta @.***> wrote:
That's commit 99f72b4bf4b5bc207ffd28498f8dcd5de832a66a https://github.com/astro-datalab/querymanager/commit/99f72b4bf4b5bc207ffd28498f8dcd5de832a66a in the querymanager repo. 'Data Lab Admin' made that commit on March 24, 2023. I suppose @mjfitzpatrick https://github.com/mjfitzpatrick used this account?
This change would make sense if r was expected to be a sequence (e.g. a list), and r[1] a string in that list. But is r actually a string already? Maybe it is now (due to some change elsewhere), but was a list back in March? Need to (together please) a) track it down, and b) verify that nothing is broken in querymanager now, by reverting to return qcToString(r).
—
Reply to this email directly, view it on GitHub https://github.com/astro-datalab/datalab/pull/65#issuecomment-1783944567, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABX3HOAPENTSYMBRJCHZVQTYBWK4HAVCNFSM6AAAAAA6UMYIZ2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBTHE2DINJWG4.
You are receiving this because you authored the thread.


feat(ui): create SelectModel component

What does this PR do?
We are offering a Select form in CreateInference, CreatePlayground and Start Recipe page, let's create a single component, easier to style for light mode.

:warning: I did not change the styling made to the component that were used for StartRecipe.

Screenshot / video of UI

What issues does this PR fix or reference?
N/A
How to test this PR?

[x] unit tests has been provided

Can we get recommanded models to be listed first ?

@jeffmaury no problem, I added it

After applying @benoitf remark, the models are sorted as followed

recommended downloaded models
recommended not downloaded models
downloaded models
not downloaded models


Feature request: Support forwarding multiple ports

This is a great tool, and has been helpful in making remote work more streamlined.
From what i can see, remote -tunnel a:b --tunnel c:d only forwards c:d. When working with a remote jupyter notebook on my compute machine, I need both port 8888 for the notebook itself along with port 6006 for tensorboard.
A power user might also want some kind of range syntax, to forward anything between a range of ports. My bet is that -tunnel a-b:c-d could be a decent syntax for that.
While at it, perhaps the option to pass in raw ssh -o options could be added? This would allow companies with their infrastructure behind a firewall to use the ProxyJump option.

Hi, I understand your request, but I feel that we shouldn't overcomplicate remote's CLI parameters when there is a different tool available to achieve what you need. You can use ~/.ssh/config to specify proxy/port forwarding parameters for your remote host:
Host your.remote.host
  LocalForward ...
  ProxyJump ...

You can see the configuration details here: http://www.manpagez.com/man/5/ssh_config/

That is my current solution, and it works well for me. However it is not a portable solution. I made a PR

The latest version of remote is accessible via homebrew now


Remote sampling strategy returns default instead of configured one

Sampling strategy is defined in operator configuration:
  sampling:
    options:
      default_strategy:
        type: const
        param: 1

But clients are still getting default sampling configuration. Also agent and collector endpoints for configuration are returning default:
Collector endpoint:
curl 'http:/<IP_ADDRESS>:14268/api/sampling?service=aaa'
{"strategyType":"PROBABILISTIC","probabilisticSampling":{"samplingRate":0.001}}
Agent endpoint:
curl 'http://<IP_ADDRESS>:5778?service=aaa'
{"strategyType":0,"probabilisticSampling":{"samplingRate":0.001}}
Config map and collector file have the right configuration but they are returning the default:
#Configmap: jaeger-operator-jaeger-sampling-configuration
apiVersion: v1
data:
sampling: '{"default_strategy":{"param":1,"type":"const"}}'
kind: ConfigMap
Collector file:
/ # uname -n
jaeger-operator-jaeger-collector-5ff45cdc9b-kkkwf
/ # cat /etc/jaeger/sampling/sampling.json
{"default_strategy":{"param":1,"type":"const"}}
To Reproduce
Steps to reproduce the behavior:

Install jaeger operator and set sampling strategy as defined on top of the issue
Client will not get type: const, param: 1 configuration but the default one probabilistic, sampling rate: 0.001
Also curl 'http:/collector-host:14268/api/sampling?service=aaa' will retrurn the default probabilistic one instead of const

Expected behavior
Expected behaviour is that collector and agent endpoints will return the configured sampling strategy instead of default one.
Version (please complete the following information):

Jaeger operator helm chart version: 2.27.1
OS: Linux
Kubernetes: v1.21.2
Deployment: Kubernetes

I'm adding my values.yaml. Strategy is streaming. Agents are configured as daemonset:
jaeger-operator:
image:
repository: jaegertracing/jaeger-operator
tag: 1.29.1
pullPolicy: IfNotPresent
imagePullSecrets: []
crd:
install: true
jaeger:
create: true
namespace:
spec:
strategy: streaming
collector:
autoscale: true
maxReplicas: 5
minReplicas: 2
resources:
limits:
cpu: 100m
memory: 128Mi
options:
sampling:
strategies-reload-interval: 30s
kafka:
producer:
topic: internal.jaeger-spans
brokers: REMOVED
batch-size: 128000
batch-linger: 1s
batch-max-messages: 100
ingester:
autoscale: true
maxReplicas: 8
minReplicas: 2
resources:
limits:
cpu: 100m
memory: 128Mi
options:
kafka:
consumer:
topic: jaeger-spans
brokers: REMOVED
ingester:
deadlockInterval: 60m0s
storage:
type: elasticsearch
options:
es:
server-urls: REMOVED
tags-as-fields:
all: true
tls:
ca: /es/certificates/ca.crt
secretName: jaeger-es-auth-secret
volumeMounts:
- name: certificates
mountPath: /es/certificates/
readOnly: true
volumes:
- name: certificates
secret:
secretName: jaeger-es-http-certs-public
query:
replicas: 1
serviceType: ClusterIP
agent:
strategy: DaemonSet
sampling:
options:
default_strategy:
type: const
param: 1
ingress:
enabled: false
rbac:
# Specifies whether RBAC resources should be created
create: true
pspEnabled: false
clusterRole: true
service:
type: ClusterIP
# Specify a specific node port when type is NodePort
# nodePort: 32500
# Annotations for service
annotations: {}
serviceAccount:
# Specifies whether a ServiceAccount should be created
create: true
# The name of the ServiceAccount to use.
# If not set and create is true, a name is generated using the fullname template
name:
# Annotations for serviceAccount
annotations: {}
Specifies extra environment variables passed to the operator:
#extraEnv: []
extraEnv:
# Specifies log-level for the operator:
- name: LOG-LEVEL
value: debug
extraLabels: {}
# Specifies extra labels for the operator deployment:
# foo: bar
resources: {}
# limits:
#  cpu: 100m
#  memory: 128Mi
# requests:
#  cpu: 100m
#  memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}
securityContext: {}
priorityClassName:

In collector logs I see this warning message:
{"level":"warn","ts":1641896088.730515,"caller":"static/strategy_store.go:323","msg":"Failed to parse sampling strategy","strategy":{"type":"const","param":1}}

Settings sampling to probabilistic doesn't cause the same problem. This works as expected.
      sampling:
        options:
          default_strategy:
            type: probabilistic
            param: 1

But const: 1 doesn't as described in top post.

The only possible values for file sampling type are probabilistic and ratelimiting, This is for controlling the sampling configuration remotely, you can still use const sampling in your clients if you don't want to use the remote sampling feature.
https://www.jaegertracing.io/docs/1.30/sampling/#file-sampling

service_strategies element defines service specific sampling strategies and operation_strategies defines operation specific sampling strategies. There are 2 types of strategies possible: probabilistic and ratelimiting which are described above (NOTE: ratelimiting is not supported for operation_strategies). default_strategy defines the catch-all sampling strategy that is propagated if the service is not included as part of service_strategies

@pteroctopus Does that works for you? Or is this still an issue ?

This works for me. Thank you.


Ignore should invalidate model if property is explicitly used else where

When ignoring a property that is explicitly used in a key throw an error
Steps to reproduce
modelBuilder.Entity<Counter>().HasAlternateKey(c => new { c.StyleKey, c.IsTest, c.Discriminator });
            modelBuilder.Entity<Counter>().Ignore(c => c.Discriminator);

Further technical details
EF Core version: 2.1.0 rc1 final
Database Provider: Microsoft.EntityFrameworkCore.Sqlite
Operating system:  Win10
IDE:  Visual Studio 2017 15.7.1

@Tarig0 Why are you both referencing and ignoring the property explicitly?

Because I wasn't ignoring the property when I was using the value converter feature, then switched to a private store variable, and didn't update the key.

Unfortunately if Ignore threw an exception in this case then it would be impossible to remove that property from the model as there's no API for removing keys. But we could log a warning.

I think the issue I'm seeing is that the Model is invalid so the program shouldn't be able to continue with the configuration. Not that I want the model to remove the alternate key, but to say hey this alternate key is not valid bad program.
modelBuilder.Entity<Counter>().HasAlternateKey(c => new { c.StyleKey, c.IsTest, c.Discriminator }); //This should be c.StrDiscriminator
            modelBuilder.Entity<Counter>().Ignore(c => c.Discriminator);

@Tarig0 I understand that in your case the model configuration is contradicting and doesn't produce the expected model. But Ignore is also used to remove previous configuration. For example that 'HasAlternateKey' call could be in the base context type that you are deriving from and you can't change that code, so calling Ignore would be the only way to remove that key.


Kamene again..

root@anonymous:~/kickthemout# pip3 install -r requirements.txt **
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Requirement already satisfied: kamene in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 1)) (0.32)
Requirement already satisfied: python-nmap in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 2)) (0.6.1)
Requirement already satisfied: netifaces in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 3)) (0.10.9)

as u can see i installed everything but it still cant see kamene
root@anonymous:~/kickthemout# python3 kickthemout.py

ERROR: Requirements have not been satisfied properly. Please look at the README file for configuration instructions.

If you still cannot resolve this error, please submit an issue here:
	https://github.com/k4m4/kickthemout/issues

Details: No module named 'kamene'

Hi @deadfishhackers. As you can see above, you have downloaded the dependencies for Python 2.7 instead of Python 3. It seems that there is a problem with your pip3 command's configuration. Thanks.

how to fix it tho, can u give me detailed explaination.

Google something like pip3 using python 2.7 instead of python 3 and you will find many things to try. I am closing this since it is not a KickThemOut issue. Thanks!


fix: use new NSTextAlignment enum

Closes #2 🎉

@aleclarson I guess I merged the PRs in the wrong order. Sorry for that.
To spare you from the hassle I've done the conflict resolution myself and pushed the commit to master manually.


"could not patch! You're trying to launch a version that you dont have a patch for!

i looked in the patches folder and there is no 5.1 patch. can someone tell me how to fix this or how to revert my game version back to 5.0 so i can play.

As it says there, if getting patches means nothing to you then you have the wrong game version, you must get 5.0 or earlier.
Download 5.0 from the archive repo same as any other version.
https://github.com/JRSKelvin/GenshinRepository/blob/main/Version 5.0.0.md

@NotThorny do you happen to know where there is any tutorial for how to do it. i have no clue what im doing

There are more tutorials than you can possibly count, but I would suggest you go follow the setup for Grasscutter.
https://github.com/Grasscutters/Grasscutter?tab=readme-ov-file#quick-setup-guide

@NotThorny I'm confused. I don't see where it says how to download older versions...

The first link I sent was to the archive, to the exact version you wanted. The second link is to the setup guide which also links you to the same repository but for a different version. If you need help with that, please go to the Grasscutters discord.

Also since you're trying to play on YuukiPS, you can see the same links on the YuukiPS website, with the same steps on how to get it. https://ps.yuuki.me/game/genshin-impact
You can also go to the YuukiPS discord if you need help specifically with Yuuki


Enable release configuration and build type CI legs for the SDK and fix any issues

[x] Fix all warnings and issues from building the SDK in release
[ ] Update code coverage CI leg to not fail in release builds (either by not running code coverage with a console message OR running it with a warning message).
[ ] Enable the release configuration in the CI matrix.

This is a necessary step before enabling the map file generation. See https://github.com/Azure/azure-sdk-for-c/issues/240 and https://github.com/Azure/azure-sdk-for-c/pull/956


DFS(dynamic frequency scaling) changes pwm frequency (IDFGH-4034)

Environment

Development Kit:      ESP32-DevKitC
Kit version v4
Module or chip used:ESP32-WROOM-32U|ESP32-WROVER
IDF version (run git describe --tags to find it):
v4.0
Build System:         CMake|idf.py
Operating System:     Linux
Using an IDE: VSCODE
Power Supply:         USB

Problem Description
PWM frequency changes over time.
//Detailed problem description goes here.
Expected Behavior
API should do as it says, and PWM freq should not change.
uint32_t freq_hz;                      /*!< LEDC timer frequency (Hz) */
Actual Behavior
Changes when open when BLE scan/WIFI data, etc.
Steps to reproduce
Enable DFS, produce pwm output, use a oscilloscope to monitor pin accordingly.
LEDC CODE:
ledc_timer_config_t conf = {
			.duty_resolution = LEDC_TIMER_8_BIT,
			.freq_hz = 1000,
			.speed_mode = LEDC_HIGH_SPEED_MODE,
			.timer_num = 0
	};
	ERROR_CHECK(ledc_timer_config(&conf));
	ledc_channel_config_t conf = {
		.channel    = 0,
		.duty       = 128,
		.gpio_num   = pin,
		.speed_mode = LEDC_HIGH_SPEED_MODE,
		.hpoint     = 0,
		.timer_sel  = 0
	};
	ledc_channel_config(&conf);

BLE SCAN PARAM：
following code will cause pwm freq change during every scan_interval.
	static esp_ble_scan_params_t ble_scan_params = {
		.scan_type = BLE_SCAN_TYPE_PASSIVE,
		.own_addr_type = BLE_ADDR_TYPE_PUBLIC,
		.scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,

		.scan_interval = 0x50,        //<<<<<<<<<<<<<<<<<<<<<<<<<<
		.scan_window = 0x20,        //<<<<<<<<<<<<<<<<<<<<<<<<<<
		.scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE};
	ERROR_CHECK(esp_ble_gap_set_scan_params(&ble_scan_params));

Thanks for reporting, we will look into.

Hi @thedayu, as mentioned in https://docs.espressif.com/projects/esp-idf/en/v4.0.1/api-reference/system/power_management.html#dynamic-frequency-scaling-and-peripheral-drivers, LEDC can be configured with REF_TICK clock source to prevent the frequency changing when DFS is enabled. You can set LEDC_USE_REF_TICK value for clk_cfg in the ledc_timer_config_t structure.

@igrr That's it. Thanks for quick reply.

@igrr When the LEDC_USE_REF_TICK clock source is configured for LEDC to prevent frequency changes, the frequency of LEDC clock source is reduced to 1MHz.
The frequency of LEDC clock source is not meet my application needs.
Do you have a good way?

Per the docs, "For low speed channels, you can also specify the source clock using LEDC_USE_RTC8M_CLK, in this case, all low speed channel’s source clock must be RTC8M_CLK". This should raise the frequency to ~8 MHz. Higher LEDC clock frequencies are not possible when APB clock frequency of the ESP32 is changing, I'm afraid.