Updated the event message with proper json format for cmd info and job result

Description
This PR updates the event message with proper json format for cmd info and job result, so that the published message can be properly parsed with json.

Fixes: #4468

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[x] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[x] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?

Manually verified the published messages in RabbitMQ server queue. Some messages before & after changes below.
Before Changes:
VM START =>
{"jobId":"c60b3175-07fb-41ce-bc30-b5613cb3367f","commandEventType":"VM.START","processStatus":"0","cmdInfo":"{\"response\":\"json\",\"ctxUserId\":\"2\",\"httpmethod\":\"GET\",\"ctxStartEventId\":\"189\",\"id\":\"02131cb7-267e-4243-b84d-db1c372ada1d\",\"ctxDetails\":\"{\\\"interface com.cloud.vm.VirtualMachine\\\":\\\"02131cb7-267e-4243-b84d-db1c372ada1d\\\"}\",\"ctxAccountId\":\"2\",\"uuid\":\"02131cb7-267e-4243-b84d-db1c372ada1d\",\"cmdEventType\":\"VM.START\"}","instanceType":"VirtualMachine","jobResult":"org.apache.cloudstack.api.response.UserVmResponse/virtualmachine/{\"id\":\"02131cb7-267e-4243-b84d-db1c372ada1d\",\"name\":\"vm01\",\"displayname\":\"vm01\",\"account\":\"admin\",\"userid\":\"ba81a9e1-112c-11ec-b002-1e003300048c\",\"username\":\"admin\",\"domainid\":\"a18fbc93-112c-11ec-b002-1e003300048c\",\"domain\":\"ROOT\",\"created\":\"2021-09-09T19:29:52+0000\",\"lastupdated\":\"2021-09-13T11:09:51+0000\",\"state\":\"Running\",\"haenable\":false,\"zoneid\":\"be8e7d3e-2f57-433d-9c93-208949e2ec1d\",\"zonename\":\"ref-trl-1773-k-M7-suresh-anaparti\",\"hostid\":\"81e8aa99-9598-44c9-92cb-4881f5b4f3e2\",\"hostname\":\"ref-trl-1773-k-M7-suresh-anaparti-kvm2\",\"templateid\":\"a193173b-112c-11ec-b002-1e003300048c\",\"templatename\":\"CentOS 5.5(64-bit) no GUI (KVM)\",\"templatedisplaytext\":\"CentOS 5.5(64-bit) no GUI (KVM)\",\"passwordenabled\":false,\"serviceofferingid\":\"a2a3d572-9975-4930-87f9-ea507791b7d1\",\"serviceofferingname\":\"Small Instance\",\"cpunumber\":1,\"cpuspeed\":500,\"memory\":512,\"cpuused\":\"14.32%\",\"networkkbsread\":36,\"networkkbswrite\":54,\"diskkbsread\":339074,\"diskkbswrite\":229215,\"memorykbs\":524288,\"memoryintfreekbs\":0,\"memorytargetkbs\":524288,\"diskioread\":22344,\"diskiowrite\":9765,\"guestosid\":\"a1aa4d8c-112c-11ec-b002-1e003300048c\",\"rootdeviceid\":0,\"rootdevicetype\":\"ROOT\",\"securitygroup\":[],\"nic\":[{\"id\":\"6b0662bd-92a9-47f9-bb75-878883a807af\",\"networkid\":\"4ea42dd5-b867-43fb-9245-74c9bd2be4e0\",\"networkname\":\"nw01\",\"netmask\":\"<IP_ADDRESS>\",\"gateway\":\"<IP_ADDRESS>\",\"ipaddress\":\"<IP_ADDRESS>\",\"isolationuri\":\"vlan://1048\",\"broadcasturi\":\"vlan://1048\",\"traffictype\":\"Guest\",\"type\":\"Isolated\",\"isdefault\":true,\"macaddress\":\"02:00:29:ba:00:01\",\"secondaryip\":[],\"extradhcpoption\":[],\"deviceid\":\"0\"}],\"hypervisor\":\"KVM\",\"instancename\":\"i-2-3-VM\",\"details\":{\"memoryOvercommitRatio\":\"1.0\",\"Message.ReservedCapacityFreed.Flag\":\"true\",\"cpuOvercommitRatio\":\"2.0\"},\"affinitygroup\":[],\"displayvm\":true,\"isdynamicallyscalable\":false,\"ostypeid\":\"a1aa4d8c-112c-11ec-b002-1e003300048c\",\"osdisplayname\":\"CentOS 5.5 (64-bit)\",\"pooltype\":\"NetworkFilesystem\",\"receivedbytes\":0,\"sentbytes\":0,\"tags\":[],\"hasannotations\":false,\"jobid\":\"c60b3175-07fb-41ce-bc30-b5613cb3367f\",\"jobstatus\":0}","resultCode":"0","instanceUuid":"02131cb7-267e-4243-b84d-db1c372ada1d","user":"ba81a9e1-112c-11ec-b002-1e003300048c","command":"org.apache.cloudstack.api.command.admin.vm.StartVMCmdByAdmin","account":"ba80496f-112c-11ec-b002-1e003300048c","status":"SUCCEEDED"}
VM DESTROY =>
{"jobId":"0295dfdc-5387-49c0-aa63-56acb688a955","commandEventType":"VM.DESTROY","processStatus":"0","cmdInfo":"{\"response\":\"json\",\"ctxUserId\":\"2\",\"expunge\":\"true\",\"httpmethod\":\"GET\",\"ctxStartEventId\":\"192\",\"id\":\"02131cb7-267e-4243-b84d-db1c372ada1d\",\"volumeids\":\"1cabda2b-1ccd-4f16-b875-4cebd8ce86e2\",\"ctxDetails\":\"{\\\"interface com.cloud.storage.Volume\\\":\\\"1cabda2b-1ccd-4f16-b875-4cebd8ce86e2\\\",\\\"interface com.cloud.vm.VirtualMachine\\\":\\\"02131cb7-267e-4243-b84d-db1c372ada1d\\\"}\",\"ctxAccountId\":\"2\",\"uuid\":\"02131cb7-267e-4243-b84d-db1c372ada1d\",\"cmdEventType\":\"VM.DESTROY\"}","instanceType":"VirtualMachine","jobResult":"org.apache.cloudstack.api.response.UserVmResponse/null/{\"securitygroup\":[],\"nic\":[],\"affinitygroup\":[],\"tags\":[]}","resultCode":"0","instanceUuid":"02131cb7-267e-4243-b84d-db1c372ada1d","user":"ba81a9e1-112c-11ec-b002-1e003300048c","command":"org.apache.cloudstack.api.command.admin.vm.DestroyVMCmdByAdmin","account":"ba80496f-112c-11ec-b002-1e003300048c","status":"SUCCEEDED"}
After Changes:
VM CREATE =>
{"jobId":"376c1122-e9a3-4ff2-a567-f79604738765","commandEventType":"VM.CREATE","processStatus":"0","cmdInfo":{"iptonetworklist[0].networkid":"4ea42dd5-b867-43fb-9245-74c9bd2be4e0","boottype":"BIOS","httpmethod":"GET","templateid":"a193173b-112c-11ec-b002-1e003300048c","ctxAccountId":"2","uuid":"51df4992-7374-41f7-ac03-6a4eee654b63","cmdEventType":"VM.CREATE","startvm":"true","bootmode":"LEGACY","serviceofferingid":"a2a3d572-9975-4930-87f9-ea507791b7d1","response":"json","ctxUserId":"2","displayname":"vm03","name":"vm03","zoneid":"be8e7d3e-2f57-433d-9c93-208949e2ec1d","ctxStartEventId":"255","id":"6","ctxDetails":{"interface com.cloud.vm.VirtualMachine":"51df4992-7374-41f7-ac03-6a4eee654b63","interface com.cloud.template.VirtualMachineTemplate":"a193173b-112c-11ec-b002-1e003300048c","interface com.cloud.offering.ServiceOffering":"a2a3d572-9975-4930-87f9-ea507791b7d1","interface com.cloud.dc.DataCenter":"be8e7d3e-2f57-433d-9c93-208949e2ec1d"},"affinitygroupids":""},"instanceType":"VirtualMachine","jobResult":{"sentbytes":0,"memory":512,"templatedisplaytext":"CentOS 5.5(64-bit) no GUI (KVM)","jobstatus":0,"securitygroup":[],"hostid":"81e8aa99-9598-44c9-92cb-4881f5b4f3e2","nic":[{"id":"2823b313-fa7d-4385-97f1-00615f9b083a","networkid":"4ea42dd5-b867-43fb-9245-74c9bd2be4e0","networkname":"nw01","netmask":"<IP_ADDRESS>","gateway":"<IP_ADDRESS>","ipaddress":"<IP_ADDRESS>","isolationuri":"vlan://1054","broadcasturi":"vlan://1054","traffictype":"Guest","type":"Isolated","isdefault":true,"macaddress":"02:00:2a:9f:00:04","secondaryip":[],"extradhcpoption":[],"deviceid":"0"}],"affinitygroup":[],"guestosid":"a1aa4d8c-112c-11ec-b002-1e003300048c","userid":"ba81a9e1-112c-11ec-b002-1e003300048c","domainid":"a18fbc93-112c-11ec-b002-1e003300048c","passwordenabled":false,"jobid":"376c1122-e9a3-4ff2-a567-f79604738765","hostname":"ref-trl-1773-k-M7-suresh-anaparti-kvm2","hypervisor":"KVM","serviceofferingname":"Small Instance","templatename":"CentOS 5.5(64-bit) no GUI (KVM)","details":{"memoryOvercommitRatio":"1.0","cpuOvercommitRatio":"2.0"},"isdynamicallyscalable":false,"id":"51df4992-7374-41f7-ac03-6a4eee654b63","state":"Running","class":"org.apache.cloudstack.api.response.UserVmResponse","cpuspeed":500,"created":"2021-09-15T10:03:51+0000","ostypeid":"a1aa4d8c-112c-11ec-b002-1e003300048c","receivedbytes":0,"rootdevicetype":"ROOT","templateid":"a193173b-112c-11ec-b002-1e003300048c","zonename":"ref-trl-1773-k-M7-suresh-anaparti","rootdeviceid":0,"tags":[],"hasannotations":false,"instancename":"i-2-6-VM","serviceofferingid":"a2a3d572-9975-4930-87f9-ea507791b7d1","displayname":"vm03","domain":"ROOT","haenable":false,"name":"vm03","displayvm":true,"lastupdated":"2021-09-15T10:04:03+0000","zoneid":"be8e7d3e-2f57-433d-9c93-208949e2ec1d","cpunumber":1,"account":"admin","osdisplayname":"CentOS 5.5 (64-bit)","username":"admin","pooltype":"NetworkFilesystem","object":"virtualmachine"},"resultCode":"0","instanceUuid":"51df4992-7374-41f7-ac03-6a4eee654b63","user":"ba81a9e1-112c-11ec-b002-1e003300048c","command":"org.apache.cloudstack.api.command.admin.vm.DeployVMCmdByAdmin","account":"ba80496f-112c-11ec-b002-1e003300048c","status":"SUCCEEDED"}

