text:
upload failed for cookbooks/audit because missing "compat_resource"

knife cookbook upload audit -o ./chef-cookbooks
Uploading audit          [2.4.0]
ERROR: Cookbook audit depends on cookbooks which are not currently
ERROR: being uploaded and cannot be found on the server.
ERROR: The missing cookbook(s) are: 'compat_resource' version '>= 0.0.0'
Cookbook version
audit          [2.4.0]
Chef-client version
Chef Development Kit Version: 1.2.22
chef-client version: 12.18.31
kitchen version: 1.15.0
Platform Details
Red Hat Enterprise Linux Server release 7.0 (Maipo)
Scenario:
[What you are trying to achieve and you can't?]
knife cookbook upload audit -o ./chef-cookbooks
...
ERROR: Cookbook audit depends on cookbooks which are not currently
ERROR: being uploaded and cannot be found on the server.
ERROR: The missing cookbook(s) are: 'compat_resource' version '>= 0.0.0'
Steps to Reproduce:
as above
Expected Result:
upload with no error, or to have updated 'compat_resource' version in the cookbook audit
Actual Result:
Failed as "ERROR: The missing cookbook(s) are: 'compat_resource' version '>= 0.0.0' "

Hello, @benlu36.
This is expected behavior. knife cookbook upload does not solve any cookbook dependencies, and as you discovered, the audit cookbook depends on the compat_resource cookbook.
There are two ways to solve this:

You can download the compat_resource cookbook manually and knife cookbook upload it first, or.

You can use Berkshelf to upload both the compat_resource cookbook and the audit cookbook.

I would recommend using Berkshelf as it will make sure the right versions of the right dependency cookbooks are downloaded and then uploaded to your Chef Server.
From the audit cookbook directory itself, you should be able to do a berks install and then a berks upload and it will upload the cookbooks to your Chef Server for you.
I hope this helps!
~Adam

Thanks, @adamleff !
Below is what I get:
pwd
/root/chef-repo/chef-cookbooks/audit
berks install
W, [2017-03-31T14:12:59.449649 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#frozen? defined in Kernel. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:12:59.449898 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#frozen? defined in Kernel. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:12:59.450116 #6460]  WARN -- : You are setting a key that conflicts with a built-in method VariaModel::Attributes#frozen? defined in Kernel. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:12:59.450266 #6460]  WARN -- : You are setting a key that conflicts with a built-in method VariaModel::Attributes#frozen? defined in Kernel. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:12:59.501178 #6460]  WARN -- : You are setting a key that conflicts with a built-in method VariaModel::Attributes#default defined in Hash. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:12:59.501399 #6460]  WARN -- : You are setting a key that conflicts with a built-in method VariaModel::Attributes#default defined in Hash. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
Resolving cookbook dependencies...
Fetching 'audit' from source at .
Fetching 'test_helper' from source at test/cookbooks/test_helper
Fetching cookbook index from https://supermarket.chef.io...
W, [2017-03-31T14:13:09.637216 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:16.544918 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:16.546160 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:16.547417 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:16.548605 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:16.550645 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:16.552220 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:19.370454 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:19.372567 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:19.375297 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:19.378044 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:19.380860 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:19.383656 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:19.386452 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:19.389080 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:21.839512 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#fetch defined at /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/hashie-3.5.1/lib/hashie/mash.rb:141. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:22.873038 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:24.546274 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:24.547769 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-03-31T14:13:24.549158 #6460]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#zip defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
Using audit (2.4.0) from source at .
Installing compat_resource (12.16.3)
Installing mingw (2.0.0)
Installing build-essential (8.0.0)
Installing ohai (5.0.2)
Installing git (6.0.0)
Installing dmg (3.1.0)
Installing seven_zip (2.0.2)
Using test_helper (0.1.0) from source at test/cookbooks/test_helper
Installing windows (3.0.4)
Installing yum-epel (2.1.1)
[root@psvlxccas03 audit]# pwd
/root/chef-repo/chef-cookbooks/audit

Yeah, that a lot of warnings you can ignore - that's fixed in the upcoming ChefDK release.
So, you ran berks install and it completed successfully! Great! This downloaded all the dependencies, etc. to your local berkshelf. Now if you do a berks upload it should upload everything it needs to your Chef Server.

berks upload  -- > works, it uploaded all cookbooks to chef server.
Thanks, @adamleff  !

Hi,
It looks like you might be new to Chef. The problem you are seeing is that knife cookbook upload is expecting that all dependencies of the cookbook are handled. You can't upload a cookbook to the Chef Server without uploading its dependencies. This isn't a problem specific to this cookbook, it's something that you need to understand and deal with for any cookbook that you use. The metadata.rb file will indicate what dependencies there are. You can either manually handle the dependencies by downloading them from the supermarket and uploading them, or you can use a tool like berkshelf to handle the dependencies. If you look at the Berksfile that is included you'll see that it will pull from the public supermarket https://supermarket.chef.io.

High-five, @iennae 🙂

authors: adamleff benlu36 iennae

repo: chef-cookbooks/audit


text:
Timeout on large file downloads from S3 with s3_file

Cookbook version
4.2
Chef-client version
12.13.37
Platform Details
Ubuntu 14.04 on AWS
We're trying to download a relatively large, text file (3GB) but it results in a 403 forbidden exception. Looking ath the logs it takes almost 3mins just to decide that the local and remote files do not match, this is most likely down to the loading of the existing file to calculate an MD5 hash.
[2017-02-10T12:20:45+00:00] INFO: Processing aws_s3_file[/home/my_user/very_large_file.txt] action create (mycookbooks::corenlp line 43)
[2017-02-10T12:23:20+00:00] INFO: Remote and local files do not match, running create operation.
[2017-02-10T12:23:20+00:00] INFO: Processing remote_file[/home/myuser/very_large_file.txt] action create (/var/chef/runs/1/local-mode-cache/cache/cookbooks/aws/providers/s3_file.rb line 40)
[2017-02-10T12:25:55+00:00] INFO: HTTP Request Returned 403 Forbidden

Options to fix this, not limited to:

Calulate the presigned url just before attempting the download (it seems it's not used in calculating the hash, but I may be wrong)
Allow overriding of the link expiry (currently it's set to 300 seconds)
Allow for skipping of md5 comparison step when using :create action

I think the first option makes the most sense.

I've gone ahead and created a pull request for the first option which does fix this particular issue for me, however it could still cause issues.
In the event that the first attempt to download takes > 5 mins, then fails and the resource specifies a number of retries then the second retry would still result in a 403 forbidden error.
This issue also raises the question on the suitability of how the MD5 hash is being calculated as I know the file on S3 hasn't changed and we have to wait for the file to be redownloaded on every deployment. We can work around this but I wonder if it could still be worth having an option skipping the MD5 hash check.

Closed by #274 - thanks for reporting and the PR to fix it!

source: gharchive/issue

authors: markunsworth smurawski

repo: chef-cookbooks/aws

license_type: permissive

license_source: github-api


text:
Bump cookstyle and foodcritic deps

We need a release of ChefDK in current that has the latest cookstyle and foodcritic. Right now if someone does the right thing with amazon for Chef 13, then travis goes red since old Foodcritic blows up.
Signed-off-by: Tim Smith tsmith@chef.io

This will need to get rebased once #1226 is merged which should fix the foodcritic failure

source: gharchive/pull-request

repo: chef/chef-dk

license_source: bigquery


text:
Documentation for "chef provision" command cookbook dependencies

I've seen a few approaches at to where your provision cookbook should go (for use with the chef provision command). However I don't understand where you should put the dependencies.
It seems that chef provision is a version of chef-solo which sets the cookbook folder to the folder just above the cookbook selected to provision from. However it seems common for provision cookbooks to live just about everywhere, from .delivery/deploy-cookbook to ./provision at the top level of a cookbook or chef-repo itself.
[devops@codecan app_server_cookbook]$ bundle exec chef provision ticket_120805691 --policy-name app_server

Frame number: 0/22

From: /home/devops/workspace/chris/app_server/provision/metadata.rb @ line 11 Chef::Mixin::FromFile#from_file:

     6: long_description 'Installs/Configures provision'
     7: version '0.1.0'
     8: # Not quite sure how to depend on other cookbooks
     9: # in a provisioning recipe yet
    10: require 'pry-byebug' ; binding.pry
 => 11: depends 'dnsimple'

[1] pry(#<Chef::Cookbook::Metadata>)> Chef::Config
=> {:log_location=>#<IO:<STDOUT>>, :solo=>true, :cookbook_path=>"/home/devops/workspace/chris/app_server", :color=>true, :diff_disabled=>true, :use_policyfile=>false, :policy_name=>nil, :policy_group=>nil, :deployment_group=>nil, :file_staging_uses_destdir=>true}
[2] pry(#<Chef::Cookbook::Metadata>)> quit
Installing Cookbook Gems:
Compiling Cookbooks...
Error: Could not find cookbook(s) to satisfy run list ["recipe[provision::default]"] in /home/devops/workspace/chris/app_server
Reason: (Chef::Exceptions::CookbookNotFound) Cookbook dnsimple not found. If you're loading dnsimple from another cookbook, make sure you configure the dependency in your metadata

What are others doing? There doesn't appear to be any documentation or much direction on using the "chef provision" command with complex provision cookbooks with dependencies.

https://github.com/cassianoleal/cookbook-deploy_key is a library cookbook I'd like to use during a provisioning run, possible creating a deploy key per repo + node combination, then destroying them
https://github.com/target/f5-bigip-cookbook would be nice to add nodes to a load balancer
https://github.com/dnsimple/chef-dnsimple for adding nodes to dns

Though about dropping this into the ./provision/metadata.rb
name 'provision'
maintainer 'The Authors'
maintainer_email 'wolfpack@vulk.coop'
license 'all_rights'
description 'Installs/Configures provision'
long_description 'Installs/Configures provision'
version '0.1.0'
# Not quite sure how to depend on other cookbooks
# in a provisioning recipe yet
if Chef::Config.has_key?(:cookbook_path)
  this_dir=File.dirname(__FILE__)
  if File.exists?(File.join(this_dir,'vendor','cookbook_artifacts'))
    Chef::Config[:cookbook_path] << File.join(this_dir,'vendor','cookbook_artifacts')
    require 'pry-byebug' ; binding.pry
    #trying to get this to work, but I still get Chef::Exceptions::CookbookNotFound for dnsimple
  else
    Chef::Log.fatal "This provisioning cookbook has dependencies!!!"
    Chef::Log.fatal "Run: chef export ./provision/Policyfile.rb ./provision/vendor"
  end
else
  Chef::Log.warn 'Did not contain cookbook_path'
end
depends 'dnsimple'

But still no love

Closing and moving to https://github.com/chef/chef-dk/issues/901 since the related ChefRunner code called from the chef provision command is at https://github.com/chef/chef-dk/blob/master/lib/chef-dk/command/provision.rb#L253

repo: chef/chef-provisioning


text:
knife status --run-list -l shows invalid/incorrect output

Description
When running knife status -l --run-list I get an empty field between commas where the run-list/roles should be.
ChefDK Version
Chef Development Kit Version: 2.4.17
chef-client version: 13.6.4
delivery version: master (73ebb72a6c42b3d2ff5370c476be800fee7e5427)
berks version: 6.3.1
kitchen version: 1.19.2
inspec version: 1.45.13
Platform Version
Ubuntu 16.04.3 LTS
Replication Case
Run knife status -m --run-list and observe the 3rd "field" being the role.
Run knife status -l --run-list and observe the 3rd "field" being empty (where the role should be).

Fixed in #8415

repo: chef/chef


text:
Gate requires in chef-utils and chef-config as well

Update the cop config to handle those as well
Signed-off-by: Tim Smith tsmith@chef.io

busted unit tests

Hmm. looks like tests are failing due to uninitialized constant ChefUtils::DSL which may be related.

Fixed things, but excluding specs and using ChefUtils::CANARY

authors: lamont-granquist mwrock tas50


text:
Fix converge_if_changed

Description
sensitive is the property of the resource, not the provider.
Issues Resolved
Fixes exceptions using converge_if_changed

this could really use a spec to not regress, needs a DCO signoff as well.

@axos88 please sign the DCO (https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco) and then we're good to go. cc @chef/client-core

According to that doc obvious fixes don't need DCO, and this is pretty obvious, is it not? I'd rather avoid amending and force-pushing.

obvious fix actually requires you to say that it is one, which you've now done :)

Huh. Thought I did. Anyhoo, glad that it's okay this way.

authors: axos88 lamont-granquist thommay


text:
Remove chef-* binstubs from chef gem

This is for the relicensing effort.
Note that this PR leaves the knife and ohai binstubs still in the
gem(s) while that discussion is still ongoing.

Just for the record, I'm not a fan of this change. We've never officially supported gem install chef as an install style, but this will make it entirely unavailable. This will make installing Chef on unusual environments (RasPis, etc) more difficult, and will undoubtedly frustrate some number of people that built their own install systems around gem install chef.
That said, I have no energy to argue this point, I just wanted to side effects listed so people will have an easier time finding the change which broke things for them.

closed in favor of #8413

authors: coderanger lamont-granquist


text:
Move to oc_erchef 1.8.2

Changelog-Entry: Improved performance fo the cookbook_verions endpoint
for large installations

@stevendanna of instead of fo in the Changelog-Entry. Also, is it ChangeLog or Changelog? Does it matter?

@mmzyk Thanks, typos on both fronts.  It is ChangeLog-Entry.  Perhaps I it should be case insensitive?

@stevendanna case insensitivity is probably good, that way it's one less thing to think about.
changelog-entry is a bit easy to type and requires less thinking. ;)

:heart: thanks for pulling this in to Chef Server so quickly

authors: irvingpop mmzyk stevendanna

repo: chef/opscode-omnibus


text:
Fix the data race on pb.isFinish member.

There's potential race between Finish() setting pb.IsFinish = true and
writer() which does pb.isFinish check on each iteration. This has been
discovered by Go race detector.
Fix is ugly, as it changes bool to int32 and uses atomic operations
to close the race.
P.S. Thanks for the progressbar library, it's amazing!

You are welcome!
I know about this place, actually we have very small chance to get the problem)
But you're right! Thank you!

authors: cheggaaa smira

repo: cheggaaa/pb


text:
Any refactoring suggestion for this code

@lpatiny @targos @stropitek
because i lways need to check if the filter appllied before then i can reduce the filter and  then reapply the filters one time starting from orignal data. and if the filter not applied before then i apply it on the last state of the data.
so i make new function call applyFilter to be general function to applly all filters how  how can i make applyZeroFillingFilter as the same way the other filters have.
https://github.com/cheminfo/nmr-displayer/blob/4b377bdc678633355d36bea59f148027bdfe4153/src/data/data1d/Datum1D.js#L122-L177

@lpatiny
@targos
@stropitek
It's done, Thanks, But can you check what i did in refactoring.

repo: cheminfo/nmr-displayer

license: MIT


text:
🛑 Homepage is down

In 5bd965b, Homepage (https://larrychen.tech) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Homepage is back up in ce104c3 after 2 days, 1 hour, 2 minutes.

repo: chendachao/uptime


text:
🛑 tt is down

In f73269d, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 2990 ms

Resolved: tt is back up in 74224db.

repo: chenhaonanniubi/upptime


text:
🛑 tt is down

In 534c6a7, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 2838 ms

Resolved: tt is back up in 9920a51.


text:
🛑 tt is down

In aaa878d, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 6052 ms

Resolved: tt is back up in ed82dcf.


text:
🛑 tt is down

In fb8c9ac, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 1321 ms

Resolved: tt is back up in 1da1afb.


text:
🛑 tt is down

In 21ff3df, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 2356 ms

Resolved: tt is back up in 7beb76d after 11 minutes.


text:
🛑 tt is down

In e07691a, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 2466 ms

Resolved: tt is back up in 9753a2c after 10 minutes.


text:
🛑 tt is down

In 46dbede, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 2269 ms

Resolved: tt is back up in 2196fb9 after 12 minutes.


text:
🛑 tt is down

In 80efb54, tt (https://telebot-app-serverless-i7z8-chenhaonanniubi.vercel.app/checkhealth) was down:

HTTP code: 500
Response time: 3676 ms

Resolved: tt is back up in e599dd0 after 20 minutes.


text:
Exception when calling struct similarity

Hi,
I find that when computing struct similarity in evaluation, unless channel_axis is set, there is an exception. Its a small fix, but I wonder if I'm doing something wrong otherwise everyone will get this error for RGB images.
Thanks!

I got the same error
"in structural_similarity raise ValueError(ValueError: win_size exceeds image extent. Either ensure that your images are at least 7x7; or pass win_size explicitly in the function call, with an odd value less than or equal to the smaller side of your images. If your images are multichannel (with color channels), set channel_axis to the axis number corresponding to the channels."

Sorry for replying only now, you just need to modify the code as below to work properly.
ssim_score = ssim(util.tensor2im(pred), util.tensor2im(gt), data_range=255, channel_axis=-1

authors: chenhaoxing darshats lexilii

repo: chenhaoxing/HDNet


text:
新增支持自定义endpoint的方法，完善grafana图标上单位和label的一些展示

类似https://github.com/zsais/go-gin-prometheus
可以满足[/customer/:name] 这种类型的自定义endpoint label

Thanks @shanjingheng

authors: chenjiandongx shanjingheng

repo: chenjiandongx/ginprom


text:
Lua 5.4.0 updates

Messing around with whether SILE's dependencies will compile right on Lua 5.4, here is another change to the formula needed to use the right Lua version.

Not sure why the Github UI is being dumb about showing the difference between branches, but it might be because your master branch as posted on this fork is behind what I merged from.

Obsolete, already upstreamed.


text:
🛑 Chequeo Colectivo is down

In 4926cbc, Chequeo Colectivo (https://chequeado.com/colectivo) was down:

HTTP code: 502
Response time: 64 ms

Resolved: Chequeo Colectivo is back up in 786a8f2.

repo: chequeado/status


text:
volumio : fails to set media - requires extra metadatas

dlna.py run against Volumio returns "ERROR:root:Action Failed".
adding:
<DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:arib="urn:schemas-arib-or-jp:elements-1-0/" xmlns:dtcp="urn:schemas-dtcp-com:metadata-1-0/" xmlns:pv="http://www.pv.com/pvns/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"><item id="0$1$12$16583R2268170" refID="0$1$8I2268170" parentID="0$1$12$16583" restricted="1"><res protocolInfo="http-get:*:audio/wav:DLNA.ORG_PN=WAV;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=01700000000000000000000000000000" >http://example.com/test.wav</res></item></DIDL-Lite> to  fixes this.
this I extracted from a test run of gupnp-av-cp  (strace of an mp3) and adapted to the wav test file.
volumio runs upmpdcli. I sorted this out by adding logelevel = 6 and logfilename = /var/log/upmpdcli.log and running systemctl restart upmpdcli. With vanilla dlna I get:
:2:src/upmpd.cxx:132::checkContentFormat: didl parse failed
:2:src/avtransport.cxx:393::set(Next)AVTransportURI: unsupported format: uri http://example.com/test.wav metadata :2:libupnpp/device/device.cxx:354::UpnpDevice: Action failed: SetAVTransportURI code -101

this is volumio 2.238 running on an Odroid C2.
PS: playback and stop work fine.

as of now I stressed upmpdcli a bit by removing items of the metadata. The res element URI as content and the protocolInfo attribute are required per upmpdcli log. Other fields are not yet tested (or already removed from previous comment).

repo: cherezov/dlnap

license: mit


text:
Broken links: ticket:1234

Links of the form ticket:1234 or [ticket:1234 link description] were not transformed to Markdown, nor mapped to the new GitHub URLs.
If anyone finds this repository and wants to run it on another project, this is a bug that was not fixed.

Yes. this is custom Trac wiki syntax.
I think that for now this is low priority.
Also, if someone is worried about it, an update can be executed over the existing comments and edit the comments to add the links.
But I think is a lot of work and trouble for little reward

authors: adiroiban danuker

repo: chevah/trac-to-github


text:
App Crashes on Android 12 when planning sensor on map

Describe the bug
When I want to add my sensor with latest Android 12, I need to select the position. When doing so, the app Crashes.
To Reproduce
Steps to reproduce the behavior:

Go to add sensor
Click on "genaue Sensorposition festlegen"
App crashs

Expected behavior
I expect so see a map to place my sensor
Device/version info (please complete the following information):

Device: Pixel 6 Pro
OS version: Android 12 (July 5th Update)
App version 3.5.2

I have the same problem with the app.
Any solution in the near future?

repo: chillibits/particulate-matter-app


text:
Use of gnu/time command in regression

I am working on some changes to optimize memory use and noticing some rather strange results on regression. The memory use does go down for small and medium sized tests but for larger tests the reported memory use almost doubles which isn't making much sense. On further investigation it turns out that there's a reported bug in gnu/time command. More information here -
https://forums.whirlpool.net.au/archive/1693957
https://groups.google.com/g/gnu.utils.help/c/u1MOsHL4bhg
https://debiantutorials.org/question/what-does-the-linux-command-usr-bin-time-show-in-the-maxresident-field-3643/
But all these discussions are rather old (some starting in 2010). Before I spend more cycles investigating the root cause of the discrepancy in my changes, could either of you please confirm that this is or is not an issue on current Ubuntu's default /usr/bin/time command.
Thanks!!

Here are both the PRs https://github.com/chipsalliance/UHDM/pull/540 & https://github.com/chipsalliance/Surelog/pull/2067. The only interesting changes are in four files. Every other change is fallout of changing the APIs.
templates/SymbolFactory.h
templates/SymbolFactory.cpp
src/SourceCompile/SymbolTable.h
src/SourceCompile/SymbolTable.cpp
I have no new allocations except the fact that I am allocating 1MB buffers for SymbolTable & SymbolFactory. I do have an assumption that registered symbols are persistent and SymbolTable & SymbolFactory instances are never deleted unless the entire design is being purged. SymbolTable doesn't clone the registered strings when creating clones (via the copy constructor). SymbolTable instances share the same backend cache store. I expected the memory requirement to shrink for larger designs since we aren't duplicating symbol table storage but I have completely opposite affect. Here are some of the numbers I have collected from a few runs.
Column 1: Test Name
Column 2 & 3: Surelog Master runs
Column 4 & 5: Surelog Master + https://github.com/chipsalliance/UHDM/pull/540 + https://github.com/chipsalliance/Surelog/pull/2067
Column 5: Column 2 - Column 4
Column 6: Column 3 - Column 4
Column 7: Column 2 - Column 5
Column 6: Column 3 - Column 5
Full data set attached. Perf.txt
+-----------------------------+  +-----------------------+----------------------+  +-----------------+----------------+  +---------------+---------------+--------------+--------------+
|                             |  | # 203: Surelog Master | #204: Surelog Master |  | #206: Optimized | #11: Optimized |  | #203 vs. #206 | #204 vs. #206 | #203 vs. #11 | #204 vs. #11 |
+-----------------------------+  +-----------------------+----------------------+  +-----------------+----------------+  +---------------+---------------+--------------+--------------+
| TESTNAME                    |  | MEM(Mb)               | MEM(Mb)              |  | MEM(Mb)         | MEM(Mb)        |  | MEM(Mb)       | MEM(Mb)       | MEM(Mb)      | MEM(Mb)      |
+-----------------------------+  +-----------------------+----------------------+  +-----------------+----------------+  +---------------+---------------+--------------+--------------+
| Google                      |  |                  1908 |                 1926 |  |            2170 |           2186 |  |          -262 |          -244 |         -278 |         -260 |
| Icarus                      |  |                   165 |                  168 |  |             454 |            385 |  |          -289 |          -286 |         -220 |         -217 |
| Unisim                      |  |                  1165 |                 1167 |  |            1274 |           1275 |  |          -109 |          -107 |         -110 |         -108 |
| UtdSV                       |  |                   183 |                  182 |  |             292 |            329 |  |          -109 |          -110 |         -146 |         -147 |
| Verilator                   |  |                   626 |                  622 |  |             938 |            934 |  |          -312 |          -316 |         -308 |         -312 |
| Yosys                       |  |                   169 |                  168 |  |             270 |            281 |  |          -101 |          -102 |         -112 |         -113 |
| YosysTests                  |  |                   837 |                  834 |  |            1497 |           1397 |  |          -660 |          -663 |         -560 |         -563 |
+-----------------------------+  +-----------------------+----------------------+  +-----------------+----------------+  +---------------+---------------+--------------+--------------+

I have reviewed my changes a number of times and found nothing obviously out of order. Appreciate a quick glance to see if either of you can spot something that I obviously overlooked. If not, I will spend some time setting up a Linux box and doing some digging (I have been using a VM on Windows so far and it gets unresponsive if I am building debug).

I get it, those are most of the designs running in "batch" mode.It means one instance of Surelog executable is running 100s of distincts designs in a batch fashion in the same executable.The original implemention of Surelog release 99% of its memory in between designs, your new implementation has a huge leak (Maybe the Symbol Table) that keeps accumulating in between each design.
On Wednesday, October 13, 2021, 06:17:12 PM PDT, HS ***@***.***> wrote:

Here are both the PRs chipsalliance/UHDM#540 & #2067. The only interesting changes are in four files. Every other change is fallout of changing the APIs.
templates/SymbolFactory.h
templates/SymbolFactory.cpp
src/SourceCompile/SymbolTable.h
src/SourceCompile/SymbolTable.cpp
I have no new allocations except the fact that I am allocating 1MB buffers for SymbolTable & SymbolFactory. I do have an assumption that registered symbols are persistent and SymbolTable & SymbolFactory instances are never deleted unless the entire design is being purged. SymbolTable doesn't clone the registered strings when creating clones (via the copy constructor). SymbolTable instances share the same backend cache store. I expected the memory requirement to shrink for larger designs since we aren't duplicating symbol table storage but I have completely opposite affect. Here are some of the numbers I have collected from a few runs.
Column 1: Test Name
Column 2 & 3: Surelog Master runs
Column 4 & 5: Surelog Master + chipsalliance/UHDM#540 + #2067
Column 5: Column 2 - Column 4
Column 6: Column 3 - Column 4
Column 7: Column 2 - Column 5
Column 6: Column 3 - Column 5
Full data set attached. Perf.txt
+-----------------------------+  +-----------------------+----------------------+  +-----------------+----------------+  +---------------+---------------+--------------+--------------+
|                             |  | # 203: Surelog Master | #204: Surelog Master |  | #206: Optimized | #11: Optimized |  | #203 vs. #206 | #204 vs. #206 | #203 vs. #11 | #204 vs. #11 |
+-----------------------------+  +-----------------------+----------------------+  +-----------------+----------------+  +---------------+---------------+--------------+--------------+
| TESTNAME                    |  | MEM(Mb)               | MEM(Mb)              |  | MEM(Mb)         | MEM(Mb)        |  | MEM(Mb)       | MEM(Mb)       | MEM(Mb)      | MEM(Mb)      |
+-----------------------------+  +-----------------------+----------------------+  +-----------------+----------------+  +---------------+---------------+--------------+--------------+
| Google                      |  |                  1908 |                 1926 |  |            2170 |           2186 |  |          -262 |          -244 |         -278 |         -260 |
| Icarus                      |  |                   165 |                  168 |  |             454 |            385 |  |          -289 |          -286 |         -220 |         -217 |
| Unisim                      |  |                  1165 |                 1167 |  |            1274 |           1275 |  |          -109 |          -107 |         -110 |         -108 |
| UtdSV                       |  |                   183 |                  182 |  |             292 |            329 |  |          -109 |          -110 |         -146 |         -147 |
| Verilator                   |  |                   626 |                  622 |  |             938 |            934 |  |          -312 |          -316 |         -308 |         -312 |
| Yosys                       |  |                   169 |                  168 |  |             270 |            281 |  |          -101 |          -102 |         -112 |         -113 |
| YosysTests                  |  |                   837 |                  834 |  |            1497 |           1397 |  |          -660 |          -663 |         -560 |         -563 |
+-----------------------------+  +-----------------------+----------------------+  +-----------------+----------------+  +---------------+---------------+--------------+--------------+
I have reviewed my changes a number of times and found nothing obviously out of order. Appreciate a quick glance to see if either of you can spot something that I obviously overlooked. If not, I will spend some time setting up a Linux box and doing some digging (I have been using a VM on Windows so far and it gets unresponsive if I am building debug).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

authors: alaindargelas hs-apotell

repo: chipsalliance/Surelog


text:
[script] updated docker usage documentation

I added the following section to the script

Installing Docker.
How to build the docker image locally.
How to use the Docker image.
How to bind the current path to /workspace.

Thanks for your contribution, seems you have already built the Docker container via nix. And the code owner @Avimitin for review.
Is there any official installing guide for docker? I personally prefer ref the install flow to there. WDTY?

Yes, reference to the official installing guide for docker would be better to not make it Platform Bias. I've added it

Also, IMO I don't want nix workflow included in release document. The release document is for downstream docker user, and nix usage is for T1 developer.

My suggestion:

Move the whole nix document part to readme with the following changes:

Remove the "hash" part, the developer building the docker image doesn't need to echo this content.
Remove the "copy to /tmp" part, firstly it introduces wrong sudo usage, secondly it does nothing but just increase nonsense disk IO.

Remove the modification of the docker bind mount document, users will make their own choice if they don't need it. And I want to make sure that document is concise and informative.

Please rebase master branch and squash all commit into one.

Please squash to one commit.

authors: Avimitin SyedHassanUlHaq sequencer


text:
Support runit

I didn't think this was still used since wikipedia mentions the last stable release was in 2014, but was mentioned that it's used on busybox systems. Would need to see if we could get a test environment for this one.

Main website: http://smarden.org/runit/
Guide: https://kchard.github.io/runit-quickstart/

Would need to see if we could get a test environment for this one.

If you don't mind following LFS-jr, the KISS Linux installation guide will take up an afternoon and leave you with a functioning system that uses runit. After that, the service management documentation will tell you how sv works.
I'm not entirely sure how coupled Runit and sv are, or how easy it is to tell when it's in use versus merely being installed on the system (since sv comes with all Busybox installations). I do happen to have a mostly working KISS system but I rarely use it because it doesn't detect my trackpad yet (stupid kernel regressions).

It looks like Void Linux uses runit as the official system and it has a docker container, so maybe it could be plugged into a github action.
https://docs.voidlinux.org/config/services/index.html

I'm not entirely sure how coupled Runit and sv are, or how easy it is to tell when it's in use versus merely being installed on the system (since sv comes with all Busybox installations)

The checks today are fairly naive, not actually determining which system is being used, only that they're available. For my purposes, if there are multiple systems installed, I would require the user to specify which they want to use.

if there are multiple systems installed, I would require the user to specify which they want to use.

This isn't in control of the developer so I think you should just improve your checks.
Say hello to Bedrock Linux which makes multiple distros run on the same computer at the same time! You might have systemctl installed but be using Runit anyway. Hell, you might have sc.exe installed AND systemctl, because you could be running in WSL.

I'm certainly sympathetic to the desire to avoid scope creep and retain the constraint that, if multiple service managers are installed, the user must specify which.  I don't intend to add pressure here.
However, should LoganDark's request be heeded, I think it worth noting that most Linux systems with multiple service managers installed (including Bedrock Linux) have one which is privileged as the "main" one for the given session.  At least for most inits on most Linux systems,I don't think detecting this and defaulting to it would be terribly difficult.  Tedious to implement and test for every supported service manager, maybe, but not difficult.
Typically a Linux system is initialized by a service manager with PID 1.  Information about this process can be queried via the /proc/1/ directory.  If you're running as root (which I think would be the case for this project most of the time?) you can readlink() /proc/1/exe to get the path to the binary providing the init.  If the filename is systemd, the system is running systemd, if it's runit it's runit, etc.  If you're not running as root, /proc/1/cmdline is also available, which is a null-separated list of arguments used to launch the init.  I'm not sure if it's as reliable as /proc/1/exe, but you can read out its first null-separated field and check if the command is systemd, runit, etc.
The main exception is OpenRC, at least as I'm familiar with it on Gentoo systems.  PID 1 is actually a SysV binary (just named init via the /proc/1/ checks) which launches OpenRC as a separate, non-PID-1 process.  If there's no interest in supporting SysV, the above described /proc/1 checks could detect init and assume the system is OpenRC.  If there's interest in eventually supporting either SysV flavor (e.g. traditional with MXLinux or BSD-style with Slackware) then things get trickier.  Scanning /proc/* for an OpenRC process or parsing SysV configuration to see if it is launching OpenRC is doable but less trivial than just checking a file in /proc/1.

With regards to Bedrock Linux's need for this functionality, I think there's a few things to note:

Bedrock Linux does some unusual things with filepaths which may make it difficult to support here.  For example, Void Linux's runit setup involves creating a symlink into either /var/service or /etc/runit/runsvdir/default/ to enable a given service.  On Bedrock systems, it may be at another path, and determining which path would require Bedrock-specific logic.  An argument could be made that the return on investment to support Bedrock isn't worthwhile.
Bedrock Linux is a fairly niche project, further reducing return on investment expectations.  I'm surprised but happy to see it mentioned here.
Bedrock Linux has a Bedrock-specific service manager abstraction layer ("service manager manager" or smm) on the roadmap, although it's likely years away.  Once it is available, targeting it directly may make things much easier: it will be able to do things like detect which init is in use and which file path is needed to enable services.  An argument could be made to wait for that before trying to support Bedrock's complex use case.

I'm certainly sympathetic to the desire to avoid scope creep and retain the constraint that, if multiple service managers are installed, the user must specify which.

My main concern is the question of "who is the user here?". Certainly the developer using this library shouldn't choose which service manager to use, unless they know for sure. So this would be the user running the end application, all the way down, where actually specifying is difficult. How will the library get their input? Check for an environment variable and abort the process if it's not present? What will downstream crates think of that? Maybe shift the responsibility of asking for input onto the developer? That would be mildly inconvenient for everyone.
I think an auto-detection mechanism is legitimately the easiest method that provides the greatest ROI, not just for this library, but for all its downstream consumers (users and developers alike).

Thanks @paradigm and @LoganDark for all of the wonderful feedback and insight! I really value this kind of stuff, and it's already highlighted an area (auto detection) that I hadn't considered in depth.

I'm certainly sympathetic to the desire to avoid scope creep and retain the constraint that, if multiple service managers are installed, the user must specify which. I don't intend to add pressure here.

No pressure added! I have no qualms about supporting a more indepth attempt at determining the active manager :) I just lack the knowledge in many of these platforms to implement that myself.
For the moment, this library does the minimum I need for my primary project of distant, but I can revisit this later or more than happy to accept a contribution for this.

Typically a Linux system is initialized by a service manager with PID 1. Information about this process can be queried via the /proc/1/ directory.

Good to know! I'd seen in passing the PID 1 requirement for Linux service managers when I was setting up some of the CI testing, but didn't give it much thought. In the past, I've used the sysinfo crate to retrieve process information, so maybe I can use it to query for more information.

If you're running as root (which I think would be the case for this project most of the time?)

By default, you'll need elevated permissions to be able to write any of the files or execute commands. I've seen this when using my CLI to install services, start them, etc.

Windows requires running an administrative prompt (cmd.exe or powershell)
Unix requires elevation through something like sudo (or just being root)

If you're using user-level installation and access, then you don't need an escalation. With systemd, this is systemctl --user and launchctl on Mac can run regardless and just detects user-level configurations.
I think it's out of scope to request elevated privileges through the library, but there are crates like deelevate on Windows and sudo on Unix systems.

My main concern is the question of "who is the user here?". Certainly the developer using this library shouldn't choose which service manager to use, unless they know for sure. So this would be the user running the end application, all the way down, where actually specifying is difficult. How will the library get their input? Check for an environment variable and abort the process if it's not present? What will downstream crates think of that? Maybe shift the responsibility of asking for input onto the developer? That would be mildly inconvenient for everyone.

For my usecase, the user I'm referring to is the user of my CLI. So from that perspective, it goes library -> cli -> end user where end user has the option to select an alternative service manager from the default by providing a CLI parameter or config file setting.
I recognize that this isn't something that every Rust developer is going to do, so auto-detection would be a nice to have. Not ruling it out, but I don't have the depth of knowledge on the Linux/Unix side to do this over the span of a couple of days! 😄 Would love help here if you're interested in offer ❤

a CLI parameter or config file setting.

You won't have access to this from a Rust library. You don't do argument or config file parsing. So this won't work.

Thanks @paradigm and @LoganDark for all of the wonderful feedback and insight! I really value this kind of stuff, and it's already highlighted an area (auto detection) that I hadn't considered in depth.

Happy to help :)

Typically a Linux system is initialized by a service manager with PID 1. Information about this process can be queried via the /proc/1/ directory.

Good to know! I'd seen in passing the PID 1 requirement for Linux service managers when I was setting up some of the CI testing, but didn't give it much thought. In the past, I've used the sysinfo crate to retrieve process information, so maybe I can use it to query for more information.

While you could certainly use a specialized crate that provides the information if need be, you probably don't need one here if you're familiar with basic filesystem operations like reading files or the difference between a file name and a file path.  /proc is intended to be interacted with as though it is a normal directory that just contains normal files.  You'll probably figure it out quickly enough should you take the time to experiment with it.

Would love help here if you're interested in offer heart

I'm swamped with other projects and won't have time to actually submit something polished, but hopefully this is enough to get you started:
enum ServiceManager {
    Systemd,
    Runit,
    OpenRC,
}

impl std::str::FromStr for ServiceManager {
    type Err = std::io::Error;

    fn from_str(s: &str) -> Result<Self, Self::Err> {
        match s {
            "systemd" => Ok(ServiceManager::Systemd),
            "runit" => Ok(ServiceManager::Runit),
            "init" => Ok(ServiceManager::OpenRC), // or possibly SysV
            _ => todo!(), // unrecognized init error
        }
    }
}

// Requires root
fn init_from_exe() -> ServiceManager {
    // path to init binary, e.g. `/sbin/init`
    let exe_path = std::fs::read_link("/proc/1/exe").unwrap();
    // init binary filename, e.g. `init`
    let exe_filename = exe_path.file_name().unwrap();

    exe_filename.to_str().unwrap().parse().unwrap()
}

// Does not require, maybe less reliable than init_from_exe?
fn init_from_cmd() -> ServiceManager {
    // Full command line with arguments, e.g. `/sbin/init foo bar baz`
    let cmd_line = std::fs::read_to_string("/proc/1/cmd").unwrap();
    // The command itself without args, e.g. `/sbin/init`
    let cmd_path = cmd_line.split('\0').next().unwrap();
    // The command's filename, e.g. `init`
    let cmd_filename = cmd_path.rsplit('/').next().unwrap();

    cmd_filename.parse().unwrap()
}

In KISS Linux, init is a symlink to busybox. Assuming you're following symlinks, busybox should resolve to Runit.

busybox provides both runit-style runsvdir and SysV-style init.  KISS Linux may use busybox's runit functionality, but another distro may use its SysV functionality.  A busybox PID 1 binary be like the init PID 1 binary where the init binary name isn't sufficient.
I may need to walk back my initial assertion that reliably auto-detecting the main service manager would be trivial.  I think my relatively simple proposal stands for many distros, including most systemd distros and some runit distros, but not all.

authors: LoganDark chipsenkbeil paradigm

repo: chipsenkbeil/service-manager-rs


text:
How do I check if an item is already purchased?

I am implementing my first in-app purchase for iOS/Android. I realized https://github.com/idehub/react-native-billing (for Android), has a way to listOwnedProducts(). Is there an iOS equivalent using this library, or is the iOS process just different?
Specifically, this is a non-consumable purchase "No ads".

Usually you would save the purchased state on you backend for a given user.
If that's not an option, you can store what's purchases on device. There are many ways to do that outside the scope of this lib.
There also restorePurchase which you can use to find all purchased items.
On iOS there is no API to directly get purchased item other than restore purchases.

Ah, I see. I know how to do all of those then. Thanks.
Out of curiosity, why is saving the purchased state on the backend preferred over using restorePurchases? I guess I need to do that on the Android too then, because it seems to save it to the Google Play account and not the user's account on my app.
In general, it is a better practice to store "already purchased" in my own user database instead of relying on App Store/Google Play?

Also, I am bit confused about the restorePurchases. https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html
It says:

Include some mechanism in your app to let the user restore their purchases, such as a Restore Purchases button. Restoring purchases prompts for the user’s App Store credentials, which interrupts the flow of your app: because of this, don’t automatically restore purchases, especially not every time your app is launched.

But after trying out restorePurchases from this library, it seems to do exactly what I need: gets a list of the already purchased items. I'm calling every time the user launches the app, and it doesn't seem to be prompting for credentials every time.
Is the article just outdated? I noticed it doesn't mention anything about non-consumables. Are these treated differently? Because restorePurchases seems to work just fine.

Nevermind. It seems like it wasn't prompting me because after you do it the first time, it saves the account in iTunes/App Store settings. If this was a brand new user however, and I restore the purchases on app start, it prompts them before they even buy anything or look at the store, which seems very bad. Going to look into storing it to the user account on the backend like you said

going to close as per my comment above.

Hi guys, sorry for resurrecting this issue, I just wondered if you could briefly help me with a bit of advice. I'm trying to decide where to persist the purchase receipts for non-consumable IAPs in my app, and after hours of googling I'm none the wiser. What confuses me is this: above, and in several other places on the web, the advice is to store the purchase on my own backend for a given app user. But unless I'm mistaken, IAPs are tied to an iTunes account, not to an app-specific user account.
For example, I might log out of my app, sign up as a different app user, then tap "restore purchases" and I would then get access to my non-consumable IAP feature without paying again.
And, conversely, if I log out of my iTunes account and sign in to my iPhone with a different iTunes account, and then log into my app with my original app account, I won't have access to my non-consumable IAP feature unless I pay again.
All of this to say – it makes no sense to me to store the receipt with the app-specific user account, given that the purchase is in no way related to that account.
Or am I (very likely!) wrong? Thanks for any help you can give!

@Leeds-eBooks I can give you some examples where I saw no other alternative than storing it on the user metadata.

User is logging in
I need to determine whether they are ad-free or not. But to do this, I shouldn't be prompting them/calling "Restore Purchases" every time. It should just be saved on their user metadata.
Hide/show ads accordingly
(Also like I said in a previous post, you can have a brand new user -> they log in -> you have to call Restore Purchases just to check if they bought Ad-Free, which prompts them for their iTunes info before they've even looked at your in-app store for the first time!!! Bad.)

or simply, I want to show how many "Gems" the user currently has, which would've been a consumable IAP, having to press "Restore Purchases" every time for this doesn't make sense.
I ended up going with storing it on the backend as @chirag04 suggested + offering a Restore Purchases button (which iOS review makes you do anyway).

Thanks so much for your reply.

I need to determine whether they are ad-free or not. But to do this, I shouldn't be prompting them/calling "Restore Purchases" every time. It should just be saved on their user metadata.

If it's stored on the device, you can check without calling "Restore Purchases". If the app has been reinstalled, or we're on a new device, the user just taps "Restore Purchases" manually. I don't think this would be annoying.

(Also like I said in a previous post, you can have a brand new user -> they log in -> you have to call Restore Purchases just to check if they bought Ad-Free, which prompts them for their iTunes info before they've even looked at your in-app store for the first time!!! Bad.)

Again, if it's stored on the device, you don't need to do this. I would never call "Restore purchases" automatically – a new app user account, on the same old iTunes account, would just tap "Restore Purchases" manually.

Imagine if Facebook had a shitload of ads and had an IAP to remove them all forever. Wouldn't people be pissed if they upgraded from their Samsung Galaxy S7 to an iPhone 7, and had to buy that again?

This is a good point. Can I clarify something? If someone buys an IAP, then logs out of the app, then signs up with a new app account, they don't have the IAP purchase because they're a new user. But they're on the same iTunes account, so they can tap "Restore Purchases". At this point, in your app, do you store the restored purchase on this new user's account in your server?
Thanks again!

@Leeds-eBooks
Yeah, it really all depends on your use case. I don't know if you're familiar with Pokemon Go, but you could buy Pokeballs. Let's say you bought an IAP of 100 Pokeballs. No matter if you logged in from your iPhone 6, or iPhone 7, or iPad, or Android, you'd expect those Pokeballs to be there when you logged into your account, wouldn't you? In my case with the Ad-Free, my user already bought Ad-Free, so I didn't want to temporarily show them ads until they navigated to the Shop to press "Restore Purchases", which isn't even a thing on Android like it is on iOS. It seems like apps with online user profiles are a more fitting case for the backend storage. If you had an app where you didn't care if they lost their Pokeballs / progress, you could get away with something else. For example, a single-player game with unlockable maps, just using "Restore Purchases" would work fine I would imagine. As for your question, "If someone buys an IAP, then logs out of the app, then signs up with a new app account, they don't have the IAP purchase because they're a new user. But they're on the same iTunes account, so they can tap "Restore Purchases". At this point, in your app, do you store the restored purchase on this new user's account in your server?", in my case, yes. That's what I did. I don't expect them to re-buy "Ad-Free" on every account. This could be abused probably, but it's better than people getting pissed, 1 starring your app, asking for refunds, etc.

@booboothefool This is so helpful, thanks. You're totally right and as my use-case is extra premium features, you're right that a user with an account should only have to go through the purchase process once, and shouldn't be expected even to "restore purchases". And thanks for explicitly answering my last question, it really helps. Much appreciated!

Android IAP Server gives all information about product (including if it's purchased or not),
So what about iOS?
It's stupid to save it locally (prefs, defaults)
Android uses Google Play Services to get purchased items even in offline mode
For safety we can validate if user is really bought (and didn't use some LuckyPatcher, Freedom to get it for free) - https://developer.android.com/google/play/billing/billing_best_practices#validating-purchase-server
This additional validation we can make when user's device internet is enabled
So how does iOS work then?
I don't want to save anything locally

also implementing your own server just to check if user bought ad-free item is very excessive/expensive
our apps aren't pokemon go, your app may even not need any logging before user can use it
but yes only for pokemon go similar apps it looks good to have a server and facebook/google/other different variants to register/login in your app


text:
"Laravel Cheat Sheet 5.1 LTS" is offline

https://aufree.github.io/laravel5-cheatsheet/ returns 404

Fixed by #191
Thanks for sending the PR.

authors: chiraggude gnumoksha

repo: chiraggude/awesome-laravel


text:
Remove "preferGlobal" from "package.json" file

This PR removes the preferGlobal flag from the package.json file.
This project is used in library-mode by quite a few other projects like node-notifier and testem. Installing these other projects via NPM however results in the following warning:
npm WARN prefer global marked@0.3.5 should be installed with -g

There are basically two ways to resolve this warning:

split the library code from the cli code
make sure people understand that they can only use the cli tool if they install globally (can be done in the README file) and remove the preferGlobal flag

Since splitting the library is a lot more (unnecessary) work I'm proposing the second solution.

Resolves https://github.com/chjj/marked/issues/652 as well as e.g.:

https://github.com/senecajs/seneca/issues/313
https://github.com/ember-cli/ember-cli/issues/5539

@chjj any comments?

@chjj friendly ping

I don't think this project is maintained anymore.

@chjj feel free to reopen once this repo is maintained again

@Turbo87 can you reopen this? There are other issues open for the preferGlobal flag to be removed. As long as this issue is closed, then people who search for this issue will conclude it has been resolved or is intentionally not being addressed. Better that the issue be open to indicate it's still an outstanding issue/request.

@Turbo87 could we reopen this now that there are new contributors on this repo (@matt- @parleur)

@mdentremont unfortunately GitHub won't let me undelete the branch so I can't reopen. feel free to take the diff and open a new PR with it though.

See https://github.com/chjj/marked/pull/768

authors: JCMais Turbo87 jasonkarns mdentremont stefanpenner

repo: chjj/marked


text:
keep states available all the time

This PR fixes #10. It is based on code from the oral-b official extension, exactly in this method.
It was way simpler than I had expected, as the code for this extension and for the oral-b one were already quite similar.

Thank you!

repo: chkuendig/hass-amphiro-ble


text:
Fix header month/year being clipped in IE11

Fixes #1234

Perfect, thanks!

authors: chmln simshaun

repo: chmln/flatpickr


text:
Move this repo to nrf-rs

Hey @chocol4te, let's figure out the best way to move this repo to the nrf-rs organization!
I think there are two ways to do this:

You can make me an admin of this repo, and I can transfer it to the nrf-rs organization, and keep you as an admin
I can add you as a member of the nrf-rs organization, and you can transfer it there.

For the second option, it might take a couple days so I can get a :+1: from the other nrf-rs admins to add you to the team, and you will need 2FA enabled on your github account. Let me know if you have a preference!

I've sent you an invite for this repo :)
I'd definitely like to be more involved in using Rust on nRF devices and I'd love to be a member, but I'm not sure I can really make a solid time commitment right now. I'll of course maintain my contributions and hopefully work on other things, but I wouldn't want to agree to join and then cause issues.

Hey! I got the invite! I think you need to make me an admin/owner before I can transfer the repo

I couldn't make you anything higher than a collaborator, I thought transferring might be easier :)

Oops, I forgot that you probably could have just transferred here directly. Oh well, thanks for helping out with that, the repo is now in the right place!


text:
(GH-382) Add command line switch 'StopOnPackageFailure'

It should be possible to tell Boxstarter to stop after it fails to install a Chocolatey package.
This aims to replace GH-296
See discussion at GH-382

@mwallner I'm assuming this is not ready to go (as the [WIP] is still in the title)?

sorry @pauby - forgot to remove the [WIP] title - imo this PR is ready

Still a few items outstanding on this.

Awesome work! Thanks for your contribution!

authors: mwallner pauby

repo: chocolatey/boxstarter


text:
Ruby install error - Encoding error

Hello,
I am trying to install ruby and ruby dev kit using chocolatey cookbook but running into the below issues -
         * chocolatey[ruby] action install

           =====================================================================
===========
           Error executing action `install` on resource 'chocolatey[ruby]'
           =====================================================================
===========

           Encoding::UndefinedConversionError
           ----------------------------------
           "\xEF" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to UTF-16LE

           Resource Declaration:
           ---------------------
           # In C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/ruby/recipes/_configure-windows.rb

            22: chocolatey 'ruby' do
            23:   action :install
            24:   version node['ruby']['version']
            25: end
            26:

           Compiled Resource:
           ------------------
           # Declared in C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookb
ooks/ruby/recipes/_configure-windows.rb:22:in `from_file'

           chocolatey("ruby") do
             action [:install]
             retries 0
             retry_delay 2
             default_guard_interpreter :default
             declared_type :chocolatey
             cookbook_name "ruby"
             recipe_name "_configure-windows"
             version "2.3.0"
             package "ruby"
           end

           Platform:
           ---------
           x64-mingw32

       Running handlers:
       [2016-06-21T07:54:01-07:00] ERROR: Running exception handlers
       Running handlers complete
       [2016-06-21T07:54:01-07:00] ERROR: Exception handlers complete
       Chef Client failed. 43 resources updated in 05 minutes 34 seconds
       [2016-06-21T07:54:01-07:00] FATAL: Stacktrace dumped to C:/Users/vagrant/
AppData/Local/Temp/kitchen/cache/chef-stacktrace.out
       [2016-06-21T07:54:01-07:00] FATAL: Please provide the contents of the sta
cktrace.out file if you file a bug report
       [2016-06-21T07:54:01-07:00] FATAL: Encoding::UndefinedConversionError: ch
ocolatey[ruby] (ruby::_configure-windows line 22) had an error: Encoding::
UndefinedConversionError: "\xEF" to UTF-8 in conversion from ASCII-8BIT to UTF-8
 to UTF-16LE
$$$$$$ C:/opscode/chef/embedded/lib/ruby/2.1.0/x64-mingw32/dl.so: warning: alrea
dy initialized constant DL::RUBY_FREE
$$$$$$ C:/opscode/chef/embedded/lib/ruby/gems/2.1.0/gems/net-ssh-3.1.1/lib/net/s
sh/authentication/pageant.rb:16: warning: previous definition of RUBY_FREE was h
ere
$$$$$$ DL is deprecated, please use Fiddle
>>>>>> Converge failed on instance <default-windows-2008R2>.
>>>>>> Please see .kitchen/logs/default-windows-2008R2.log for more details
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: WinRM exited (1) for command: [
$env:PATH = [System.Environment]::GetEnvironmentVariable("PATH","Machine")

& $env:systemdrive\opscode\chef\bin\chef-client.bat --local-mode --config $env:T
EMP\kitchen\client.rb --log_level auto --force-formatter --no-color --json-attri
butes $env:TEMP\kitchen\dna.json --chef-zero-port 8889]
>>>>>> ----------------------

Running this on Windows 7 OS with Chefdk 0.12.0. Chef client version - 12.8.1 and kitchen version 1.8.0
Not sure if this is the right place to ask about it but would appreciate if you can help with this or redirect to correct forum.

Thanks for reporting! Can you add the stacktrace either by running with -l debug or pasting the stacktrace.out file?

[Uploading default-windows-2008R2.txt…]
Please find attached the logs generated by using -l debug option

For some reason Test-Kitchen only has the stacktrace from the chef failure hit by chef.bat and not the inner error. I think you'd be able to get that from C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/chef-stacktrace.out

I don't see any chef-stacktrace.out file generated on my system. Not sure what else can I check

closing due to inactivity.

repo: chocolatey/chocolatey-cookbook


text:
(#724) Add FAQ Regarding Changing Public IP

We have received questions about changing the public IP in the Application Gateway from Dynamic to Static and, while this is not possible, there is a workaround involving creating a CNAME record and then pointing the DNS record to it since it will remain static no matter what.
Description Of Changes
I added an FAQ to the C4BAE around changing the public IP in the Application Gateway.
Motivation and Context
This did not exist before and had been asked about, so we figured we'd include it.
Testing

[x] I have previewed these changes using the Docker Container or another method before submitting this pull request.

Change Types Made

[ ] Minor documentation fix (typos etc.).
[x] Major documentation change (refactoring, reformatting or adding documentation to existing page).
[ ] New documentation page added.
[ ] The change I have made should have a video added, and I have raised an issue for this.

Issue #

Change Checklist

[ ] Requires a change to menu structure (top or left hand side)/
[ ] Menu structure has been updated

Related Issue
Fixes #724

Could I suggest linking through to the existing docs regarding creating the CNAME for the Azure Environment rather than re-stating them? Means only having to update it once if the process changes (plus there's a screenshot! 😅)
I think the full anchor to link to for the is [link text](xref:c4b-azure#dns-configuration)

repo: chocolatey/docs


text:
Update fallback Chocolatey logo

Shimgen will try to use the logo of the executable it is shimming. However, if it cannot do that, it falls back to using a default icon of the Chocolatey logo. This logo is the old Chocolatey logo.
Update the default icon Chocolatey logo to be the new logo.

Based on some changes happening to the Chocolatey repositories, this issue has been moved from the chocolatey/shimgen repository to the chocolatey/home repository.

repo: chocolatey/home


text:
Return Element via Specified Selector Question

Expected behavior
document.querySelector("h1").classList.add('red');
Actual behavior
??
This is a super basic question but I'm very much a js / choo novice. How can I query select a tag and add a class with choo? What would be the best way to accomplish the expected behavior code?

@ohiosveryown heya! - usually the best way to go about this is update the class="" attribute on an element, and then call emit('render'). If you only update the value using classList, you might lose the value on a re-render. E.g.
var clx = ''
app.route('/', () => {
  return html`<button class=${clx} onclick=${onclick}>click</button>`
  function onclick () {
    clx += '.my-class'
  }
})

Hope this is helpful!

Thanks for not only the help here, but the rest that you provide for everyone 🙌🏼.

authors: ohiosveryown yoshuawuyts

repo: choojs/choo


text:
Say Ay

Please say Ay

Ay

No

ayy

Ay

Ay (cherenkov)

Ay!

authors: AKLREPO casper-y choonggg gawsfbet hafizmisron sphqxe vxncetxn

repo: choonggg/voluntr

license: Unlicense


text:
Allow for variable date input for subject DOB on add and edit

This component looks useful: https://www.npmjs.com/package/react-input-calendar

@alexfelmeister @seg1129 I recommend we close this issue. We've gotten some good buy in from our collaborators regarding from date standardization on DOB

👍

repo: chop-dbhi/biorepo-portal


text:
Test actions...

Test verify GitHub action, which is currently failing.

Testing complete.

repo: chris-reeves/bash-language-server


text:
How to push Failed Jobs into queue using PHP Script

Hi,
How can we know if a job is failed.. if the job is failed how to push into the queue using php script. and i've one more question how to restart workers programmatically.

Failed jobs can be found by checking the job's status, or by using the onFailure event.
Failed jobs are pushed onto a Redis list called {$prefix}:failed - you can pop them from there and push them (back) onto whatever queue you like using the normal methods.
Restarting workers isn't simple.  You can kill them programmatically easily enough using signals, but spawning a new one requires a monitoring script or tool of some kind.

@danhunsaker I am using the php-resque in a production app and php-resque heavily used on all 3rd party web service api calls. Yesterday I noticed some failed jobs by running the below code
//https://github.com/chrisboulton/php-resque/issues/171
$list = $redis->lrange('failed', 0, -1);

now am trying to requeue the failed jobs by following the instruction above and it seems to be working fine. but only the problem is, I cannot remove the elements from failed list.
foreach($list as $row) {
    $row    = json_decode($row);
    $job    = $row->payload;
    $queue  = $row->queue;
    Resque::enqueue($queue, $job->class, $job->args);
}

I tried the php $redis->lTrim('failed');  inside the loop but it does not seems to be working :( any help greatly appreciated...
and also it would be great to have a feature for requeue a failed job

finally found the solution:
$redis->lpop('failed'); //removes and returns the first element
'''

authors: arunp27 danhunsaker zspine

repo: chrisboulton/php-resque


text:
something is broken...

Hello,
Here's a sample file:
https://gist.githubusercontent.com/jungle-boogie/eef783ac0d33ec8d57e3/raw/4aa192e205b587887946e50f7e9e869fc342137f/tips.csv
When I open this file up, the whole file is red like its apart of the header. I cannot :Sum the fields with numbers because the results are all 0.
I'm using csv.vim from master.

Here's another example but much worse:
https://gist.githubusercontent.com/jungle-boogie/f81eb31b5292e19367fd/raw/1fbbf30d204c022a5083d94ebcffcc7bd57c38c7/gistfile1.txt
"sacramentocrimeJanuary2006.csv" 7585L, 793575C
Error detected while processing function <SNR>55_CheckSaneSearchPattern:
line   44:
E363: pattern uses more memory than 'maxmempattern'
Interrupted
Error detected while processing /usr/home/sean/.vim/bundle/csv.vim/syntax/csv.vim:
line  165:
Interrupted
Interrupt: Press ENTER or type command to continue

Hello,
I have the exact same issues.
Thank you for this great pluggin !
JB

what are your configuration values for the plugin?

Ah, okay the pattern needs to be correctly escaped. Should work now again.

I have only set
let g:csv_headerline=0
https://github.com/jbkopecky/dotfiles/blob/master/vimrc#L372
( I have checked that filetype plugin line is before syntax on: these two options are handled by vim plug)
I'll try to reproduce with a minimal vimrc and simple csv to make sure it is not because of an other plugin interfeering

Awesome, the last commit fixed it ! Thanks !

authors: chrisbra jbkopecky jungle-boogie

license: Vim


text:
Typescript errors on newly created project

I'm new to typescript.  No idea.

Looks like you're using atom. Have you tried downloading the TypeScript language into atom? Code looks good but it looks like it's trying to interpret the file as JavaScript.

I was using VS Code in fact.  Still learning TS...but I have found that these problems tend to resolve themselves.


text:
Contribute back several improvements

Please excuse the broad scope of this PR, but since you were interested in all the changes I did, I guess there's not much point in splitting it :)
This adds several improvements to the flame graph generation:

tlab allocations now measure the tlabSize, the size is converted to kB (fixes https://github.com/chrishantha/jfr-flame-graph/issues/10)
blocking is now measured by duration instead of count
io events are now supported
the project is now built with Gradle so that there is a 1-step install process (fixes https://github.com/chrishantha/jfr-flame-graph/issues/8)
broken stack frames no longer crash the tool (fixes https://github.com/chrishantha/jfr-flame-graph/issues/11)
a couple of refactorings to make the code shorter and easier to extend (e.g. adding new event types)

Thanks a lot @oehme for the PR. I was bit busy last few days and I couldn't check mails. I will check and merge your changes soon.

Switching to Gradle is not easy. I miss Maven so much. @oehme I did few changes to master. How do we release in Gradle? I added a gradle plugin, but couldn't check how it works.

Hi @oehme, I'm sorry, I didn't explain properly. As I mentioned earlier, I'm new to Gradle and I wanna keep using it. In fact, I wanted to try Gradle for a long time and your PR was an opportunity for me to learn it.
I don't publish artifacts, but I use mvn release:prepare to tag a version and update to next SNAPSHOT version. How can we do this with Gradle? I assume you have lots of experience with Gradle. :) That's why I wanted to have a conversation with you on this.
Few things I miss in Gradle for now are:

Use maven release plugin to tag versions
Use shade plugin to build a fat jar. As an alternative, I use the Gradle distribution directly now and I happy with that approach.

Since Gradle create scripts for both Windows and Linux, I am thinking of moving the flame graph creation logic to Java application.

Gradle has the shadow plugin for building fat jars. For tagging and general Git integration I prefer the gradle-git plugin.

Hi @oehme, I just got to know that you are in the Gradle core team! :) Thanks for the tips.
Could you please give me the links to shadow plugin and gradle-git plugin?
By the way, I meant executing Brendan Gregg's perl script from Java directly when I mentioned about moving FlameGraph creation to the Java. I hope that'll work for you.

That still requires Perl on Windows though - I already do that in my project, but Windows doesn't come with Perl by default. Anyway, I may just add some warning instead of moving it to Java completely.
See plugins.gradle.org for plugins.

Hi @oehme, Thanks for the tip. I updated README to use installDist.

authors: chrishantha oehme

repo: chrishantha/jfr-flame-graph


text:
Aggregating Reports

Is it possible to or will it ever be possible to aggregate reports from different campaigns? I would like to run several campaigns but compile all of the data into one report.

It is currently possible to do this. If you split your phish into several GoPhish campaigns, you can then report on all of those campaigns at once -- and get one report -- using GoReport.
Just gather up all of your campaign IDs. Then use the --combine argument when running your reports. Something like this:
python3 goreport.py --id 26,29-33,54 --format csv --combine
That command will collect the results of campaigns 26, 29, 30, 31, 32, 33, and 54 and make one big report out of the results, as if they were all one GoPhish campaign. You'll get one report document with everything combined. Without --combine you'll get separate reports for each campaign.
Does that answer your question?

repo: chrismaddalena/GoReport


text:
Fix non-https issue

Nodecraft will only serve up files over HTTPS. If you navigate via HTTP, most browsers will update you. Given that this flat out won't work unless https is used, may as well just force it here and move along :)

Waiiiit, sorry. Just realized how the local server fits into all of this – and set myself up for failure on forcing that SSL locally ;)
I'll rework my approach a bit


text:
Empty addTemaMember function should be implemented or removed.

The addTemaMember function is defined but does not have any implementation. This may cause confusion for other developers working on the code.
Steps to Reproduce:

Open the code and inspect the addTemaMember function.

Expected Behavior: The function should either be implemented to handle team member additions or be removed if unnecessary.
Suggested Fix: Implement the logic for adding a team member or remove the function if it is not needed.

@Iyeba-Kallon can you please direct in which file the function lives.
I couldn't find it at all.

authors: Iyeba-Kallon sparrowsl

repo: christex-foundation/pipeline


text:
Fixes to RBAC

Fixed the issues with the string, changing from string to list type.
Change back to imageTag: 0.10.1 since 0.11.0 doesn't work with existing RBAC

@wintrov why doesn't it work with v0.11.0?

@wintrov, why doesn't it work with v0.11.0?

For some reason, it didn't work for me in this version with the RBAC
only 0.10.1 with these RBAC worked for me.

@wintrov how did you run the chart? Can you provide your values please?

@wintrov how did you run the chart? Can you provide your values please?

@christianknell
attached an image
this is a log from the application

@wintrov fixed with the latest popeye-release v.0.11.1. Can you explain why you added additional permissions to the ClusterRole?

@saar-win thanks. Will merge this today.

@wintrov has been released with a seperate mr. Thanks for your contribution!

authors: christianknell wintrov

repo: christianknell/helm-charts


text:
rulefit.py - SyntaxError: invalid syntax, line 105

Against the latest commit: 646d8ee
Mar 26 14:45:43 ubuntu-xenial celery[27022]:   File "/app/venv/local/lib/python2.7/site-packages/rulefit/__init__.py", line 1, in <module>
Mar 26 14:45:43 ubuntu-xenial celery[27022]:     from .rulefit import RuleCondition, Rule, RuleEnsemble, RuleFit, FriedScale
Mar 26 14:45:43 ubuntu-xenial celery[27022]:   File "/app/venv/local/lib/python2.7/site-packages/rulefit/rulefit.py", line 105
Mar 26 14:45:43 ubuntu-xenial celery[27022]:     self.scale_multipliers=scale_multipliers
Mar 26 14:45:43 ubuntu-xenial celery[27022]:        ^
Mar 26 14:45:43 ubuntu-xenial celery[27022]: SyntaxError: invalid syntax

simple fix here, just missing a  ")" from line 104.  It should read
            scale_multipliers[i_col]=0.4/(1.0e-12 + np.std(X_trimmed[:,i_col]))

Thanks, can we get a tag bump 👍

Do you mean the version in setup.py? If so I just updated that to 0.3 to match the Change Log in readme.md. Otherwise let me know what's needed (I'm a bit of a git newbie!) Cheers

Thanks, I was referring to https://git-scm.com/book/en/v2/Git-Basics-Tagging, so it shows up as a release https://github.com/christophM/rulefit/tags
Eg: $ git tag v0.3 and $ git push --tags

Of course, done. Cheers, Raymond. Chris
On 22 June 2018 at 20:28, raymond-grointel notifications@github.com wrote:

Thanks, I was referring to https://git-scm.com/book/en/
v2/Git-Basics-Tagging, so it shows up as a release
https://github.com/christophM/rulefit/tags
Eg: $ git tag v0.3 and $ git push --tags
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/christophM/rulefit/issues/19#issuecomment-399425859,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AECQ91iGo0_k8sxDiXuEZXPQW10zLUPBks5t_OLQgaJpZM4S7Q-h
.

--
Chris Bartley
PhD Candidate
School of Computer Science
University of Western Australia
0419 964 128

authors: MikeDT chriswbartley raymond-grointel

repo: christophM/rulefit


text:
how to configure page.PrintToPDF() to make the footer overlap the content area

When i try to move page number to inside  the content. I found some bug of charecter.
What versions are you running?
$ go list -m github.com/chromedp/chromedp
github.com/chromedp/chromedp v0.8.2
$ google-chrome --version
Version 103.0.5060.114 (Official Build)
$ go version
go version go1.18.2 windows/amd64

What did you do? Include clear steps.

		chromedp.ActionFunc(func(ctx context.Context) error {
			buf, _, err := page.PrintToPDF().
				WithPrintBackground(false).
				WithPreferCSSPageSize(false).
				WithScale(1).
				WithDisplayHeaderFooter(true).
				WithPaperWidth(8.27).
				WithPaperHeight(11.69).
				WithLandscape(false).
				WithMarginTop(0.7).
				WithMarginRight(0).
				WithMarginBottom(0.7).
				WithMarginLeft(0).
				WithHeaderTemplate(" ").
				WithFooterTemplate(`

					page
					/

				`).
				Do(ctx)
			if err != nil {
				return err
			}
			*res = buf
			return nil
		})

What did you expect to see?
I want to move page number to show inside the content
What did you see instead?
I found some bug of charecter or  something try to block page number

		chromedp.ActionFunc(func(ctx context.Context) error {
			buf, _, err := page.PrintToPDF().
				WithPrintBackground(false).
				WithPreferCSSPageSize(false).
				WithScale(1).
				WithDisplayHeaderFooter(true).
				WithPaperWidth(8.27).
				WithPaperHeight(11.69).
				WithLandscape(false).
				WithMarginTop(0.7).
				WithMarginRight(0).
				WithMarginBottom(0.7).
				WithMarginLeft(0).
				WithHeaderTemplate(" ").
				WithFooterTemplate(`
-

+

					page
					/

				`).
				Do(ctx)
			if err != nil {
				return err
			}
			*res = buf
			return nil
		})

I understand what do you want now. I have change the title accordingly.
I don't know why you want to do this. But i don't think you can do that. If you can open the pdf file in a pdf editor (such as the Foxit PDF editor), you will find that there is a shape cover on the footer when the footer enters the content area. That's why your screenshot shows that the bottom part of the footer is lost (it's covered by the content area).

Thank you for your answer, Im understood now.

authors: ZekeLu komgrip

repo: chromedp/chromedp


text:
Temp usage issue

In molten_lock.h
    char lock_path[LOCK_PATH_SIZE];
So lock_path is always set
In molten_lock.h
    if (lock->lock_path == NULL) {
So this condition is always false.
       mktemp(lock->lock_path);
mktemp is unsecure and should not be used
$ man 3 mktemp
       Never use this function; see BUGS.
$ make
...
/work/GIT/Molten/common/molten_lock.c:147: warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'

Proposal: use php_open_temporary_fd_ex public PHP API.

the error already fix.
the common dir will be used for cli tool feature, cli tool will not be compiled with php ,  so public PHP API should not be used in it.

authors: remicollet silkcutKs

repo: chuan-yun/Molten


text:
I did translation for Armenian

This is translation for Armenian
English
'en': ["New Moon", "First Quarter", "Full Moon", "Last Quarter", "Northern Hemisphere", "Southern Hemisphere"],
Armenian
'am': ["Նորալուսին", "Առաջին քառորդ", "Լիալուսին", "Վերջին քառորդ", "Հյուսիսային կիսագունդ", "Հարավային կիսագունդ"],
sorry i don't know how to pull)

Thank you very much for the translation. I've added and deployed it:
https://hy.wttr.in/moon
it is hy (ISO 639-1) not am; am is the country code.

repo: chubin/pyphoon


text:
🛑 17货源 is down

In 56ed37e, 17货源 (https://www.17zwd.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 生意网 is back up in c951ee6 after .

repo: chwang-team/status-hao


text:
🛑 91家纺 is down

In 8eb853a, 91家纺 (https://www.91jf.com/) was down:

HTTP code: 403
Response time: 1182 ms

Resolved: 找家纺网 is back up in 48b7c1c after .


text:
Zigbee lights state

Hi there,
Nice work on that adapter.
I was thinking if it was possible to add states from certain devices like zigbee lights. (on/off). In a second step this states could be written into an array in case of power grid failure. (My iob is connected to an USV). When power is back those states are written back to each zigbee light. Currently my house is shinning like a xmas tree after power failure. :-) Cheers

I will think about it. But one small tip:
You can send the zigbee devices like hue a payload. It means you send your lights/smartplugs a message with a setting. Like the recover state after they  loosed the electricity. It is some work but you can try it with this javascript. Maybe it will work for you if you have hue lights in your zigbee adapter. Add the id in the script, start the script and turn on/off the lamp or power plug. That's all.
on ({id: 'zigbee.0.' + device + '.state', change: "ne"}, function (obj) {     sendTo("zigbee.0", "SendToDevice", {      "device": device,      "payload": {"hue_power_on_behavior": "recover"}     }, function(result) {     if (result.success) {console.log("success")}          else console.log("Error " + console.error); });   })

very true, what you saying. I used that for some Ikea bulbs and put the "power on behaviour" to previous, so my expectation was that the bulb itself will know the latest setiings, however that is not really working all the time hence the idea with your adapter  :-)


text:
Phantom html2canvas hybrid

#minor#
Use Phantom.callPhantom when using SlimerJS or PhantomJS. And use html2canvas otherwise.
Also added in html2canvas experimental svgs ( this will be worked on overtime. But for now this is better than nothing if you truly want your svgs)

Approved

Visual Acceptance tests:
New
Simple

Error

svg

svg-experimental


text:
nil pointer dereference in detectCiliumVersion

Bug report
+ /drone/src/_out/cilium connectivity test --test-namespace cilium-test --external-target google.com
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x242ef5b]

goroutine 100 [running]:
github.com/cilium/cilium-cli/connectivity/check.(*ConnectivityTest).detectCiliumVersion(0xc0003d8600, {0x39fb080?, 0xc000b8a800?})
	/cilium/connectivity/check/features.go:511 +0x37b
github.com/cilium/cilium-cli/connectivity/check.(*ConnectivityTest).SetupAndValidate(0xc0003d8600, {0x39fb080, 0xc000b8a800?}, 0xc001031f98)
	/cilium/connectivity/check/context.go:275 +0xd2
github.com/cilium/cilium-cli/connectivity.Run({0x39fb080, 0xc000b8a800}, 0xc0003d8600, 0xc001031fb0, 0xc001021f98?)
	/cilium/connectivity/suite.go:174 +0x68
github.com/cilium/cilium-cli/internal/cli/cmd.newCmdConnectivityTest.func1.2()
	/cilium/internal/cli/cmd/connectivity.go:93 +0xe9
created by github.com/cilium/cilium-cli/internal/cli/cmd.newCmdConnectivityTest.func1
	/cilium/internal/cli/cmd/connectivity.go:91 +0x61d

General Information
cilium version: v0.15.2
kube: 1.28

Any plans to fix this?

repo: cilium/cilium-cli


text:
CI: Runtime Test (privileged): Test/linuxPrivilegedIPv6OnlyTestSuite/TestArpPingHandling

CI failure
level=info msg="Detected devices" devices="[]" subsys=linux-datapath
level=info msg="Detected devices" devices="[dummy0]" subsys=linux-datapath
level=info msg="Detected devices" devices="[dummy0]" subsys=linux-datapath
level=info msg="Direct routing device detected" direct-routing-device=dummy1 subsys=linux-datapath
level=info msg="Detected devices" devices="[dummy0 dummy1 dummy2]" subsys=linux-datapath
level=info msg="Direct routing device detected" direct-routing-device=dummy1 subsys=linux-datapath
level=info msg="Detected devices" devices="[dummy0 dummy1 dummy2]" subsys=linux-datapath
level=info msg="Direct routing device detected" direct-routing-device=cilium_foo subsys=linux-datapath
level=info msg="IPv6 multicast device detected" ipv6-mcast-device=cilium_foo subsys=linux-datapath
level=info msg="Detected devices" devices="[cilium_foo dummy0 dummy1 dummy2]" subsys=linux-datapath
level=info msg="Direct routing device detected" direct-routing-device=cilium_foo subsys=linux-datapath
level=info msg="Detected devices" devices="[cilium_foo dummy0 dummy1 dummy2]" subsys=linux-datapath
level=info msg="Detected devices" devices="[cilium_foo dummy0 dummy1 dummy2 veth0]" subsys=linux-datapath
level=info msg="Detected devices" devices="[cilium_foo dummy0 dummy1 dummy2 dummy3 veth0]" subsys=linux-datapath
level=info msg="Detected devices" devices="[cilium_foo dummy0 dummy1 dummy2 dummy3 veth0]" subsys=linux-datapath
level=info msg="Detected devices" devices="[cilium_foo dummy0 dummy1 dummy2 veth0]" subsys=linux-datapath
level=info msg="Detected devices" devices="[bond0 cilium_foo dummy0 dummy1 veth0]" subsys=linux-datapath
level=info msg="Detected devices" devices="[dummy0 dummy1]" subsys=linux-datapath
level=info msg="Devices changed" devices="[dummy0]" subsys=linux-datapath
level=info msg="Listening for device changes" subsys=linux-datapath
level=info msg="Listening for device changes" subsys=linux-datapath
level=warning msg="Failed to get link by index" error="Link not found" linkIndex=3 subsys=linux-datapath
level=info msg="Devices changed" devices="[dummy0]" subsys=linux-datapath
level=info msg="Devices changed" devices="[dummy0 dummy1]" subsys=linux-datapath
level=info msg="Devices changed" devices="[dummy0 dummy1 veth0]" subsys=linux-datapath
level=info msg="Devices changed" devices="[dummy1 veth0]" subsys=linux-datapath
level=info msg="Listening for device changes" subsys=linux-datapath
level=info msg="Devices changed" devices="[dummy0]" subsys=linux-datapath
level=info msg="Devices changed" devices="[dummy0 dummy1]" subsys=linux-datapath
level=info msg="Unpinning map with incompatible properties" file-path=/sys/fs/bpf/tc/globals/cilium_tunnel_map new="Type:Hash KeySize:20 ValueSize:20 MaxEntries:65536 Flags:1" old="Type:Hash KeySize:20 ValueSize:20 MaxEntries:65536 Flags:0" subsys=bpf
level=warning msg="Attempted to deallocate a node ID that wasn't allocated" nodeID=0 subsys=linux-datapath
level=warning msg="Attempted to deallocate a node ID that wasn't allocated" nodeID=0 subsys=linux-datapath
level=warning msg="Attempted to deallocate a node ID that wasn't allocated" nodeID=0 subsys=linux-datapath
level=warning msg="Attempted to deallocate a node ID that wasn't allocated" nodeID=0 subsys=linux-datapath
level=info msg="Successfully removed non-GC'ed neighbor entries previously installed by cilium-agent" count=1 subsys=linux-datapath
level=warning msg="Attempted to deallocate a node ID that wasn't allocated" nodeID=0 subsys=linux-datapath
level=info msg="Successfully removed non-GC'ed neighbor entries previously installed by cilium-agent" count=1 subsys=linux-datapath
level=warning msg="Attempted to deallocate a node ID that wasn't allocated" nodeID=0 subsys=linux-datapath
level=warning msg="Attempted to deallocate a node ID that wasn't allocated" nodeID=0 subsys=linux-datapath
level=warning msg="Attempted to deallocate a node ID that wasn't allocated" nodeID=0 subsys=linux-datapath
--- FAIL: Test (120.90s)
    --- FAIL: Test/linuxPrivilegedIPv6OnlyTestSuite (6.68s)
        --- FAIL: Test/linuxPrivilegedIPv6OnlyTestSuite/TestArpPingHandling (2.12s)
            node_linux_test.go:1246:
                ... obtained bool = false
                ... expected bool = true

FAIL

Link
PR (for main branch)
No artifacts

Seem to have hit this in https://github.com/cilium/cilium/actions/runs/6084992765/job/16508115998#step:16:1138 in https://github.com/cilium/cilium/pull/27796.

Another hit here from https://github.com/cilium/cilium/pull/28166

https://github.com/cilium/cilium/pull/28238 hit this flake.

authors: bimmlerd danehans pippolo84 qmonnet

repo: cilium/cilium


text:
CFP: Cilium Gateway API - more Gateway features

Cilium Feature Proposal
Thanks for taking time to make a feature proposal for Cilium! If you have usage questions, please try the slack channel and see the FAQ first.
Is your proposed feature related to a problem?
No
Describe the feature you'd like

Basic rate limiting based on Services, or a more advanced approach to rate limiting, which could provide higher granularity. For example, in cooperation with HPA, sizing rate limits based on deployment replicas.
Access for a specific gateway based on roles and/or clientId in JWT.
Handling CORS requests.

Related upstream Gateway API issues for these features:

https://github.com/kubernetes-sigs/gateway-api/issues/326
https://github.com/kubernetes-sigs/gateway-api/issues/1494
https://github.com/kubernetes-sigs/gateway-api/issues/1767

Thanks for your issue.
The general  approach is to wait for features accepted in upstream first, then Cilium will plan to support them. As mentioned by above message from Mike, it seems like these GEPs are either closed or still in progress.

authors: jansoukup mikemorris sayboras


text:
preparing v1.8 branch

Signed-off-by: André Martins andre@cilium.io

That's done here https://github.com/cilium/cilium/pull/11783


text:
Makefile: Simplify to run faster

Avoid using grep options that are not supported on macOS. This
eliminates errors like this:
grep: repetition-operator operand invalid
expr: syntax error
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
        [-e pattern] [-f file] [--binary-files=value] [--color=when]
        [--context[=num]] [--directories=action] [--label] [--line-buffered]
        [--null] [pattern] [file ...]

Make 'go list' faster by adding '-find' option that eliminates
resolution of some state we are not using:
 "The -find flag causes list to identify the named packages but not
 resolve their dependencies: the Imports and Deps lists will be empty."

This makes 'make nothing' to run about twice as fast as before,
especially in the dev VM.
Signed-off-by: Jarno Rajahalme jarno@covalent.io

test-me-please

Thank you for this!
There are at least a couple of other scripts that use grep's -P (Perl-compatible regular expressions) which is not available on macOS:
https://github.com/cilium/cilium/blob/master/contrib/scripts/check-assert-deep-equals.sh#L10
https://github.com/cilium/cilium/blob/master/contrib/scripts/check-logging-subsys-field.sh#L20-L22
Would you be able to address these too?

authors: jrajahalme twpayne


text:
Add identity GC metrics for CRD allocation mode

This commit adds some metrics for cilium-operator garbage collector,
when using CRD allocation mode.
The metrics can be "alive" & "deleted" identities during each GC run:
cilium_operator_identity_gc_entries_total{status="alive"}
cilium_operator_identity_gc_entries_total{status="deleted"}
Beside that, there are two other metrics, total GC runs "success" &
"fail":
cilium_operator_identity_gc_runs_total{outcome="success"}
cilium_operator_identity_gc_runs_total{outcome="fail"}
Signed-off-by: Raphael Campos raphael@accuknox.com
Fixes: #14549

Hello guys,
I think a job failed, but I'm not sure about why... could you please help me, thanks in advance :D

@rscampos only Travis CI failed, I think it's been having issues for a while now.

Hello @aanm @errordeveloper,
@aanm I change the code as you suggest, If something is not ok, please let me know :D

[ok] put failedRuns after ctx.Err() != nil and before return from function
[ok] avoid executing the identityStore.List() function 2 time
[doubt] At yours first comment I get some doubt. I set deletedEntries to 0 every time identityGCIteration() is called in order to deletedEntries represents just the deleted entries at specific GC run. I used to same ideia that a guy used here pull #14254. I need move deletedEntries inside the for?

Hi @aanm,
I've looked at the failed test but I don't know if it is related, should I do some specific/more test?
tks

failure happen for https://github.com/cilium/cilium/issues/15998

authors: aanm errordeveloper rscampos