VM DESTROY =>
{"jobId":"d434d411-2c39-4674-8fe0-6d1f3760b56e","commandEventType":"VM.DESTROY","processStatus":"0","cmdInfo":{"response":"json","ctxUserId":"2","expunge":"true","httpmethod":"GET","ctxStartEventId":"258","id":"51df4992-7374-41f7-ac03-6a4eee654b63","ctxDetails":{"interface com.cloud.vm.VirtualMachine":"51df4992-7374-41f7-ac03-6a4eee654b63"},"ctxAccountId":"2","uuid":"51df4992-7374-41f7-ac03-6a4eee654b63","cmdEventType":"VM.DESTROY"},"instanceType":"VirtualMachine","jobResult":{"securitygroup":[],"nic":[],"affinitygroup":[],"class":"org.apache.cloudstack.api.response.UserVmResponse","tags":[],"object":"null"},"resultCode":"0","instanceUuid":"51df4992-7374-41f7-ac03-6a4eee654b63","user":"ba81a9e1-112c-11ec-b002-1e003300048c","command":"org.apache.cloudstack.api.command.admin.vm.DestroyVMCmdByAdmin","account":"ba80496f-112c-11ec-b002-1e003300048c","status":"SUCCEEDED"}

@blueorangutan package

@sureshanaparti a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 1269

@blueorangutan test

@sureshanaparti a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-2067)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 40994 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5453-t2067-kvm-centos7.zip
Smoke tests completed. 87 look OK, 2 have errors
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_02_list_snapshots_with_removed_data_store
Error
53.48
test_snapshots.py

test_03_ssvm_internals
Failure
3.25
test_ssvm.py

Nevermind my own comment, the change is in the published event and not API response where the value is now a proper json. Lgtm.


How to backup data more efficiently

Describe the bug
How to backup data more efficiently (asynchronous backup or cluster synchronization)
System Setup

weed filer.sync -a xx.xx.xx.xx:8888 -a.path=/buckets/img-b localhost:8888 -b.path=/buckets/img-isActivePassive
OS version : Linux x64 ubuntu 20.04
output of weed version  :  version 30GB 2.97 77a7d7253f6e4f5ac48b9ac9e35a45a3229c1af1 linux amd64
filer.toml

[postgres2]
enabled = true
createTable = """
  CREATE TABLE IF NOT EXISTS "%s" (
    dirhash   BIGINT,
    name      VARCHAR(65535),
    directory VARCHAR(65535),
    meta      bytea,
    PRIMARY KEY (dirhash, name)
  );
"""
hostname = "<IP_ADDRESS>"
port = 5432
username = "seaweedfs"
password = "seaweedfs"
database = "seaweedfs"          # create or use an existing database
schema = ""
sslmode = "disable"
connection_max_idle = 100
connection_max_open = 100
connection_max_lifetime_seconds = 0
# if insert/upsert failing, you can disable upsert or update query syntax to match your RDBMS syntax:
enableUpsert = true
upsertQuery = """INSERT INTO "%[1]s" (dirhash,name,directory,meta) VALUES($1,$2,$3,$4) ON CONFLICT (dirhash,name) DO UPDATE SET meta = EXCLUDED.meta WHERE "%[1]s".meta != EXCLUDED.meta"""

Expected behavior
When I use weed filer.sync and weed filer.backup for cluster synchronization or backup, its efficiency is slow.
My current small file generation volume is about a thousand per second. When I synchronize data to the backup environment (local path) or other filer, its efficiency is slow, when my local time is already on May 10 On May 9, the synchronization progress is only until May 9, and the subsequent data will still increase so much. How should this be implemented to improve the efficiency, thank you.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
command is
weed filer.sync -a xx.xx.xx.xx:8888 -a.path=/buckets/img-b localhost:8888 -b.path=/buckets/img-isActivePassive
The results are shown as follows (due to the production environment IP, the following content has been modified to xx.xx.xx.xx):
I0510 09:48:46 04008 filer_sync.go:150] start sync xx.xx.xx.xx:8888(-327560088) => localhost:8888(-40597861) from 2022-05-09 16:10:30.845158911 +0800 CST(1652083830845158911)
I0510 09:48:48 04008 filer_sync.go:175] sync xx.xx.xx.xx:8888 to localhost:8888 progressed to 2022-05-09 16:10:30.845218394 +0800 CST -1.60/sec
I0510 09:48:51 04008 filer_sync.go:175] sync xx.xx.xx.xx:8888 to localhost:8888 progressed to 2022-05-09 16:10:30.93586501 +0800 CST 76.12/sec
I0510 09:48:54 04008 filer_sync.go:175] sync xx.xx.xx.xx:8888 to localhost:8888 progressed to 2022-05-09 16:10:30.952436394 +0800 CST 242.30/sec
I0510 09:48:57 04008 filer_sync.go:175] sync xx.xx.xx.xx:8888 to localhost:8888 progressed to 2022-05-09 16:10:30.961465227 +0800 CST 1319.48/sec
I0510 09:49:00 04008 filer_sync.go:175] sync xx.xx.xx.xx:8888 to localhost:8888 progressed to 2022-05-09 16:10:31.061059838 +0800 CST 46.19/sec
I0510 09:49:03 04008 filer_sync.go:175] sync xx.xx.xx.xx:8888 to localhost:8888 progressed to 2022-05-09 16:10:31.093830161 +0800 CST 15.61/sec

Screenshot of the issue in Chinese

Why not use English to describe this? This discussion may be useful to anybody in this community, so please use English to describe it which will make the discussion environment more harmonious and better.

Why not use English to describe this? This discussion may be useful to anybody in this community, so please use English to describe it which will make the discussion environment more harmonious and better.

My English is not very good, I'm afraid I can't express what I want.

Current filer.sync is single threaded. Need to parallelize it.

Current filer.sync is single threaded. Need to parallelize it.

Thanks, but when I run parallel they process the same files.

1
I0510 12:15:08 68026 filer_sync.go:175] sync xx.xx.xx.xx:8888 to localhost:8888 progressed to 2022-05-09 16:51:47.79919833 +0800 CST 57.98/sec
2
I0510 12:15:08 15451 filer_sync.go:175] sync xx.xx.xx.xx:8888 to localhost:8888 progressed to 2022-05-09 16:51:47.79919833 +0800 CST 46.39/sec

Sorry I wasn't clear. The code to parallelize it is not written yet.

Sorry I wasn't clear. The code to parallelize it is not written yet.
thanks


Fields Array

Query Fields Array
how could perform this query
const refQuery = refQuerybase.where({
    user_list: {'u9bxggdTQUgZvNJXmdMsQAeGD2z2':true}
});

AND
"events" : {
    "-KRV9i7lFUjh-Vd0uQna" : {
      "description" : "Description - test",
      "like_count" : 1,
      "like_users" : {
        "u9bxggdTQUgZvNJXmdMsQAeGD2z2" : true,
        "u9bxggdTQUgZRGERgrEgregerGER" : true
      },
      "name" : "Event - test",
      "uid" : "u9bxggdTQUgZvNJXmdMsQAeGD2z2"
    }
  },

we need to build a new Where end for setting the consultations within the collection array.
any ideas?

Your structure is too nested for Querybase to use. Querybase works off the Firebase Database best practice of keep your data shallow. Rather than query using an object of user_list, you should create a root data structure of user_list and query from there.


cleanup(config): add more info

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

/kind release

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area build

/area engine

/area tests

/area proposals

/area CI

What this PR does / why we need it:
Add more info to the config descriptions, very minor addition.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

cleanup(config): add more info

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: incertum
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [incertum]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, incertum
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,incertum]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: ba82b38b123d280b012a6ac69799001072fefda4


Unknown error, call getLastResponse() to find out what happened.

When I run this code
$list_id = '0961f7f558';

        $result = $MailChimp->post("lists/$list_id/members", [
                        'email_address' =><EMAIL_ADDRESS>                        'status'        => 'subscribed',
                    ]);
        if ($MailChimp->success()) {
            print_r($result);
        } else {
            echo $MailChimp->getLastError();
        }

I get Unknown error, call getLastResponse() to find out what happened.
I have ran composer update and nothing seems to fix this issue.

I ran into this when testing on a local machine. I did not have the SSL CA Certificates set up on my machine correctly. Try setting SSL to false.

Thankyou very much! I was struggling for hours trying to find the solution 👍


Master

@hsmosi This demo repo is quite old, so I'm not sure what your intended change is here - it looks like you're just merging changes we made years ago into a different branch? What is the thinking here?


Use with ant design/less

Hi,
I use the popular Ant Design UI library in my project and for some reason after adding craco-esbuild (which is 2x faster than babel, woohoo!) I'm unable to control the customized theme provider by antd (they use less for that). It seems that the output bundle doesn't include the compiled css rules.
I'm not even sure why this happens, as this package replaces babel and less files are handled by webpack anyways 🤔
Would be superb if you have any lead/suggestion on that 🙏

Were you using Create react app before? I can't find any less loader in the create react app config https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/config/webpack.config.js
In case you were not you will probably have to use https://github.com/DocSpring/craco-less to add less support to it.

@pradel thanks for the answer.

Were you using Create react app before? I can't find any less loader in the create react app config

You're right, you need to use a custom loader for that, sorry if it wasn't clear.
I use craco-antd which is a nice wrapper for craco-less.
When adding craco-esbuild to the craco config, it seems that the less files aren't loaded anymore and the relevant styles are missing from the bundle. I tried using craco-less directly but that also didn't work.
I can't figure why that can happen as this package only replaces babel-loader which doesn't have anything to do with less styles 🤔

After taking a quick look at craco-antd I can see that they are actually using babel https://github.com/DocSpring/craco-antd/blob/master/lib/craco-antd.js#L87

Yeah but essentially using babel-plugin-import isn't mandatory by antd itself, it just an enhancement to support small bundle size. I'd expect it to work regardless of this enhancement 😞

@yaronya does this approach work for you https://ant.design/docs/react/use-with-create-react-app ? (using craco-less directly)

So I used craco-less but apparently I had to explicitly import the .less file in my root React component.
It works like a charm now! Thanks!


Size of fonts

The fonts shipped with this theme seem to be significantly bigger than the ones shipped from Google Fonts. i.e, lato-bold.woff2 is 180KB while the Google Fonts one is only 22KB. This may not seem like a lot, but after switching all of my fonts to load from Google Fonts, my font bandwidth usage was cut in half from 393,624 bytes to 136,203 bytes.
Is there a reason why the fonts are so big? Can they be compressed?

I see now that you using Lato 2.0, which has many more glyphs than Lato 1.0 (which is the version hosted on Google Fonts).


Feat: Implement Endpoint to RETRIEVE About Page Content: settable from admin

Linear Ticket: Implement to retrieve "About Page" content

Description

This PR implements an endpoint to retrieve the content of the About page, allowing administrators to view the current information efficiently.
Acceptance Criteria

Retrieve About Page Content
Retrieve the current content of the About page.
Ensure resource is accessible to authorised and authenticated admins only.
Return a structured response with the current content and last update timestamp.
Handle scenarios where retrieval fails appropriately.

Related Issue (Link to issue ticket)

My PR Closes https://github.com/hngprojects/hng_boilerplate_nestjs/issues/265

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Unable the push update because the repo is cloased.


LIBCLOUD-775 Update node, update VMware tools, add storage, change st…

…orage size or speed, remove storage. With tests

Added some comments for future improvements (not a blocker for this PR, you can address them in a future PR).
Besides that, LGTM, +1.
Please also make sure you update changelog.

Will update CHANGES.rst separately since I had a couple of other closed PRs anyway.


Create pt-BR translation file

OK, brand new file now. ;)

Brilliant, thanks very much @rafaelbeckel :+1: :shipit:


clangd define expansion doesn't display correctly

when hovering over call to this macro:

the info box is truncated:

when using set window lsp_hover_anchor true it's more truncated:

I think this is related to https://github.com/mawww/kakoune/issues/2237

ah, it seems so


Replace all pwm measurements with PIO programs

Hi Ian,
I now have some new code to get rid of the pwm and only use PIO. Note that I haven't touched the multiple pins frequency measurement.

I'll merge for testing, and I'm putting out a call for testers of the new freq and PWM PIO version. Is there a fall back plan if all the state machines are in use?

The fall back would be to revert to the use of pwm at this point. By the way it seems to me that every use of a sm should be using
the pio_sm_claim API, probably after verifying that the sm is not already claimed. Same deal for checking the program memory space. What do you think?


Connection rejection rule in pg_hba.conf

Steps to reproduce

Run backups periodically, every 2 hours.

Expected behavior
No connection rejection rule:
root@postgresql-k8s-0:/# cat /var/lib/postgresql/data/pgdata/pg_hba.conf
Do not edit this file manually!
# It will be overwritten by Patroni!
local all backup peer map=operator
local all monitoring password
hostssl all all <IP_ADDRESS>/0 md5
hostssl replication replication <IP_ADDRESS>/32 md5
hostssl replication replication <IP_ADDRESS>/32 md5
hostssl replication replication postgresql-k8s-0.postgresql-k8s-endpoints.prod-temporal.svc.cluster.local md5
hostssl replication replication postgresql-k8s-1.postgresql-k8s-endpoints.prod-temporal.svc.cluster.local md5
hostssl replication replication postgresql-k8s-2.postgresql-k8s-endpoints.prod-temporal.svc.cluster.local md5
EOF

Actual behavior

Connection rejection rule:
root@postgresql-k8s-0:/# cat /var/lib/postgresql/data/pgdata/pg_hba.conf
# Do not edit this file manually!
# It will be overwritten by Patroni!
local all backup peer map=operator
local all monitoring password
hostssl all all <IP_ADDRESS>/0 reject
hostssl all all postgresql-k8s-0.postgresql-k8s-endpoints.stg-data-visualization-34.svc.cluster.local md5
hostssl replication replication <IP_ADDRESS>/32 md5
hostssl replication replication <IP_ADDRESS>/32 md5
hostssl replication replication postgresql-k8s-0.postgresql-k8s-endpoints.stg-data-visualization-34.svc.cluster.local md5
hostssl replication replication postgresql-k8s-1.postgresql-k8s-endpoints.stg-data-visualization-34.svc.cluster.local md5
hostssl replication replication postgresql-k8s-2.postgresql-k8s-endpoints.stg-data-visualization-34.svc.cluster.local md5

Versions

Juju agent: 3.4.5

Charm revision: 281
Environment: PS6
Log output

Juju debug log:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/patroni/api.py", line 1384, in query
    with self.patroni.postgresql.connection().cursor() as cursor:
  File "/usr/lib/python3/dist-packages/patroni/postgresql/__init__.py", line 335, in connection
    return self._connection.get()
  File "/usr/lib/python3/dist-packages/patroni/postgresql/connection.py", line 29, in get
    self._connection = psycopg.connect(**self._conn_kwargs)
  File "/usr/lib/python3/dist-packages/patroni/psycopg.py", line 103, in connect
    ret = _connect(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/psycopg2/__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused
    Is the server running on that host and accepting TCP/IP connections?
connection to server at "localhost" (<IP_ADDRESS>), port 5432 failed: FATAL:  pg_hba.conf rejects connection for host "<IP_ADDRESS>", user "operator", database "postgres", SSL encryption
connection to server at "localhost" (<IP_ADDRESS>), port 5432 failed: FATAL:  no pg_hba.conf entry for host "<IP_ADDRESS>", user "operator", database "postgres", no encryption

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/patroni/api.py", line 1265, in get_postgresql_status
    row = self.query(stmt.format(postgresql.wal_name, postgresql.lsn_name), retry=retry)[0]
  File "/usr/lib/python3/dist-packages/patroni/api.py", line 1197, in query
    return self.server.query(sql, *params)
  File "/usr/lib/python3/dist-packages/patroni/api.py", line 1390, in query
    raise PostgresConnectionException('connection problems')
patroni.exceptions.PostgresConnectionException: connection problems

Additional context

MM discussions:

https://chat.canonical.com/canonical/pl/6ijzw7rzebfz7n7cesh8dkyfho
https://chat.canonical.com/canonical/pl/17gyxfsas7bhjq8ewh8jnzxbty
https://chat.canonical.com/canonical/pl/ghswfoygt3bn3q918sxxcmoaty
https://chat.canonical.com/canonical/pl/buc871tk7jrmtkecjaxdo4smwc
https://chat.canonical.com/canonical/pl/rr4r7zwehtdctbw6ywuk6c5dzy

Connection is disabled at: https://github.com/canonical/postgresql-k8s-operator/blob/2a53fa3efa42b032362ae78d42a4020f4c2b8c24/src/backups.py#L743
Connection should have been enabled again at: https://github.com/canonical/postgresql-k8s-operator/blob/2a53fa3efa42b032362ae78d42a4020f4c2b8c24/src/backups.py#L822


updated documentation for PodPriority

as PodPriority by design only works in kube-system NS.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Remember to delete this note before submitting your pull request.
For pull requests on 1.15 Features: set Milestone to 1.15 and Base Branch to dev-1.15
For pull requests on Chinese localization, set Base Branch to release-1.14
For pull requests on Korean Localization: set Base Branch to dev-1.14-ko.<latest team milestone>
If you need Help on editing and submitting pull requests, visit:
https://kubernetes.io/docs/contribute/start/#improve-existing-content.
If you need Help on choosing which branch to use, visit:
https://kubernetes.io/docs/contribute/start#choose-which-git-branch-to-use.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

@ajitchahal 👋 Please feel free to /reopen when you're ready to continue.
/close


Instance VMs have a public IP address

since we an NLB, the VMs should not need a public IP

v1.0.5 removes the external NLB IP


[SPARK-46215][CORE] Improve FileSystemPersistenceEngine to allow nonexistent parents

What changes were proposed in this pull request?
This PR aims to improve FileSystemPersistenceEngine to allow non-exist parents
Why are the changes needed?
To prevent the following error,
java.io.IOException: No such file or directory
  at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
  at java.base/java.io.File.createNewFile(File.java:1043)
  at org.apache.spark.deploy.master.FileSystemPersistenceEngine.serializeIntoFile(FileSystemPersistenceEngine.scala:62)
  at org.apache.spark.deploy.master.FileSystemPersistenceEngine.persist(FileSystemPersistenceEngine.scala:45)

Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass the CIs with the newly added test case.
Was this patch authored or co-authored using generative AI tooling?
No.

Could you review this when you have some time, @LuciferYang ?

Could you review this PR, @wangyum ?

Merged to master for Apache Spark 4.0.0

@dongjoon-hyun This PR causes a regression:
23/12/08 05:11:45 INFO FileSystemRecoveryModeFactory: Persisting recovery state to directory: /tmp
23/12/08 05:11:45 ERROR Inbox: Ignoring error
java.nio.file.FileAlreadyExistsException: /tmp
	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:88)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
	at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
	at java.nio.file.Files.createDirectory(Files.java:674)
	at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
	at java.nio.file.Files.createDirectories(Files.java:727)
	at org.apache.spark.deploy.master.FileSystemPersistenceEngine.<init>(FileSystemPersistenceEngine.scala:42)
	at org.apache.spark.deploy.master.FileSystemRecoveryModeFactory.createPersistenceEngine(RecoveryModeFactory.scala:60)
	at org.apache.spark.deploy.master.Master.onStart(Master.scala:215)
	at org.apache.spark.rpc.netty.Inbox.$anonfun$process$1(Inbox.scala:120)
	at org.apache.spark.rpc.netty.Inbox.safelyCall(Inbox.scala:213)
	at org.apache.spark.rpc.netty.Inbox.process(Inbox.scala:100)
	at org.apache.spark.rpc.netty.MessageLoop.org$apache$spark$rpc$netty$MessageLoop$$receiveLoop(MessageLoop.scala:75)
	at org.apache.spark.rpc.netty.MessageLoop$$anon$1.run(MessageLoop.scala:41)
	at org.apache.spark.util.threads.SparkThreadLocalCapturingRunnable.$anonfun$run$1(SparkThreadLocalForwardingThreadPoolExecutor.scala:134)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at com.databricks.spark.util.IdentityClaim$.withClaim(IdentityClaim.scala:48)
	at org.apache.spark.util.threads.SparkThreadLocalCapturingHelper.$anonfun$runWithCaptured$4(SparkThreadLocalForwardingThreadPoolExecutor.scala:91)
	at com.databricks.unity.UCSEphemeralState$Handle.runWith(UCSEphemeralState.scala:41)
	at org.apache.spark.util.threads.SparkThreadLocalCapturingHelper.runWithCaptured(SparkThreadLocalForwardingThreadPoolExecutor.scala:90)
	at org.apache.spark.util.threads.SparkThreadLocalCapturingHelper.runWithCaptured$(SparkThreadLocalForwardingThreadPoolExecutor.scala:67)
	at org.apache.spark.util.threads.SparkThreadLocalCapturingRunnable.runWithCaptured(SparkThreadLocalForwardingThreadPoolExecutor.scala:131)
	at org.apache.spark.util.threads.SparkThreadLocalCapturingRunnable.run(SparkThreadLocalForwardingThreadPoolExecutor.scala:134)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:750)

Can be reproduced by running MasterSuite.

Thank you for reporting, @sadikovi . Are you using Java 17+, right?

FYI, this is Java 17 behavior which FileAlreadyExistsException happens only if dir exists but is not a directory

https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/file/Files.html#createDirectories(java.nio.file.Path,java.nio.file.attribute.FileAttribute...)

For Java 17, FileAlreadyExistsException only happens if dir exists but is not a directory.

https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/file/Files.html#createDirectories(java.nio.file.Path,java.nio.file.attribute.FileAttribute...)

Nah, I can reproduce this on Ubuntu. This is due to usage of symlinks. If you have a symlink pointing to a directory, the createDirectories API will throw an error. You can run this on Linux:
%sh
# mkdir /tmp/ivan/
# ln -s /tmp/ivan /tmp/ivan_symlink
ls -alh /tmp/ivan_symlink

import java.nio.file._

Files.createDirectories(Paths.get("/tmp/ivan_symlink"))
// Throws FileAlreadyExistsException: /tmp/ivan_symlink

java.io.File returns false correctly because the directory exists.

Just FYI, in Mac OS, /tmp is not a directory. So, the failure is a valid one. I don't think there is a regression here, @sadikovi . WDYT?
$ ls -al /tmp
lrwxr-xr-x@ 1 root  wheel  11 Nov 17 02:37 /tmp -> private/tmp

This is not Mac specific, happens on Ubuntu as well.

In fact, I reproed it on Ubuntu.

Thank you. Let me take a look at that specific case, @sadikovi ~

Yes, there is a difference in API between java.io and java.nio on how intermediate symlinks are handled when creating a directory.

Ya, I believe I can handle it easily because it was a case always mkdir returns false before (as you pointed). Please give me one hour as a follow-up. :)
jshell> new File("/tmp").mkdir()
$1 ==> false

BTW, what did you mean by this, @sadikovi ?

Can be reproduced by running MasterSuite.

When I run it, it passes all tests as of today.
$ build/sbt "core/testOnly *.MasterSuite"
...
[info] MasterSuite:
[info] - can use a custom recovery mode factory (409 milliseconds)
[info] - master correctly recover the application (59 milliseconds)
[info] - SPARK-46205: Recovery with Kryo Serializer (28 milliseconds)
[info] - SPARK-46216: Recovery without compression (21 milliseconds)
[info] - SPARK-46216: Recovery with compression (21 milliseconds)
[info] - SPARK-46258: Recovery with RocksDB (335 milliseconds)
[info] - master/worker web ui available (213 milliseconds)
[info] - master/worker web ui available with reverseProxy (30 seconds, 120 milliseconds)
[info] - master/worker web ui available behind front-end reverseProxy (30 seconds, 110 milliseconds)
[info] - basic scheduling - spread out (41 milliseconds)
[info] - basic scheduling - no spread out (15 milliseconds)
[info] - basic scheduling with more memory - spread out (10 milliseconds)
[info] - basic scheduling with more memory - no spread out (8 milliseconds)
[info] - scheduling with max cores - spread out (9 milliseconds)
[info] - scheduling with max cores - no spread out (8 milliseconds)
[info] - scheduling with cores per executor - spread out (8 milliseconds)
[info] - scheduling with cores per executor - no spread out (9 milliseconds)
[info] - scheduling with cores per executor AND max cores - spread out (14 milliseconds)
[info] - scheduling with cores per executor AND max cores - no spread out (8 milliseconds)
[info] - scheduling with executor limit - spread out (8 milliseconds)
[info] - scheduling with executor limit - no spread out (7 milliseconds)
[info] - scheduling with executor limit AND max cores - spread out (7 milliseconds)
[info] - scheduling with executor limit AND max cores - no spread out (7 milliseconds)
[info] - scheduling with executor limit AND cores per executor - spread out (7 milliseconds)
[info] - scheduling with executor limit AND cores per executor - no spread out (7 milliseconds)
[info] - scheduling with executor limit AND cores per executor AND max cores - spread out (8 milliseconds)
[info] - scheduling with executor limit AND cores per executor AND max cores - no spread out (7 milliseconds)
[info] - scheduling for app with multiple resource profiles (46 milliseconds)
[info] - scheduling for app with multiple resource profiles with max cores (41 milliseconds)
[info] - SPARK-45174: scheduling with max drivers (9 milliseconds)
[info] - SPARK-13604: Master should ask Worker kill unknown executors and drivers (21 milliseconds)
[info] - SPARK-20529: Master should reply the address received from worker (17 milliseconds)
[info] - SPARK-27510: Master should avoid dead loop while launching executor failed in Worker (32 milliseconds)
[info] - All workers on a host should be decommissioned (26 milliseconds)
[info] - No workers should be decommissioned with invalid host (24 milliseconds)
[info] - Only worker on host should be decommissioned (18 milliseconds)
[info] - SPARK-19900: there should be a corresponding driver for the app after relaunching driver (2 seconds, 55 milliseconds
[info] - assign/recycle resources to/from driver (34 milliseconds)
[info] - assign/recycle resources to/from executor (28 milliseconds)
[info] - resource description with multiple resource profiles (1 millisecond)
[info] - SPARK-45753: Support driver id pattern (7 milliseconds)
[info] - SPARK-45753: Prevent invalid driver id patterns (6 milliseconds)
[info] - SPARK-45754: Support app id pattern (6 milliseconds)
[info] - SPARK-45754: Prevent invalid app id patterns (5 milliseconds)
[info] - SPARK-45785: Rotate app num with modulo operation (75 milliseconds)
[info] - SPARK-45756: Use appName for appId (9 milliseconds)
[info] Run completed in 1 minute, 5 seconds.
[info] Total number of tests run: 46
[info] Suites: completed 1, aborted 0
[info] Tests: succeeded 46, failed 0, canceled 0, ignored 0, pending 0
[info] All tests passed.
[success] Total time: 92 s (01:32), completed Dec 10, 2023, 3:24:41 PM

Here is the follow-up, @sadikovi .

https://github.com/apache/spark/pull/44285


Update multi-factor-authentication-faq.md

Changed Modern authentication link for Office 2013
Now modern authentication is available to any customer running the March 2015 or later update for Office 2013. For more information, see the Office 2013 modern authentication public preview announced.

@Daya-Patil : Thanks for your contribution! The author, @MicrosoftGuyJFlo, has been notified to review your proposed change.

@Daya-Patil : Thanks for your contribution! The author, @MicrosoftGuyJFlo, has been notified to review your proposed change.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: Daya-Patil sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@Daya-Patil : Thanks for your contribution! The author, @nacharya1, has been notified to review your proposed change.

@rjagiewich : Thanks for your contribution! The author, @nacharya1, has been notified to review your proposed change.

The changes in this submission touch multiple articles. Requesting review from multiple authors.
Reviewers, please verify the changes for the file(s) assigned to you: @nacharya1 and @MicrosoftGuyJFlo.
Thanks.

I am sorry to put you different changes in 1 PR. Will make sure that doesnot happen next time.
Below change is yet not showing up
Changed Modern authentication link for Office 2013
Now modern authentication is available to any customer running the March 2015 or later update for Office 2013. For more information, see the Office 2013 modern authentication public preview announced.


Filter tasks by variables in Task Search not working

Using Task List client to retrieve tasks and filtering by specific variables not working, the filter is not used and all tasks are retrieved
Version: <IP_ADDRESS>

Hi @AmmarMohamed21,
Could you tell me what is your tasklist version (should be 8.3.3 at least) and could you write a peace of code that you tested and that is not working. This version as tested with some simple searches like this:
ts = new TaskSearch().addVariableFilter("riskLevels", List.of("yellow", "yellow")).addVariableFilter("age", 30);
TaskList tasksFromVariableSearch = client.getTasks(ts);

Version <IP_ADDRESS>,
I was testing and figured out few cases
For Strings:
//This works
TaskSearch ts = new TaskSearch();
ts.addVariableFilter("id", "12345");

// This Doesn't work
TaskByVariables taskByVariable1 = new TaskByVariables();
taskByVariable1.setName("id");
taskByVariable1.setValue("12345");
List<TaskByVariables> taskByVariablesList = new ArrayList<>();
taskByVariablesList.add(taskByVariable1);
ts.setTaskVariables(taskByVariablesList);

// This Works for a String by adding \" \"
TaskByVariables taskByVariable1 = new TaskByVariables();
taskByVariable1.setName("id");
taskByVariable1.setValue("\"12345\"");
List<TaskByVariables> taskByVariablesList = new ArrayList<>();
taskByVariablesList.add(taskByVariable1);
ts.setTaskVariables(taskByVariablesList);

For booleans it didn't work in both cases
//Doesn't work
TaskSearch ts = new TaskSearch();
ts.addVariableFilter("isManager", true);

// Doesn't work
TaskByVariables taskByVariable1 = new TaskByVariables();
taskByVariable1.setName("isManager");
taskByVariable1.setValue("true");
List<TaskByVariables> taskByVariablesList = new ArrayList<>();
taskByVariablesList.add(taskByVariable1);
ts.setTaskVariables(taskByVariablesList);

Hi @AmmarMohamed21,
It's because the api awaits a value in JSON format. The addVariableFilter is doing that magic for you. But if you use the TaskByVariables generated from the API, you need to do the magic yourself. You can use the JsonUtils.toJsonString if you want to do so. Also if you use the TaskByVariables, you need to provide the operator. A full example is provided in the addVariableFilter : https://github.com/camunda-community-hub/camunda-tasklist-client-java/blob/fe09396a67375e309ad3f1090e1040bdca1abb02/src/main/java/io/camunda/tasklist/dto/TaskSearch.java#L130
For the boolean, I would assume the attribute to be named manager rather than isManager (looks like a method name). Are you sure that the variable is isManager and not manager ?

funny enough this was a typo in the variable name, it works as expected thanks


chore(deps): upgrade runtime dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-runtime-dependencies-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 2377

Questions ?
Please refer to the Backport tool documentation


Add more safety comments in syscall and kernel

This is part of the effort for #228 and enable undocumented_unsafe_blocks clippy lint.
Some patches have FIXME comments because I need help figuring out whether to mark the whole function unsafe.
The last commit is just a cleanup of a comment I noticed while adding the SAFETY comments.
I will open more PRs later with more SAFETY comments, I don't think it makes sense to open a giant PR with more than 200 comments, it would be hard to review.

v2:

addressed most of @joergroedel comments
TODO:

[ ] FIXME: should we mark PageTable::load() function unsafe?
[ ] calling_area comments

v3:

moved some unsafe comments related to kernel/cpu to a new PR https://github.com/coconut-svsm/svsm/pull/550

TODO:
[ ] FIXME: should we mark PageTable::load() function unsafe? @joergroedel
[ ] calling_area comments @joergroedel

v3:

added a new patch to mark PageTable::load() unsafe and also add SAFETY comments where it's used @p4zuu
fixed calling area safety comments @joergroedel

v4:

fixed a cargo fmt warning
added an unsafe block in gdbstub

v5:

rebased on main
removed patch kernel/apic: fix safety comments since that file was already fixed by another PR just merged.


Split identity insertion to more phases

Goal:

Make /insertIdentity endpoint independent from adding identity to the tree and submitting to the chain
Increase this API endpoint availability

Problem:

Sequencer builds a local tree of identities on the startup
This makes the API unresponsive

Proposed solution:

New identities are added to the DB with a status indicating they are not in the tree yet
Startup with building local tree happens asynchronously
When the local tree is ready, the app processes awaiting identities
Chain submission process works as is

Partially related to https://github.com/orgs/worldcoin/projects/4/views/1?filterQuery=stat&pane=issue&itemId=26170286

Open questions:

Does anyone rely on /insertIdentity return value?
We want to change the response of /inclusionProof when identity was not processed yet. What will it break?


unique process of compression

Hi,
I succeed to build the package FastPFor in my machine and compile the example.cpp. So, i change the integers in the vector data:
std::vector<uint32_t> mydata(N);
mydata[0] =<PHONE_NUMBER>;
mydata[1] =<PHONE_NUMBER>;
i display compressed data and decompressed data
std::cout<<"Compressed data " << compressed_output.data()<<std::endl;
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
codec.decodeArray(compressed_output.data(),
compressed_output.size(), mydataback.data(), recoveredsize);
std::cout<<"Decompressed data 1 " <<mydataback.data()[0]<<std::endl;
std::cout<<"Decompressed data 2 " <<mydataback.data()[1]<<std::endl;
the result is in first execution
Compressed data 0x1b99a80
You are using 0.109 bits per integer.
Decompressed data 1<PHONE_NUMBER>
Decompressed data 2<PHONE_NUMBER>
////////////////////////////////////////////////////////////////////////////////
in second execution
Compressed data 0xd0da80
You are using 0.109 bits per integer.
Decompressed data 1<PHONE_NUMBER>
Decompressed data 2<PHONE_NUMBER>
---> i obtain a different compressed data. Perhaps this is the address of the compressed data, for thus i add
std::cout<<"Compressed data " << compressed_output.data()[0]<<std::endl;
but the result of the compressed data is the same when i change mydata[0] .
How can i distinguish between two processes of compression?? Is the compressed data unique for each compression???What is the information which makes compression process unique and unchangeable??
Thanks in advance.

Can you provide a test case? (source code)
I do not understand the issue you are reporting.

I want to compress two ipv4 addresses, so i define a vector contained two
32 bits integers. After that, i need to know if the compressed data is
writen in 32 bits max or no, for thus i need to display the compressed data
in form of decimal. The later will be considered as another address (writen
in maximum 32 bits). It is possible ?? Transform two address on one can be
performed with this process of compression?? I can deal with the original
addresses differently (vector contained eight 8 bits integers), my goal is
to compress the information in max 32 bits word.
2015-05-09 1:53 GMT+02:00 Daniel Lemire<EMAIL_ADDRESS>
Can you provide a test case? (source code)
I do not understand the issue you are reporting.
—
Reply to this email directly or view it on GitHub
https://github.com/lemire/FastPFor/issues/20#issuecomment-100395661.

@mounamouna
This library is ill-suited for the purpose you describe. Though you can certainly can encode an array containing two 32-bit integers, it is unlikely that the result will be a single 32-bit integer in general.
This library is meant for computing arrays containing many integers. Please see the example:
https://github.com/lemire/FastPFor/blob/master/example.cpp
I am closing this issue as invalid.
If you do find a bug, please provide a reproducible test case.

Please Sir ,just a final question, "computing arrays containing many
integers",
that means we are able to compute each integer in the initial vector
through the compressed data???? so the compressed data is a vector contains
integers smaller then integers in the initial vector???That is right??
Thanks in advance Sir.
2015-05-09 2:42 GMT+02:00 Daniel Lemire<EMAIL_ADDRESS>
@mounamouna https://github.com/mounamouna
This library is ill-suited for the purpose you describe. Though you can
certainly can encode an array containing two 32-bit integers, it is
unlikely that the result will be a single 32-bit integer in general.
This library is meant for computing arrays containing many integers.
Please see the example:
https://github.com/lemire/FastPFor/blob/master/example.cpp
I am closing this issue as invalid.
If you do find a bug, please provide a reproducible test case.
—
Reply to this email directly or view it on GitHub
https://github.com/lemire/FastPFor/issues/20#issuecomment-100400210.

that means we are able to compute each integer in the initial vector
through the compressed data?

Of course.

so the compressed data is a vector contains integers smaller then integers in the initial vector?

The goal of the library is to have fewer integers in the compressed vector. Yes.

It isn't logical to have the same compressed vector for two different
initial vectors. that's right? I tested with two different initial vectors
(a,b) and (a1,b) but the compressed vector  compressed_output.data()[] is
the same. Is it a bug ??
2015-05-09 3:33 GMT+02:00 Daniel Lemire<EMAIL_ADDRESS>
that means we are able to compute each integer in the initial vector
through the compressed data?
Of course.
so the compressed data is a vector contains integers smaller then integers
in the initial vector?
The goal of the library is to have fewer integers in the compressed
vector. Yes.
—
Reply to this email directly or view it on GitHub
https://github.com/lemire/FastPFor/issues/20#issuecomment-100408786.

Yes it is a bug. It is most likely a bug in your code.

mouna@ubuntu:~/newtmp/FastPFor$ ./example
Compressed data 19984
Compressed data 23
You are using 0.109 bits per integer.
Decompressed data 1<PHONE_NUMBER>
Decompressed data 2<PHONE_NUMBER>
mouna@ubuntu:~/newtmp/FastPFor$ make example
[ 85%] Built target FastPFor
Scanning dependencies of target example
[100%] Building CXX object CMakeFiles/example.dir/example.cpp.o
Linking CXX executable example
[100%] Built target example
mouna@ubuntu:~/newtmp/FastPFor$ ./example
Compressed data 19984
Compressed data 23
You are using 0.109 bits per integer.
Decompressed data 1 4967295
Decompressed data 2<PHONE_NUMBER>
What is the problem? I used 32 bits integers, i changed the first integer
but the compressed vector still the same.
2015-05-08 18:51 GMT-07:00 Daniel Lemire<EMAIL_ADDRESS>
Yes it is a bug. It is most likely a bug in your code.
—
Reply to this email directly or view it on GitHub
https://github.com/lemire/FastPFor/issues/20#issuecomment-100410612.

mouna@ubuntu:~/newtmp/FastPFor$ ./example
Compressed data 19984
Compressed data 23
You are using 0.109 bits per integer.
Decompressed data 1<PHONE_NUMBER>
Decompressed data 2<PHONE_NUMBER>
mouna@ubuntu:~/newtmp/FastPFor$ make example
[ 85%] Built target FastPFor
Scanning dependencies of target example
[100%] Building CXX object CMakeFiles/example.dir/example.cpp.o
Linking CXX executable example
[100%] Built target example
mouna@ubuntu:~/newtmp/FastPFor$ ./example
Compressed data 19984
Compressed data 23
You are using 0.109 bits per integer.
Decompressed data 1 4967295
Decompressed data 2<PHONE_NUMBER>
What is the problem? I used 32 bits integers, i changed the first one but
the compressed vector still (19984  ,  23).
2015-05-09 3:51 GMT+02:00 Daniel Lemire<EMAIL_ADDRESS>
Yes it is a bug. It is most likely a bug in your code.
—
Reply to this email directly or view it on GitHub
https://github.com/lemire/FastPFor/issues/20#issuecomment-100410612.

If you think you have found a bug, please submit a test case.

test case
first:
mydata[0] =<PHONE_NUMBER>;
mydata[1] =<PHONE_NUMBER>;
second:
mydata[0] = 4967295;
mydata[1] =<PHONE_NUMBER>;
2015-05-08 19:30 GMT-07:00 Daniel Lemire<EMAIL_ADDRESS>
If you think you have found a bug, please submit a test case.
—
Reply to this email directly or view it on GitHub
https://github.com/lemire/FastPFor/issues/20#issuecomment-100412978.

The size of the compressed vector is most certainly more than two words. Probably four words. That is, the "compressed" vector is probably larger than the input vector.
These arrays you provide are not compressible using this library. They are too short.
Please read the papers, study carefully the code and the examples.

Daniel Lemire and Leonid Boytsov, Decoding billions of integers per second through vectorization, Software Practice & Experience 45 (1), 2015.  http://arxiv.org/abs/1209.2137 http://onlinelibrary.wiley.com/doi/10.1002/spe.2203/abstract
Daniel Lemire, Leonid Boytsov, Nathan Kurz, SIMD Compression and the Intersection of Sorted Integers, Software Practice & Experience (to appear) http://arxiv.org/abs/1401.6399
Jeff Plaisance, Nathan Kurz, Daniel Lemire, Vectorized VByte Decoding, International Symposium on Web Algorithms 2015, 2015. http://arxiv.org/abs/1503.07387
Wayne Xin Zhao, Xudong Zhang, Daniel Lemire, Dongdong Shan, Jian-Yun Nie, Hongfei Yan, Ji-Rong Wen, A General SIMD-based Approach to Accelerating Compression Algorithms, ACM Transactions on Information Systems 33 (3), 2015. http://arxiv.org/abs/1502.01916

I am not going to be able to help you further.

Thank you Sir.
2015-05-09 5:09 GMT+02:00 Daniel Lemire<EMAIL_ADDRESS>
The size of the compressed vector is most certainly more than two words.
Probably four words. That is, the "compressed" vector is probably larger
than the input vector.
These arrays you provide are not compressible using this library. They are
too short.
Please read the papers, study carefully the code and the examples.

Daniel Lemire and Leonid Boytsov, Decoding billions of integers per
second through vectorization, Software Practice & Experience 45 (1), 2015.
http://arxiv.org/abs/1209.2137
http://onlinelibrary.wiley.com/doi/10.1002/spe.2203/abstract
Daniel Lemire, Leonid Boytsov, Nathan Kurz, SIMD Compression and the
Intersection of Sorted Integers, Software Practice & Experience (to appear)
http://arxiv.org/abs/1401.6399
Jeff Plaisance, Nathan Kurz, Daniel Lemire, Vectorized VByte
Decoding, International Symposium on Web Algorithms 2015, 2015.
http://arxiv.org/abs/1503.07387
Wayne Xin Zhao, Xudong Zhang, Daniel Lemire, Dongdong Shan, Jian-Yun
Nie, Hongfei Yan, Ji-Rong Wen, A General SIMD-based Approach to
Accelerating Compression Algorithms, ACM Transactions on Information
Systems 33 (3), 2015. http://arxiv.org/abs/1502.01916

I am not going to be able to help you further.
—
Reply to this email directly or view it on GitHub
https://github.com/lemire/FastPFor/issues/20#issuecomment-100415216.


Use DrawRectangleRoundedLinesEx and update nuklear

As of https://github.com/raysan5/raylib/commit/b51f4db8c29eba3506e953b351bedbf41f2a5c95 the method signature of DrawRectangleRoundedLines has changed.  The method with the added Ex suffix has the old signature.

Thanks! Looks great.


chore(main): release 0.4.4

:robot: I have created a release beep boop
0.4.4 (2024-08-19)
Bug Fixes

fixed team id to project id (cad33cc)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.4.4
:sunflower:


Fails to execute unattended.sh script

Hello, I'm currently investigate if I can run a script after boot without running setup-alpine, using bootstrap instead.
However, I'm running into issue where it fails to execute it.
/var/log/messages | grep headless:
Jan 11 13:43:01 localhost user.notice headless_bootstrap: Alpine Linux headless bootstrap v1.2 by macmpi
Jan 11 13:43:01 localhost user.notice headless_bootstrap: No wifi interface or SSID/pass file supplied
Jan 11 13:43:01 localhost user.notice headless_bootstrap: No SSH authentication.
Jan 11 13:43:01 localhost user.notice headless_bootstrap: Using bundled ssh keys from RAM...
Jan 11 13:43:02 localhost user.notice headless_bootstrap: Initial setup done, handing-over to clean-up
Jan 11 13:43:02 localhost user.notice headless_cleanup: Cleaning-up...
Jan 11 13:43:02 localhost user.notice headless_cleanup: Starting headless_unattended service
Jan 11 13:43:02 localhost daemon.err /etc/init.d/headless_unattended[2713]: start-stop-daemon: failed to exec `/tmp/headless_unattended': No such file or directory
Jan 11 13:43:02 localhost user.notice headless_cleanup: Clean-up done, enjoy !
Jan 11 13:43:06 localhost user.notice headless_bootstrap: Internet access: failed

I also checked myself and headless_unattended exists in /tmp and has the contents.
unattended.sh contents:
#!/bin/sh

#NO_SSH
alias _logger='logger -st "${0##*/}"'
#exec 1>/dev/console 2>&1

_logger "Setting apk cache..."
setup-apkcache /media/mmcblk0p1/cache
_logger "Installing ethtool..."
apk add ethtool

echo "Starting PiPwn"
_logger "Starting PiPwn"
/bin/sh /media/mmcblk0p1/PPPwn/run.sh
sleep 1

What system and editor did you use to create the file? Seems like it could be caused by:
https://github.com/macmpi/alpine-linux-headless-bootstrap?tab=readme-ov-file#user-content-fn-3-b0a5b217e4c1ca7e7587c2c6eac5a0d3

That link didn't highlight the note like I thought it would. See note 3 at the very bottom of the README.

I used Notepad++ on Windows with CRLF and UTF-8.

I think that's probably the issue. See my point 2 here:
https://github.com/macmpi/alpine-linux-headless-bootstrap/issues/1#issue-1299557844
Treating that file with dos2unix before trying to execute it would have prevented this problem I believe.
I haven't used Notepad++ in quite some time, but can you find an option to save with Unix line endings?

Huh, changing to LF line ending indeed fixed the problem. I wonder why that happen then, because i use run.sh with CRLF ending too and it works fine.

Hmmm, not sure. This one?
https://github.com/stooged/PI-Pwn/blob/main/PPPwn/run.sh

Well, yep, but i modified it already. And i just checked it and it already has LF ending, so that's probably why it works just fine.

Maybe Notepad++ defaults to saving with the file's original line ending.

Anyway I'm still not sure if it is an intended behavior (because of ash) or it is a bug.

There was some discussion on it (and other things) in this old PR before this repo became the current fork. See my third bullet here and later replies if you are interested:
https://github.com/davidmytton/alpine-linux-headless-raspberrypi/pull/9#issuecomment-1175749253
I don't think it's a bug per se but it would be a trivial change to treat the file with dos2unix when it's copied to /tmp since that utility is already included as a busybox applet, so nothing else to install. @macmpi did not want to bother with it before but maybe time to reconsider?

Thanks for your interest @Andryshik345 , and very prompt & efficient resolution @sodface !
@Andryshik345 executable script with CRLFs may fail right at shebang as it won't be recognized, though it may pass that if called as sh myscript.sh (but some other stuff may fail). Rather be safe than sorry: only LF on linux-related files.
Indeed, I remain concerned about applying any modification to user-supplied files, even with due care: (for whatever reason) some user may intend to use CRLFs sequences in their script and would not understand why this got filtered-out...
There are so many troubleshooting & syntax-checking that could be added in the same spirit (malformed wpa_supplicant.conf, or networking interface definitions, etc) introducing as many sides rough edges, that I tend to consider such hand-holding measures outside the scope of this (simple) tool: just trust user and pass-on files.
Happy to improve documentation to make this even more salient if need be.
Eventually logging a warning about possible unexpected results due to CRLFs could be a last-resort option too.
@Andryshik345 feel free to close this issue when you consider it has been addressed.

I think since you mentioned that you can use notepad++ on windows then you just need to clarify you need to use unix LF line-endings. Because honestly - this is the first time ever i had such issue with line-endings.
Thanks everyone for helping out, issue closed,

I think since you mentioned that you can use notepad++ on windows then you just need to clarify you need to use unix LF line-endings.

I think that's what's mentioned in README note 3 as per below:
These files are linux text files: Windows/macOS users need to use text editors supporting linux text line-ending (such as notepad++, BBEdit or any similar).

Because honestly - this is the first time ever i had such issue with line-endings.

You might have been quite lucky or issues went unnoticed.


Create a line chart

Here is a reference to the component.

We are not looking for new components or pages right now.


phoebemirman/ch14814/polish-notification-design

https://app.clubhouse.io/augur/story/14814/polish-notification-design

Pull Request Test Coverage Report for Build 1121

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

Totals

Change from base Build 1116:
0.0%

Covered Lines:
3606

Relevant Lines:
4904

💛  - Coveralls


when using profile overrides for "core" and -Zbuild-std, cargo emits incorrect warning that profile override is unused

Problem
Cargo prints a warning: profile package spec `core` in profile `dev` did not match any packages when a profile.dev.package.core section exists in Cargo.toml.
The options specified in the profile.dev.package.core are used, despite the warning.
Command + verbose output showing that the debug-assertions is passed to rustc:
cody@truman profile-core % cargo +nightly check -Zbuild-std=core --target thumbv7em-none-eabihf --verbose
warning: profile package spec `core` in profile `dev` did not match any packages
   Compiling core v0.0.0 (/Users/cody/Library/Caches/rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/src/rust/library/core)
     Running `/Users/cody/.local/bin/sccache-wrapper2 rustc --crate-name core --edition=2021 /Users/cody/Library/Caches/rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=off -C metadata=8c45ea5e23dd0d5b -C extra-filename=-8c45ea5e23dd0d5b --out-dir /Users/cody/p/profile-core/target/thumbv7em-none-eabihf/debug/deps --target thumbv7em-none-eabihf -Z force-unstable-if-unmarked -L dependency=/Users/cody/p/profile-core/target/thumbv7em-none-eabihf/debug/deps -L dependency=/Users/cody/p/profile-core/target/debug/deps --cap-lints allow`

Cargo.toml content:
[package]
name = "profile-core"
version = "0.1.0"
edition = "2021"

[dependencies]

[profile.dev.package.core]
overflow-checks = false
debug-assertions = false

Steps
I've created a sample project here: https://github.com/jmesmon/cargo-bug-profile-core. Run it with the command cargo +nightly check -Zbuild-std=core --target thumbv7em-none-eabihf --verbose or similar.

create a cargo lib package
make it no_std (makes things easier to reproduce here, but not strictly requried)
Add [profile.dev.package.core] debug-assertions = false to the Cargo.toml (or some other profile adjustment)
build with cargo +nightly check -Zbuild-std=core --target thumbv7em-none-eabihf --verbose (or similar)
note the warning: profile package spec `core` in profile `dev` did not match any packages printed, but

Possible Solution(s)
No response
Notes
This specific issue is mentioned in https://github.com/rust-lang/cargo/issues/10118#issuecomment-1006431365. It may be related to https://github.com/rust-lang/cargo/issues/8328 (which also is regarding this warning, but not for core)
Version
cody@truman profile-core % cargo +nightly version --verbose
cargo 1.61.0-nightly (65c826642 2022-03-09)
release: 1.61.0-nightly
commit-hash: 65c82664263feddc5fe2d424be0993c28d46377a
commit-date: 2022-03-09
host: x86_64-apple-darwin
libgit2: 1.4.1 (sys:0.14.1 vendored)
libcurl: 7.77.0 (sys:0.4.51+curl-7.80.0 system ssl:(SecureTransport) LibreSSL/2.8.3)
os: Mac OS 12.2.1 [64-bit]

Thanks for the detailed report and reproduction!  The way profile overrides interact with the standard library hasn't been decided upon.  This is being tracked in https://github.com/rust-lang/wg-cargo-std-aware/issues/2, so I'm going to close in favor of that.


add app txn visitors and struct

Implements visitors and structures required for reading application transactions that exist on a snapshot.
A similar pattern to the LogReplayScanner was implemented where users can explicitly scan metadata for the latest transaction for all application or obtain the latest transaction for particular application.
I decided against adding the TransactionMap to Snapshot since snapshot only require protocol + metadata to be built and obtaining the latest transaction may require scanning past that point. Also the overall design of Snapshot seems to be immutable and it would not make much sense to have methods that mutate it.

Thanks for taking a stab at this missing functionality! The code generally looks good, but I think we can simplify a fair bit?

Thanks so much. Given your suggestions I removed the irrelevant bits and simplified the logic. From an overall unit testing perspective it would be nice if I could assert which files were read so an assert for the minimum amount of read can be performed.


[Bug] QuickSearch can't load, when Sharenite enabled

When running QuickSearch alongside Searchnite plugin, QuickSearch doesn't load.
Here's what's in playnite.log:
05-09 12:02:19.629|ERROR|ExtensionFactory:Failed to execute OnApplicationStarted method from QuickSearch plugin.
System.NullReferenceException: Object reference not set to an instance of an object.
   at QuickSearch.SearchItems.ExtensionItemSource..ctor(SearchPlugin searchPlugin) in E:\Programmierung\playnite-dev\QuickSearch\source\SearchItems\ExtensionItemSource.cs:line 93
   at QuickSearch.SearchPlugin.OnApplicationStarted(OnApplicationStartedEventArgs args) in E:\Programmierung\playnite-dev\QuickSearch\source\SearchPlugin.cs:line 324
   at Playnite.Plugins.ExtensionFactory.NotifiyOnApplicationStarted() in C:\projects\playnite\source\Playnite\Plugins\ExtensionFactory.cs:line 710

Seems to be pointing at function that get main menu items, and Sharenite is creating one here https://github.com/sharenite/playnite-sharenite/blob/64e95fb0df18aa525482533a6b2244fa56c4b6cd/Sharenite.cs#L46.

Fixed in v2.24.3


Avoid removesuffix()

This function was only introduced in python 3.9, but QA tests with python 3.6.

Dup of #692?

Yeah, didn't see that in time.


Breaking a container while you're inside of it crashes the game

Steps to reproduce:
1: Get gun
2: Get into locker
3: So anyways, i started blasting (destroy locker)
4: sit back and enjoy the crash
This is also true for crates, but not for disposals
https://user-images.githubusercontent.com/45442346/126218244-22232772-ed19-4f33-ab8b-8bdf984f8e54.mp4

cannot replicate on master. i tried:

breaking the container with a second client
breaking the container myself

to no avail


Test the model with single instance, and visualize the result

Hi, are there any code available for testing the trained model for referring expression grounding test on single image&test pair? Would be very interested in visually evaluating how well the model performance is.

Hi,
We have a colab available on the website (ashkamath.github.io/mdetr_page/)
which shows examples for phrase grounding, segmentation and vqa and you
could use it to try the refexp model as well.
Best,
Aishwarya
On Thu, Feb 3, 2022 at 7:05 PM SkylerJulyApril @.***>
wrote:

Hi, are there any code available for testing the trained model for
referring expression grounding test on single image&test pair? Would be
very interested in visually evaluating how well the model performance is.
—
Reply to this email directly, view it on GitHub
https://github.com/ashkamath/mdetr/issues/71, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADQZNM4DF3XNVCTY5YSTKRDUZMJ5XANCNFSM5NQLU7NA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Aishwarya Kamath
PhD Student
New York University

Hi Aishwarya, thank you very much!


False positive when ocdev create fails

Looks like we have a false positive issue here with the exit status being 0 when the create operation has failed.
$ ocdev component create nodejs --local /tmp/nodejs-ex/

please wait, building application...
Receiving source from STDIN as archive ...
error: Unable to update build status: resource name may not be empty
---> Installing application source ...
---> Installing all dependencies
npm ERR! Linux 4.10.9-200.fc25.x86_64
npm ERR! argv "/opt/rh/rh-nodejs6/root/usr/bin/node" "/opt/rh/rh-nodejs6/root/usr/bin/npm" "install"
npm ERR! node v6.11.3
npm ERR! npm  v3.10.9
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! syscall getaddrinfo
npm ERR! network getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:443
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'
npm ERR! Please include the following file with any support request:
npm ERR!     /opt/app-root/src/npm-debug.log
error: Unable to update build status: resource name may not be empty
error: Unable to update build status: resource name may not be empty
error: build error: non-zero (13) exit code from centos/nodejs-6-centos7@sha256:0ada73d623cb4f012239e6a06bb39f890a93d0f3557b90e46363bade62e5526f

$ echo $?
0

$ ocdev version
v0.0.3 (f7126d9)

@ashetty1 can you try this issue again ? since we have changed workflow now.

most probably, we have exit code for all cases there

The command output has changed since this bug has been filed. So closing this.


FoundationEssentials: allow Data to build on Windows

unmap is a non-portable function as it is not part of the C standard. The correct spelling for this on Windows is UnmapViewOfFile which expects that the data to be mapped by MapViewOfFile.  This cannot be used for freeing memory in general.

@swift-ci please test

@swift-ci please test


FlatFile formatting improvements.

I know this is more of a pet peeve than anything else, but the current way things such as prefix are setup as well as weight, etc are all clustered together under "perms" instead of somewhere that's easier and nicer to read.
Example:
Pex has it as such:
permissions:
    - '*'
    - permissions.*
inheritance:
    - Moderator
options:
    default: false
    prefix: '&3&lOWNER&r '
    suffix: '&3&lTEST&r '
worlds:
    World_Nether:
        permissions:
            - test.permissions1
            - test.permissions2
            - test.permissions3

How Luck has it set:
name: owner
perms:
    global-world_nether/group.moderator: true
    'prefix.0.&3&lOWNER&r ': true
    permissions.*: true
    'suffix.0.&3&lTEST&r ': true
    group.moderator: true
    '*': true

It would be nice if we could have a better formatted flat file instead of the "cramped" system there is now. Would make reading through everything much easier too among other things. If there is any specific reason why it is formatted the way it is as of now, I would like to know why, and if there is any possibility for it to get a "better looking" format.

They're stored internally this way too.
I plan to make it so that the output is sorted, but a complete redesign probably wouldn't make sense / be easily possible.

How does the formatting looks like now? Before I change to this plugin I would like to know it :)

It's alphabetically sorted.

I find the flatfile very weird looking to be honest... Is it going to be changed?

Bumping this issue to bring attention to this commit.
85c7a7db8dcc0ce7f174cea225abfc61d56c7730
The improvements you suggested were implemented in the latest version. :)


Install Gazebo9

To install succesfully Gazebo9, I've followed the steps here:
Alternative installation: step-by-step
http://gazebosim.org/tutorials?tut=install_ubuntu&cat=install

I have checked and updated the instructions this morning, so they should work fine.
For reference, they also created a tutorial page for using gazebo with ROS2
http://gazebosim.org/tutorials?tut=ros2_installing&cat=connect_ros

The instructions work fine, no errors. But  I had the Gazebo 7.X installed (trying to get the 9.X), and after following the installation steps I still had the 7.X, that's why I followed the other installation steps which specifically install the 9.X version:
sudo apt-get install gazebo9


Update to Python 3.7 and Arrow 0.11

Arrow Python 3.7 wheels are still missing and a changelog entry is required.
@MathMagique Should I bump to 2.8 as I have changed the minimal NumPy and Arrow versions? (1.14 is required for Python 3.7).

That would even be a bump to version 3.0.0 following semantic versioning...

 As with many other packages Arrow has dropped the support for it in the recent release.

And in return, the MySQL ODBC driver is no longer maintained on Ubuntu and this not anymore available for xenial.
@MathMagique not sure what to do here. It seems one can download the ODBC driver from the mysql homepage but not programmatically. So it's either skipping MySQL in the tests or finding another solution on how to get the driver.

@xhochy Is it possible to download the MariaDB ODBC driver programatically? It should be wire-compatible with the MyODBC driver...

@MathMagique Finally tracked down the issue with the build in xenial. It's the same problem we were facing already with Fedora users here in the bug tracker: Using pyarrow manylinux1 wheels is leading to weird breakages in systems which are mostly build with the new CXX ABI.
Given that people are also interested in manylinux1 packages for turbodbc, I think, I'll spent a bit on creating an environment for them to build.

Just checking - does the just released version 3.0.0 not support arrow 0.11.0?

@dhirschfeld Hi Dave! The 3.0.0 release supports arrow 0.11.x as per the requirements (https://github.com/blue-yonder/turbodbc/pull/183):
...
'arrow': ['pyarrow>=0.11,<0.12'],
...

Then the release should work for you 👍