updated to v1.19 and added custom config option

I updated the tika server to version 1.19 and added options to the parsers and detectors to pass a custom configuration file. The default for the configuration file is None, so it should be backwards compatible. The changes have passed the tests in test_tika.py.

add tests pass, committing!

heck_true (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:58:42,519 [MainThread  ] [INFO ]  Retrieving http://open.defense.gov/Portals/23/Documents/FOIA_WebsiteCompliance.ppt to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/http-open-defense-gov-portals-23-documents-foia_websitecompliance-ppt.
ok
check_meta (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:58:48,278 [MainThread  ] [INFO ]  Retrieving http://open.defense.gov/Portals/23/Documents/FOIA_WebsiteCompliance.ppt to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/http-open-defense-gov-portals-23-documents-foia_websitecompliance-ppt.
ok
check_content (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:58:49,242 [MainThread  ] [INFO ]  Retrieving http://open.defense.gov/Portals/23/Documents/FOIA_WebsiteCompliance.ppt to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/http-open-defense-gov-portals-23-documents-foia_websitecompliance-ppt.
ok
check_true (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:58:49,978 [MainThread  ] [INFO ]  Retrieving https://catalog.data.gov/dataset/geologic-map-of-the-state-of-hawaii to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/https-catalog-data-gov-dataset-geologic-map-of-the-state-of-hawaii.
ok
check_meta (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:58:51,219 [MainThread  ] [INFO ]  Retrieving https://catalog.data.gov/dataset/geologic-map-of-the-state-of-hawaii to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/https-catalog-data-gov-dataset-geologic-map-of-the-state-of-hawaii.
ok
check_content (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:58:51,324 [MainThread  ] [INFO ]  Retrieving https://catalog.data.gov/dataset/geologic-map-of-the-state-of-hawaii to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/https-catalog-data-gov-dataset-geologic-map-of-the-state-of-hawaii.
ok
check_true (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:58:51,436 [MainThread  ] [INFO ]  Retrieving https://data.oregon.gov/api/views/i8h7-mn6v/rows.csv?accessType=DOWNLOAD to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/https-data-oregon-gov-api-views-i8h7-mn6v-rows-csv-accesstype-download.
ok
check_meta (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:58:54,402 [MainThread  ] [INFO ]  Retrieving https://data.oregon.gov/api/views/i8h7-mn6v/rows.csv?accessType=DOWNLOAD to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/https-data-oregon-gov-api-views-i8h7-mn6v-rows-csv-accesstype-download.
ok
check_content (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:58:57,134 [MainThread  ] [INFO ]  Retrieving https://data.oregon.gov/api/views/i8h7-mn6v/rows.csv?accessType=DOWNLOAD to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/https-data-oregon-gov-api-views-i8h7-mn6v-rows-csv-accesstype-download.
ok
check_true (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:58:59,759 [MainThread  ] [INFO ]  Retrieving http://www.dmdc.osd.mil/Rank_Gender_Race.xls to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/http-www-dmdc-osd-mil-rank_gender_race-xls.
ok
check_meta (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:59:02,594 [MainThread  ] [INFO ]  Retrieving http://www.dmdc.osd.mil/Rank_Gender_Race.xls to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/http-www-dmdc-osd-mil-rank_gender_race-xls.
ok
check_content (tika.tests.tests_params.RemoteTest) ... 2018-10-22 11:59:03,920 [MainThread  ] [INFO ]  Retrieving http://www.dmdc.osd.mil/Rank_Gender_Race.xls to /var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/http-www-dmdc-osd-mil-rank_gender_race-xls.
ok

----------------------------------------------------------------------
Ran 21 tests in 28.098s

OK
ok
test_ascii (tika.tests.tests_unpack.CreateTest) ... ok
test_utf8 (tika.tests.tests_unpack.CreateTest) ... ok

----------------------------------------------------------------------
Ran 7 tests in 80.880s

OK


bug (python): post requests "data" with boolean logic in string incorrectly converted to dictionary instead of string

Thank you for this amazing tool you have created. I found a very small bug:
Currently:
--data-raw '{"filters":"start_date <=<PHONE_NUMBER> AND end_date ><PHONE_NUMBER>"}' \
Converts to a dictionary:
data = {
  '{"filters":"start_date <': '<PHONE_NUMBER> AND end_date ><PHONE_NUMBER>"}'
}

When it should convert to a string:
'{"filters":"start_date <': '<PHONE_NUMBER> AND end_date ><PHONE_NUMBER>"}'

The issue is that --data isn't always a query string, even though it gets sent as application/x-www-form-urlencoded. Curl sends along the --data as you passed it in the command line, whereas we want to convert it to a dict for easier editing and requests, when passed a dict, url encodes the keys/values (see below).
There's no reliably way to distinguish between whether or not the input string is actually meant to be a query string or just text that happens to have a =/& in it, i.e. to tell if converting data to a dict would be useful, so we'll have to add a comment with the original data any time we convert it to a dictionary...
# data = '{"filters":"start_date <=<PHONE_NUMBER> AND end_date ><PHONE_NUMBER>"}'
data = {
  '{"filters":"start_date <': '<PHONE_NUMBER> AND end_date ><PHONE_NUMBER>"}'
}

We could add some heuristics like if (dataString.count('=') === dataString.count('&') + 1 && dataString.count('=') > 2 then it's probably a query string and we can omit the comment, or if the data contains any characters that would be url encoded, we can assume it's not a query string, but these won't work that well.

Using nc -kl 8888 and then running this command (--data or --data-raw doesn't matter, the -raw only changes whether or not an @ character causes the data to be interpreted as a filename).
curl --data-raw '{"filters":"start_date <=<PHONE_NUMBER> AND end_date ><PHONE_NUMBER>"}' localhost:8888
we can see that this is the data curl sends:
POST / HTTP/1.1
Host: localhost:8888
User-Agent: curl/7.77.0
Accept: */*
Content-Length: 64
Content-Type: application/x-www-form-urlencoded

{"filters":"start_date <=<PHONE_NUMBER> AND end_date ><PHONE_NUMBER>"}

and running the resulting program
import requests

data = {
  '{"filters":"start_date <': '<PHONE_NUMBER> AND end_date ><PHONE_NUMBER>"}'
}

response = requests.post('http://localhost:8888', data=data)

requests will url encode the data
POST / HTTP/1.1
Host: localhost:8888
User-Agent: python-requests/2.26.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Content-Length: 82
Content-Type: application/x-www-form-urlencoded

%7B%22filters%22%3A%22start_date+%3C=+1647270397+AND+end_date+%3E+1647269497%22%7D

though I think if you actually try running that Python code as-is, you might still get the correct result from the server, since presumably the server does url-decoding before processing the data.
Running the corrected program
import requests

data = '{"filters":"start_date <=<PHONE_NUMBER> AND end_date ><PHONE_NUMBER>"}'

response = requests.post('http://localhost:8888', data=data)

we get
POST / HTTP/1.1
Host: localhost:8888
User-Agent: python-requests/2.26.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Content-Length: 64

{"filters":"start_date <=<PHONE_NUMBER> AND end_date ><PHONE_NUMBER>"}

So what I ended up doing is this

if the data contains any characters that would be url encoded, we can assume it's not a query string

which means we don't parse a lot of querystrings into a dict anymore, but hopefully matching the request is more useful to people than getting a slightly different request that's harder to edit. I also made it add the Content-Type header, so now your request gets converted how you expected (at the expense of people that would be okay with a slightly different request but being able to edit it as a Python dictionary)
import requests

headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
}

data = '{"filters":"start_date <=<PHONE_NUMBER> AND end_date ><PHONE_NUMBER>"}'

response = requests.post('http://localhost:8888', headers=headers, data=data)


Bug report: Single fetch: Throwing a response stub with a 4xx status causes a turbo-stream error

Throwing a response stub with a 4xx status causes an error, because turbo-stream attempts to serialize the response stub and fails when it hits the headers value, which is not serializable due to having a prototype of Headers.
Running the test included test case produces the following logs:
Error: Cannot encode object with prototype
    at Object.stringify (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:116:27)
    at Object.flatten (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:22:15)
    at ~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:30:59
    at Array.map (<anonymous>)
    at partsForObj (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:30:10)
    at Object.stringify (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:113:38)
    at Object.flatten (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:22:15)
    at ~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:30:59
    at Array.map (<anonymous>)
    at partsForObj (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:30:10)
    at Object.stringify (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:113:38)
    at Object.flatten (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:22:15)
    at ~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:30:59
    at Array.map (<anonymous>)
    at partsForObj (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:30:10)
    at Object.stringify (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:113:38)
    at Object.flatten (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/flatten.js:22:15)
    at Object.start (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/turbo-stream.js:123:45)
    at setupReadableStreamDefaultController (node:internal/webstreams/readablestream:2342:23)
    at setupReadableStreamDefaultControllerFromSource (node:internal/webstreams/readablestream:2375:3)
    at new ReadableStream (node:internal/webstreams/readablestream:286:7)
    at Object.encode (~/remix/node_modules/.pnpm/turbo-stream@2.0.0/node_modules/turbo-stream/dist/turbo-stream.js:121:22)
    at Object.encodeViaTurboStream (~/remix/build/node_modules/@remix-run/server-runtime/dist/single-fetch.js:395:22)
    at handleDocumentRequest (~/remix/build/node_modules/@remix-run/server-runtime/dist/server.js:288:40)
    at requestHandler (~/remix/build/node_modules/@remix-run/server-runtime/dist/server.js:142:18)
    at file://~/remix/integration/bug-report-test.ts:140:18

Thank you for the bug report!  This should be handled by #9501


symbolic links are all ignored

if a directory is composed of a lot of symbolic links skicka will fail to resolve them. It will ignore them all.
https://github.com/google/skicka/blob/31f6c0c2596011588d38c27a51e174fa3cbbb027/upload.go#L680-L682
ideally there should be a parameter:
-L     Follow symbolic links.
As there is in the GNU program find.

This was originally disallowed just to avoid having to write code to handle the case of detecting cycles in sym links, which are a bit of a bother to deal with.  Would you be ok with a (user-configurable) fixed limit of how many sym links could be followed?
Related, it's probably worth supporting uploading/downloading sym links without following them. This could be done fairly easily by creating a zero-length file on Drive and adding a custom property to store the symlink target.

Fixed limit of depth of symbolic links that can be followed sounds like a great idea! A value of zero could simulate the current behavior, which some users might want.
As for supporting sym links without following (sentinel file of sorts?), perhaps this would be a good option to implement as a separate feature, maybe with a "maximum depth tree" parameter of "-1" or something like that. I don't think this should be the default behavior, however, as some users like myself use this program to move file between servers and this would break all the sym links (likely silently). Between defaulting to this option and no support for symlinks, I think I'd prefer the latter as long as it throws a warning (as it does now).

Ok, 'upload' now takes a -follow-symlinks option that takes a maximum depth. It seems to work well with tests here, but if you try it out, please double-check that its behavior matches your expectations!

It works marvellously! Just finished uploading 750GB of nested and complex symlink folders/data.
I'm testing the code to see how it handles loops/missing links/links with wrong permissions and such and will update here once I finish this.

Excellent! Happy to hear it's working as expected!

Upon further reflection, I don't think it's a good idea to have an option to maintain symbolic links as links (e.g. by encoding information in Google Drive file properties.) First, this could be an unhappy surprise for someone who thought they had a file uploaded but inadvertently only had a symlink that didn't point to actual data.  Second, this would basically make the symlinks only useful to someone using skicka, which seems a generally undesirable direction.
So, closing this out as fixed, since the 'follow the links' code seems to be working well.


[Feature] Add Option to Remove Merge Commit

Is this feature missing in the latest version?

[X] I'm using the latest release

Is your feature request related to a problem? Please describe.
If we add an option to remove the merge commit before the eslint changes in the config option it will be very good, as the merge commit pulls changes from the base branch and it is causing a lot of issues in our workflow as we didn't want to do that and sometimes because of this un-necessary features are pulled and cause issue during deployment.
Describe the solution you'd like?
The solution should be adding a boolean variable in GitHub action eslint config where we can turn this on and off.
Describe alternatives you've considered?
No response
Anything else?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hi @Huzaifa-Asif, the merge commits wouldn’t be coming from this action. Based on testing the reason you are seeing merge commits are as a result of the checkout action merging the base branch and the pull request branch latest commit.
See: https://github.com/actions/checkout/issues/881
A solution for this would be
- uses: actions/checkout@v4
  with:
    ref: ${{ github.event.pull_request.head.sha }}
    fetch-depth: 0

Mentioned here: https://github.com/actions/checkout/blob/v3.0.2/README.md#user-content-checkout-pull-request-head-commit-instead-of-merge-commit


Pending Confirms Count

Resolves https://jira.spring.io/browse/AMQP-632

@Giri-Chintala Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

Hello @Giri-Chintala !
Sorry for delay and thank for contribution.
We don't forget about about and really appreciate the help.
From my point of view I don't see so much benefit of this functionality. Just because PublisherCallbackChannelImpl.processAck is done in separate Thread by the Broker initiative. So, any number as a result of this new method invocation might not reflect the reality, when during our logic new acks are arriving on background.
I may agree with more general solution like:
public Collection<CorrelationData> getUnconfirmed() {
...
}

with proper JavaDoc to explain that this method returns only a snapshot at an invocation time.
And the real confirmation picture may be different over seconds or so.
WDYT?

Sorry about the delayed response.
i am trying to find a way to pause producer from sending messages or send messages to  alternative RabbitMQ server when number of pending confirms exceeds some limit.
i agree, number as a result of this new method invocation might not reflect the reality, But same argument applies to getUnconfirmed(long age).
periodically checking getUnconfirmedCount() gives somes idea about how is the RabbitMQ server behaving.
i agree with Collection<CorrelationData> getUnconfirmed() as long as unconfirms are not removed from the collection.

@Giri-Chintala

But same argument applies to getUnconfirmed(long age).

Not really because of the age argument; but I agree, it's ok as long as the user realizes it's only approximate.
@artembilan - while I think it might be useful for the user to be able to determine exactly which confirms are pending, I am not sure we want to expose the actual CorrelationData object because the user could make changes to it, even by mistake.
I therefore think that, for these purposes, just exposing a count should be enough.

@garyrussell ,

I am not sure we want to expose the actual CorrelationData object because the user could make changes to it, even by mistake.

Actually we have similar API already - RabbitTemplate:
/**
* Gets unconfirmed correlation data older than age and removes them.
* @param age in milliseconds
* @return the collection of correlation data for which confirms have
* not been received or null if no such confirms exist.
*/
public Collection<CorrelationData> getUnconfirmed(long age) {

unless a difference that end-user mutation won't have effect already because they are removed already.
So, if you insist that it must be just int value, let's consider it as a solution and I'll come back here for the final review!

Actually we have similar API already - RabbitTemplate:

unless a difference that end-user mutation won't have effect already because they are removed already.

Correct - that's a big difference; once they are removed they are no longer relevant so it's fine to give the user access. I am just wary of doing that when they are still active objects.

Merged as https://github.com/spring-projects/spring-amqp/commit/a3f6b1746eebea8294b8adece418b12deb102432.
Pay attention to beautiful polishing for RabbitTemplate.getUnconfirmedCount():
return this.publisherConfirmChannels.keySet()
			        .stream()
			        .mapToInt(channel -> ((PublisherCallbackChannel) channel).getPendingConfirmsCount(this))
			        .sum();

Java 8 in the power :smile:
Thank you for contribution and looking forward for more!


新增了GUI代码，并把功能模块化

epic

@Chizukuo Can we pack them into a .exe file or is there a better way to run the code from mobile platforms?

@Chizukuo Can we pack them into a .exe file or is there a better way to run the code from mobile platforms?

The .exe file is located in the release section of my forked repository. I’m considering porting it to the Android platform, but with so much effort required recently, it’s university exam week.

@Chizukuo Can we pack them into a .exe file or is there a better way to run the code from mobile platforms?

The .exe file is located in the release section of my forked repository. I’m considering porting it to the Android platform, but with so much effort required recently, it’s university exam week.

understood, thanks for your contribution ❤


feat(design-system/DT-6): allow generation of both UIKit and SwiftUI font files

Making some updates based on my comments in the original fueled-typography PR
The main update is to allow generation of both UIKit's Label.swift, LabelStyle.swift, LabelStyle+extension.swift and SwiftUI's TextStyle.swift, TextStyle+extension.swift.
Question:

Do we need a fontSystem parameter? I don't think it is necessary, since we have to specify the generated file path anyways in the yml if we want to generate certain files , we can simply check whether the file path exists, for the same reason, we could also remove the generateLabels and generateStyles params
Do we want to include the example folder in our repo at all? Since there's a lot inside Example to maintain every time we make updates

TODO:

fix tests
update Example dir to reflect our changes or remove it
potentially remove fontSystem param

P.S. Will need to update the figma-export.yml with the right params for typography
  # [optional] Parameters for exporting typography
  typography:
    # Typography name style: camelCase or snake_case
    nameStyle: camelCase
    # [optional] Absolute or relative path to swift file where to export UIKit fonts (UIFont extension).
    fontSwift: "./Libraries/DesignSystem/Sources/FigmaExport/Extensions/UIFont+extension.swift"
    # [optional] Absolute or relative path to swift file where to generate LabelStyle extensions for each style (LabelStyle extension).
    labelStyleSwift: "./Libraries/DesignSystem/Sources/FigmaExport/Extensions/LabelStyle+extension.swift"
    # Should FigmaExport generate UILabel for each text style (font)? E.g. HeaderLabel, BodyLabel, CaptionLabel
    generateLabels: true
    # Relative or absolute path to directory where to place UILabel for each text style (font) (Required if generateLabels = true)
    labelsDirectory: "./Libraries/DesignSystem/Sources/FigmaExport/UIComponents/"

    # [optional] Absolute or relative path to swift file where to export SwiftUI fonts (Font extension).
    swiftUIFontSwift: "./Libraries/DesignSystem/Sources/FigmaExport/Extensions/Font+extension.swift"
    # [optional] Absolute or relative path to swift file where to generate TextStyle extensions for each style (TextStyle extension).
    textStyleSwift: "./Libraries/DesignSystem/Sources/FigmaExport/Extensions/TextStyle+extension.swift"
    # Should FigmaExport generate TextStyles for each text style (font)? E.g. Header, Body, Caption
    generateTextStyles: true
    # Relative or absolute path to directory where to place TextStyles for each text style (font) (Required if generateTextStyles = true)
    textStylesDirectory: "./Libraries/DesignSystem/Sources/FigmaExport/UIComponents/"


Roadmap of the library

Hi guys,
First of all, lots of credits for an excellent work on the library. I use it in my Angular 1 website and it rocks!
At this moment I am using beta3 version in order to do component routing. Although it all looks and works good, I am a bit scared to take it in production because it is still in beta.
Could you update us a bit on the short-term future plans until the release of the 1.0 version?
Karens

My team has been planning for many months to migrate to the component-based UI-Router as soon as it makes it out of beta. Every couple weeks during sprint-planning we check to see if it has been released so that we know if we can start the migration process. Having some sort of ballpark projected release date would be handy.

Expect a release candidate within the week.

All right! Thanks for the update. Looking forward to it.

FYI I'm a little behind on this.  I'm going to release as beta.4 instead of RC.

No problem!

Would be great to have a fresh release, even if it is beta.4. I think that the whole active Angular 1 community is waiting for it :)

Agreed! Trying to get all my ducks in a row.

Thanks! Updated today without any issues. Keep up the good work!

Great to know!  Hope the new docs are easier to use as well.


Issues using analyze-local-images tool

When I'm trying to run the analyze-local-images tool with Clair deployed locally, I always encounter this problem :
2016-04-11 16:58:38.125330 I | Saving a443d5a72a2e to local disk (this may take some time)
2016-04-11 16:58:47.805567 I | Retrieving image history
2016-04-11 16:58:47.822857 I | Setting up HTTP server (allowing: clairsvc-clair.kmt-dev1.orange-labs.fr)
2016-04-11 16:58:47.923039 I | Analyzing 14 layers...
2016-04-11 16:58:47.923052 I | Analyzing d8bd0657b25f17eef81a3d52b53da5bda4de0cf5cca3dcafec277634ae4b38fb
2016-04-11 16:58:48.059773 I | Could not analyze layer: Got response 400 with message {"Error":{"Message":"could not find layer"}}

Concerning the logs produced by my Clair instance running, I have this :
worker: layer d8bd0657b25f17eef81a3d52b53da5bda4de0cf5cca3dcafec277634ae4b38fb: failed to extract data from http://<IP_ADDRESS>:9279/d8bd0657b25f17eef81a3d52b53da5bda4de0cf5cca3dcafec277634ae4b38fb/layer.tar: could not find layer
I've also noticed that the layer.tar normally generated by a function in analyze-local-images never appears in my /tmp directory.
I've tried many differents configuration (also trying to use it but remotely, but it always give me the same response from the worker component).

Hi,
It looks like that Clair runs on a remote host and that you've specified the -endpoint parameter correctly (clairsvc-clair.kmt-dev1.orange-labs.fr). However, it looks to me that Clair, on the remote host, tries to download the layer from <IP_ADDRESS> (ie. locally). This means that you probably have set -my-address to <IP_ADDRESS>. You must set this to the public IP address of the host that runs analyze-local-images: it runs a web server that allows Clair to download the layers.

My mistake, I mixed up some of my logs and accidently paste the wrong ones, it seems to work locally now, but I have to work on finding a way to expose HTTP Server through a public IP with our company environment. Thanks for your help :)


Mature content filter is broken

Bug My post (a short markdown file) was marked as "mature" without my doing so. The tags are programming language compiler virtual constructor.
To Reproduce Visit https://odysee.com/@rmbrt:d/virtual-constructors:6
Expected behavior It should display normally.
Screenshots

System Configuration Odysee.com frontend.
Additional context I assume this happened due to a word filter or something, or an error in the upload form, because I did nothing different from my previous uploads, and even reused the exact same file as a thumbnail as I had used in a previous post that was not flagged as mature. I tried editing and re-uploading it via the LBRY client, and it is flagged as mature.

Can you screenshot the edit page which shows the tags?

@tzarebczan

re-issuing the upload via odysee.com, hoping this will change anything.

Update: still flagged as 'mature'. I tried uploading a test document, and it was not flagged. I have no idea what's wrong here. Maybe some word in the content trips up the filter?

We'll take a closer look on Monday. Definitely not normal, haven't seen it before either.
Sorry!

@RmbRT this should be fixed in about 20 minutes - https://github.com/OdyseeTeam/odysee-frontend/commit/20c1054a6e261655823892c736382660a21a46d4
Might need a blog post to explain what happened there :p

LMAO. The joys of javascript.

You guys should switch to WASM or something.


install-kube-system is not robust to some failures

It looks like /opt/bin/install-kube-system got a
Apr 30 03:30:01 ip-10-0-5-235.ec2.internal install-kube-system[4659]: {"ErrStatus":{"metadata":{},"status":"Failure","message":"The  operation against  could not be completed at this time, please try again.","reason":"ServerTimeout","details":{},"code":500}}

which curl considers a success. so the cluster doesn't end up running kube-dns

@daveey this curl nonsense can be replaced by kubectl via the hyperkube container image. That will allow us to analyze exit codes meaningfully and use higher-level constructs like kubectl apply for this.
@daveey are you interested in doing a PR for this?

@colhom it actually looks like curl just needs a -f flag to treat a 500 as a failure. i'll submit a PR for that

https://github.com/coreos/coreos-kubernetes/pull/450

@daveey unfortunately it's not that easy. When the controller reboots, for instance, curl -f will return non-0 if we try to create resources that already exist, and install-kube-system.service will keep trying to create stuff that's already there (forever in this case).
I want to use kubectl apply, as that will do exactly what we want.

ah, that makes sense. why can't these go into /etc/kubernetes/manifests/

We don't want to them to be static pods.
On May 2, 2016 2:38 PM, "David Braginsky"<EMAIL_ADDRESS>wrote:

ah, that makes sense. why can't these go into /etc/kubernetes/manifests/
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/coreos/coreos-kubernetes/issues/447#issuecomment-216372268

I'd rather not use apply on each reboot. You could stomp on user-provided changes. That being said, there's lots of room to make this smarter...

As to making this smarter, agree completely. We should start by using kubectl for this instead of curl.
As far as user-supplied changes- the mantra is that the cluster assets on disk are the source of truth. Given that we don't have a supported way to change cluster assets and apply them to a running cluster, that's kind of a moot point at present.
Once we can support rolling asset changes out to an existing cluster, I feel that nuking any user-supplied changes on reboot that aren't done via asset files becomes a "feature".

I tried using kubectl apply, but ran into https://github.com/kubernetes/kubernetes/issues/24088

I made https://github.com/coreos/coreos-kubernetes/pull/462 which uses a 3d party docker image with kubectl in it. What do you guys think of adding kubectl to the coreos hyperkube image until the hyperkube bug is fixed?

the mantra is that the cluster assets on disk are the source of truth

That should only be true for static pods: e.g. where we configure /etc/kubernetes/manifests
Otherwise, the objects we create using curl are simply api objects (services/replication controllers/deployments/etc), and the on-disk objects are just used during installation. Maybe someone wants to change options in the api object for dns/heapster/etc. - that is a perfectly acceptable use-case.
The fact that we run curl each reboot is partly an artifact of it being a simple solution. All of the objects should be running, so if someone deleted them there's likely no harm in, for example, re-creating DNS or the kube-system namespace. We've just relied on the fact that it fails if the object already exists as a simple means of being a no-op.
Ultimately the issue is that we need a way to determine actual failure vs "object already exists" failure.
If this is done with curl, it likely would be parsing HTTP codes (I'm assuming, not sure how the apiserver actually responds).
If this is done with kubectl, I believe we still have to parse output to determine this. I'm not immediately clear how this helps us (with this specific issue)

We could do a request to see if the resource already exists, and post it if it doesn't.


Open XML SDK contains too few samples, isn't documented properly on microsoft's site and questions aren't answered on stackoverflow.

When trying to find out how to create niche stuff, it turns out that the tools provided are too old, does not cover niche cases, questions are not answered on stackoverflow, and the samples provided in the Open-XML-SDK repository does not cover the case.
In my opinion we have a problem when you refer to stackoverflow, eg. how to create a chart in a presentation (there is a Sunburst example, but that does not convert trivially to a bar or pie chart), as you can verify by searching stackoverflow for openxml, presentation and chart. It means that when you refer us to stackoverflow, most of the time you might as well refer to /dev/null. If the questions are answered, they answer by telling the users to use a library on top of the SDK, ie. the question is ignored.
Another example is how to reuse the same embeded workbook for several different charts in a presentation. Does that work? Or must the workbook stream be re-read for each chart? Etc.
Also the API reference on microsofts site contains no example code and it's "learn" section is sorely lacking.
What I think is needed, is more samples. Otherwise, what is the point with the Open-XML-SDK, when it's easier to read the specification and not use the SDK?

Hi @skrabbe001,
Which tools are you referring to? Are they from this list: Related Tools?
Specifically what samples are you looking for? We have samples in the documentation on learn.microsoft in addition to samples on our repo that haven't been migrated to learn.microsoft yet.
We are working to grow the available samples, but it is impossible to have a sample for every niche scenario, however, our sample documentation is open source, so you can also contribute a sample if there's something you think we should include.

So, what is the solution to this? I can see you have marked it as resolved, and then closed it.

@skrabbe001 you are asking a very open ended question here as well as being, frankly, rude to those working on a project you have never contributed to nor been involved in. @mikeebowen has asked for specifics regarding the tools or scenarios you want covered and you didn't provide any more details that would be useful. We can guess at what that would be, but it would be pointless and probably not help you.
You did have a specific ask in your main issue, but it's buried in between the lines telling us that we aren't doing a good job. Not a great way to solicit help, my friend.
Please keep in mind that this project is none of our full time jobs - it's something we continue to support and put time into in order to support the community. We ask that people respond in good faith to that.
As to some of your points:

Which tools are you referring to? Are they from this list: Related Tools?

Yes.

The related tools are a way of us exposing community projects that build on the SDK. You may check those projects out for your scenarios, but we do not support them

Which samples are you referring to?

I am referring to the samples and "learn" that you provide in your reply. And I am referring to the open xml api documentation on microsofts site, ie. it providing litteraly no examples, and no context. Sometimes they show the raw xml. If I need to create raw xml, why would I need the SDK?

Documentation is always lacking and if there are specifics, please open targeted issues for those. If you take a look at the rest of the API documentation on learn.microsoft.com, majority of them do not have examples - the API system we have there just doesn't work for that. Hence the docs at https://learn.microsoft.com/en-us/office/open-xml/open-xml-sdk which we have neglected over the years but are trying to bring them back into shape.
Raw XML is sometimes the best way to get something to work here (generally through a highler level model like XLINQ or similar), but we have seen many people use the SDK to handle the general package layout but manipulate XML themselves.

Another example is how to reuse the same embeded workbook for several different charts in a presentation. Does that work? Or must the workbook stream be re-read for each chart? Etc.

This is the only specific thing you have mentioned. In the future, I'd recommend starting with that as it's a clear ask, although not in line with the support we give here in the issues.

It means, that to create stuff, I have to read the spec. If I read the spec, I don't need the SDK.

Yes, we do expect that you may need to read the spec.  We do not provide an object model over the spec. Feel free to ignore the SDK and just use the spec. The value of the SDK is to provide a bit of help with the bookkeeping of things required and a framework to build larger document manipulations on. It may not be for you if that is not your need
To be clear, I am the main contributor here and don't actually understand the spec - I rely on @mikeebowen and others for project direction regarding the spec.  I understand .NET and maintain this project as I see the importance for many people. When I've needed to use the SDK, I use a related tool that builds on top of this to provide a more user-friendly model than the model here (which attempts to be 1:1 to the spec).

Also, when a sample is provided, it should be crystal clear what version of the Open-XML-SDK the sample is intended for. For example, many version 2 examples doesn't work with version 3. And many version 3 examples for excel, doesn't work with powerpoint.

The samples should generally work for both versions at compile time. If you have found issues there, please give back to the community by opening issues for each of those issues and we can work with you on specific issues. @mikeebowen has done a lot of work to bring those samples up to date with latest programming guidance but there is still a way to go. Telling us there are issues but not pointing to where will not get things to a better place and is unactionable our end.

You CAN NOT refer to stackoverflow, because the questions that need answering, aren't answered on stackoverflow. And it seems counterproductive to tell people to provide the samples themselves, that they are trying to get help writing. That's a catch 22.

I disagree - we can do whatever we want :) In all politeness though, we don't have the time to answer questions about spec usage for all scenarios. This project is to provide a mapping to the spec so that people can build against the spec in a strongly typed way. End of story. Stackoverflow has proven to get better traction for those kinds of questions so that we can focus on building a library that allows people to use the spec. However, if you have evidence to the contrary (such as statistics around questions asked vs answered), feel free to open an issue about it as a problem and we can discuss it.

So, what is the solution to this? I can see you have marked it as resolved, and then closed it.

Did you create a lot of new samples, and add examples (C# code) and context (what xml is created in what files) to the api documentation?

Did you add examples on how to query the context of xml in specific files?

How did you resolve it?

I'm completely lost as to what you are referring to by "this". This issue has not been resolved nor closed. You opened this issue and have pretty much focused on philosophical differences in how we should run the project, which you have not done a great job of convincing us to change. So far, there's nothing to do on our side.

If you disagree with this, that's fine, but it's the philosophy guiding this project. If you want our help, it would be wise to understand what the project is before going on a rant and telling us what we should and shouldn't do (or even better, what we can and cannot do). That is a quick way to shut down any helpful discussion.

So, what is the solution to this? I can see you have marked it as resolved, and then closed it.
Did you create a lot of new samples, and add examples (C# code) and context (what xml is created in what files) to the api documentation?
Did you add examples on how to query the context of xml in specific files?
How did you resolve it?

Was this intended for #1572? If so, if you don't think it was resolved, feel free to reopen and give more details. There was no response for 3 months, so it was assumed you got what you needed and moved on.

Was this intended for https://github.com/dotnet/Open-XML-SDK/issues/1571?

No.
This post is self contained, was created last week, has not been resolved (even thought its marked as closed and resolved!!) and it is about:

You can not refer people to stackoverflow, as only extremely few and simple questions are answered on stackoverflow. Often when they are answered, the reply ignores the question, and refers to an addon library that is build on top of the SDK.

And this is what should be fixed to remedy it:

The api docs do not contain any examples, and they do not describe in which files they create xml fragments, and only rarely and randomly show some sample xml. This should be fixed.
The api docs contains no examples. This should be fixed.
The samples that are supplied does not cover any normal use case (barchart in powerpoint, how to create two charts that share the same data source, etc, etc, etc). Samples should be created.
The tools that are refered to, are either not maintained anymore (prod tools) or don't work on all filetypes, or only covers a subset of openxml.

Because of these problems, the time people have to spend using the SDK is far greater, than manually modifying the xml without using the SDK.

The api docs do not contain any examples, and they do not describe in which files they create xml fragments, and only rarely and randomly show some sample xml. This should be fixed.

Feel free to create an issue to track this and let us know which APIs you feel should be expanded. The current pattern is fairly common in the .net space

The api docs contains no examples. This should be fixed.

This seems the same as above

The samples that are supplied (on github and microsoft-learn) don't cover any normal use case (barchart in powerpoint, how to create two charts that share the same data source, etc, etc, etc). Samples should be created.

The samples that exist exist specifically because they were a use case that someone in the past figured out and shared - it sounds like it just doesn't handle your specific use cases. If you feel like a sample should be created, feel free to create an issue to track that use case.

The tools that are refered to, are either not maintained anymore (prod tools) or don't work on all filetypes, or only covers a subset of openxml.

Most of them (as I stated above) are not part of this project and are community driven. If you feel that one of them doesn't make sense to include for whatever reason (it's not maintained, doesn't work, etc), please create an issue to let us know.

It's not obvious which version of the Open-XML SDK the samples work with.

As I stated above, please open issues for those samples as they should work with all versions and we can document/fix the ones that don't

I noticed you tell people to write the samples they are asking for help writing :D

If we don't have a sample, then most likely we'll ask for contributions if a good sample is figured out. We aren't here to write samples for everyone's use cases - we're a small team doing this as a side project because we see value in it.

Often the .Net examples don't include a "using" section, and several packages implement types with the same name, so it's ambiguous which type to use.

Great point - again, this is the kind of thing that would be good for it's own issue

@skrabbe001 I took time to respond to all your issues once and now I'm responding to more. Please engage on those responses rather than just reiterating everything and adding new things.
I'm going to close this issue as unactionable and too broad. As I mentioned multiple times, feel free to open individual issues for each of these things so they can be discussed and managed constructively.

Omg!

Omg! That's a lie

Please be respectful. We're happy to engage with some of these things but this issue has too many issues and lacks detail (as described for each of your concerns) to be productive with.
btw GH is saying "closed as completed" - not sure where that came from, I just closed it due to the reasons I stated above.

What is respectful about saying that it is unactionable to:

not refer people to stackoverflow
to write simple samples
to document the work we do

How is it respectful saying "the other .Net apis arent documented either, so neither we should we"./

How is it respectful telling people asking for help, that they would not have to ask for if the SDK was documented, to write those samples themselves?

That's not what I'm referring to - it's specifcally the line I referenced. You're taking things out of context and not responding to the responses I have given you.
All I'm asking is that you create an issue for each of the concerns you have so we can address them individually and with the proper attention to each.

It is one simple issue: Don't tell people to ask elsewhere, when they ask how to use an undocumented SDK.

Here is an example of how to document a framework / SDK / language:
https://en.cppreference.com/w/cpp

If we make a more specific search on stackoverflow, for example:
Search: openxml chart presentation isaccepted:yes
It returns these two questions:
Creating a power-point file reader ( pptx )
nodejs base64 parse returns a unexpected zip file
Browsing the answers, while rewriting the search to use openxmksdk or powerpoint, shows 0 questions regarding charts in powerpoint are answered.

Because of this, it's faster to (than using the SDK):

create a powerpoint file without a chart and save it and unzip it.
add a chart to the powerpoint file and save it with a new name and unzip it
create a diff of the unzipped files

The reason this is faster, is because the SDK is not documented.

If you want that, please create an issue for that. You said you wanted this issue to be about why stackoverflow is not the place for question and answers about usage, not about documenting or reasons why openxml is hard. If you want to discuss something else, please create a targeted issue for that.
Please answer the questions I have asked here

I feel like you don't understand the cause of the problem, which is an undocumented SDK.

Do you think it would have better traction somewhere else? Where would that be?

Here. And I've explained how to fix it, which you claim is off subject.

The stackoverflow stats were an illustration. I showed how to go into detail here here:
https://github.com/dotnet/Open-XML-SDK/issues/1710#issuecomment-2108731966

The resolution to not refer to stackoverflow, is to document the SDK here.

Alternately if could be documented on the microsoft site, which is currently here. This is the API and samples I've refered to (including the samples on github).

Thank you :D

Was this intended for #1571?

No. I solved the problem myself. I confused the closing with this, as I thought it was closed ages ago.

The only way documentation gets better is if you give back when you figure things out. Please provide a PR to update the docs to help guide future users to whatever helped you.


Find room to show the current playing title or make it easier to infer somehow

It's not obvious what song is playing if you've scrolled down the stream at all.

Added space for it.


Improve validation results error description

Currently, a validation results error produces output in a hard-to-understand dictionary: https://github.com/E3SM-Project/zppy/blob/main/zppy/main.py#L171
Suggestions for improving the error description:

Pretty print the dictionary
Print only the keys/values with False in the validation dictionary
Print a link to the tutorial, which has examples of how values should look (but not for all parameters...)
See if there's any way for the Validator to give more information on why it failed

#319 means that the validator doesn't appear to be working at all, thus blocking this issue.


Changing beta labels to updated ones

Fixes #13

@onitake Looks good ?

@onitake @joschi36 are you lgtm on merging this?

LGTM


Make entire response object available in load callback

Currently circuits unwraps the main data payload from a response JSON object, and sends it as the first argument to the load/success callback. The second argument gets an object with all of the params, the request, etc. We treat hypermedia links specially, and include them in this second argument as well. However, not all service APIs will have one main payload field on the response, and may want access to these secondary ones (just like "links", but not as a magic property). While it is very convenient to simply get the main payload as the first arg, leaving others unavailable is not desirable. We should add a "response" property to this second argument (to match the "request), so the raw data can be accessed.
Note that it is currently possible to work around this issue by using a "response" type plugin to gain access to the raw data during the lifecycle. This issue is primarily to make this more convenient so it is all available in the same callback.

More background on this:
When you call a service method via circuits, you get a very specific set of items passed to your callback. This was originally done to hide some of the ajax complexity, but we've found that there are cases where you will want access to the raw data, and having to wait for us to update the library design isn't useful. So there should be a mechanism where more data is passed to the callback.
Calling a circuits method looks something like:
var service = factory.getServiceByName('MyService');
//assuming the schema has a 'readDocument' method, which returns JSON like:
{
    "data": {
        "id": 1,
        "text": "hi"
    },
    "links": [{
        "rel": "self",
        "href": "documents/1"
    }]
}
service.readDocument({
    id: 1
}, {
    success: function (document, args) {
        //The first argument, 'document', contains only the unwrapped portion from the 'data' field:
        console.log('got document: ' + document.id); // "got document 1"

        //The second argument, 'args', contains a bunch of stuff we've packed on, including the original params, the request, links array, and so on.
        console.log(args); // { id: 1, links: [...], plugin: {...}, request: {...}
    }
});

The 'args' param in the success callback should include a response field that contains the raw JSON.

So, in the exampe presented, we should have:
args.response = {
    "data": {
        "id": 1,
        "text": "hi"
    },
    "links": [{
        "rel": "self",
        "href": "documents/1"
    }]

am I right?

Yes


Cannot save module record page if inline linked table is present

Describe the bug
When i try to save a change of something on the record page of a module, where a Record list is linked with the option "Allow inline record editing" and a Parent field is set i get the Error "Could not save this page, all required module fields must be present"
When i disable the required attribute on all fields of the module in question i can save the change without any issues.
To Reproduce
Steps to reproduce the behavior:

have a module (parent module) with required fields
add a module (sub module) with a "record selector" field for the parent module
add a Record list to the record page of the parent module, in the record list options:

link to sub module
add desired fields to show
activate "Allow inline record editing"
make sure "Parent field" is choosen correctly ("record selector" field)
Add Block

try to save

Expected behavior
Page changes should be saved without any issues, required fields should not be checked when changing the template record page other then if they are present at all.
Desktop:

OS: Win 10 64Bit
Browser Chrome
Version 87

Server:

Docker install
latest version: 2020.12.1

Additional context
server log:
22:41:46.799    DEBUG   actionlog       service/page.go:166     searched for pages      {"timestamp": "22:41:46.799", "requestOrigin": "api/rest", "requestID": "827394a9d070/UnMJmYXbm2-001362", "actorIPAddr": "2003", "actorID":<PHONE_NUMBER>74824964, "resource": "compose:page", "action": "search", "severity": 6, "error": "", "description": "searched for pages", "policy-match": true, "meta": {"filter.namespaceID":212005351875149828,"filter.root":false,"filter.sort":"weight","namespace.ID":212005351875149828,"namespace.name":"lernpiloten","namespace.slug":"lernpiloten"}}
22:41:49.228    DEBUG   actionlog       service/page.go:421     looked-up for a Record page for module "Begleiter"      {"timestamp": "22:41:49.228", "requestOrigin": "api/rest", "requestID": "827394a9d070/UnMJmYXbm2-001363", "actorIPAddr": "2003", "actorID":<PHONE_NUMBER>74824964, "resource": "compose:page", "action": "lookup", "severity": 6, "error": "", "description": "looked-up for a Record page for module "Begleiter"", "policy-match": true, "meta": {"namespace.ID":212005351875149828,"namespace.name":"lernpiloten","namespace.slug":"lernpiloten","page.ID":212006375855751172,"page.moduleID":212006293915828228,"page.namespaceID":212005351875149828,"page.title":"Record page for module "Begleiter""}}
22:41:49.346    DEBUG   actionlog       service/user.go:357     searched for matching users     {"timestamp": "22:41:49.346", "requestOrigin": "api/rest", "requestID": "827394a9d070/UnMJmYXbm2-001364", "actorIPAddr": "2003", "actorID":<PHONE_NUMBER>74824964, "resource": "system:user", "action": "search", "severity": 6, "error": "", "description": "searched for matching users", "policy-match": true, "meta": {"filter.deleted":0,"filter.roleID":[],"filter.sort":"","filter.suspended":0,"filter.userID":[0]}}
22:42:17.349    DEBUG   actionlog       service/module.go:384   looked-up for a Stunden Abrechnung      {"timestamp": "22:42:17.349", "requestOrigin": "api/rest", "requestID": "827394a9d070/UnMJmYXbm2-001366", "actorIPAddr": "2003", "actorID":<PHONE_NUMBER>74824964, "resource": "compose:module", "action": "lookup", "severity": 6, "error": "", "description": "looked-up for a Stunden Abrechnung", "policy-match": true, "meta": {"module.ID":212006294637248516,"module.handle":"stunden_abrechnung","module.name":"Stunden Abrechnung","module.namespaceID":212005351875149828,"namespace.ID":212005351875149828,"namespace.name":"lernpiloten","namespace.slug":"lernpiloten"}}
22:42:17.356    DEBUG   actionlog       service/record.go:322   searched for records    {"timestamp": "22:42:17.356", "requestOrigin": "api/rest", "requestID": "827394a9d070/UnMJmYXbm2-001366", "actorIPAddr": "2003", "actorID":<PHONE_NUMBER>74824964, "resource": "compose:record", "action": "search", "severity": 6, "error": "", "description": "searched for records", "policy-match": true, "meta": {"filter.deleted":0,"filter.moduleID":212006294637248516,"filter.namespaceID":212005351875149828,"filter.query":"(mitarbeiter = 0)","filter.sort":""}}

@nabl13 I think I managed to get a similar issue a few days back. I'll have one of us take a look at this and it should be included in the next update (there will be a blog post when it drops). Until then either disable the required fields or disable inline editing.

Fixed: https://github.com/cortezaproject/corteza-webapp-compose/commit/0766125433ca69833d2779d11bf691357d8949b1
Will be released in patch 2020.12.3
Thank you for reporting the bug @nabl13


CPR on Raspberry Pi

Hi there,
For a home project I would like to use CPR on the raspberry pi 2b+. I made a small test program to read and write data to a Rest Api, but the POST request hangs forever and is not executed on the Rest Api. The GET request works fine. I build the the same code also on my desktop(Ubuntu 20.04 amd64) and that gives no problems.
My first attempt was cross-compiling with various toolchains, but it always hangs on the POST/PUT request.
Finally I did a local build on the raspberry pi and it kept hanging on the POST request.
The c++ code is:
#include <iostream>
#include <cpr/cpr.h>
#include "nlohmann/json.hpp"

using json = nlohmann::json;

int main()
{
	std::cout << "Hello World\n";

	auto r = cpr::Get(cpr::Url("http://<IP_ADDRESS>:3001/environment?select=location,pressure"));

		std::cout << r.status_code << std::endl;
		std::cout << r.header["content-type"] << std::endl;
		std::cout << r.text << std::endl;

	json msg;
	msg["location"] = "livingroom";
	msg["temperature"] = 27.5;
	msg["pressure"] = 1006.1;
	msg["humidity"] = 61;
	msg["time"] = "2020-07-01T13:21:22.18542+00:00";
	std::cout << msg.dump() << std::endl;
	r = cpr::Post(cpr::Url("http://<IP_ADDRESS>:3001/environment"),
				  cpr::Header{{"Content-Type", "application/json"},
							  {"Content-Length", std::to_string(msg.dump().length())}},
				  cpr::Body(msg.dump()));

	std::cout << r.status_code << std::endl;
	std::cout << r.header["content-type"] << std::endl;
	std::cout << r.text << std::endl;

	return 0;
}

my makefile is:
OBJECTS=build/main.o

BUILDDIR=build/
SOURCEDIR=src/
LIB=-L/usr/local/lib/ -L/usr/local/lib
# include the src directory for rapidjson and spdlog includes
INC=-Isrc
MKDIR_P = mkdir -p

.PHONY : all
all: $(BUILDDIR)testCprSimple

$(BUILDDIR)testCprSimple : $(OBJECTS)
	g++ -o $(BUILDDIR)testCprSimple $(OBJECTS) $(LIB) -latomic -lcpr -lcurl

$(BUILDDIR)main.o : $(SOURCEDIR)main.cpp
	g++ -o $(BUILDDIR)main.o $(SOURCEDIR)main.cpp -std=c++14 $(INC) -g3 -O2 -Wall -c -fmessage-length=0

# There are two reasons to use a phony target:
# to avoid a conflict with a file of the same name, and to improve performance.
.PHONY: clean
clean :
	rm $(BUILDDIR)testCprSimple $(OBJECTS)
# Tab must be used as indentation

I am using 2020-02-13-raspbian-buster-lite as OS on the raspberry pi with gcc (Raspbian 8.3.0-6+rpi1) 8.3.0
I have installed and build CPR successfully on the raspberry pi with:
git clone https://github.com/whoshuu/cpr.git
cd cpr
git submodule update --init
mkdir build; cd build
cmake -DCMAKE_USE_OPENSSL=OFF ..
make
sudo make install

The curl program itself is working with POST request on the pi:
curl http://<IP_ADDRESS>:3001/environment -X POST -H "Content-Type: application/json" -d '{"location":"livingroom", "temperature":23.2,"pressure":1002.5, "humidity":49, "time":"2020-07-01T13:21:22.18542+00:00"}'
Am i forgetting something for the raspberry pi / arm build or is it a bug?
Thanks in advance for your help.

How it works if you remove this:
{"Content-Length", std::to_string(msg.dump().length())}}

from cpr::Header?

Hi,
removing
{"Content-Length", std::to_string(msg.dump().length())}}

has no effect. On my desktop still works good and on my pi the POST request is not send and program keeps hanging.

Why do you link against -latomic -lcurl, especially against -lcurl?
Looks to me like an outdated version of libcurl.
Could you please try to run all CPR unit tests with the following command:
ctest -C release -V
# or
ctest -C debug -V

Hi,
The -lcurl was something to try out and -latomic was a remaining from the makefile from other project I copied from.
Current makfile is:
OBJECTS=build/main.o

BUILDDIR=build/
SOURCEDIR=src/
LIB=-L/usr/local/lib/

.PHONY : all
all: $(BUILDDIR)testCprSimple

$(BUILDDIR)testCprSimple : $(OBJECTS)
	g++ -o $(BUILDDIR)testCprSimple $(OBJECTS) $(LIB) -lcpr

$(BUILDDIR)main.o : $(SOURCEDIR)main.cpp
	g++ -o $(BUILDDIR)main.o $(SOURCEDIR)main.cpp -std=c++14 $(INC) -g3 -O2 -Wall -c -fmessage-length=0

# There are two reasons to use a phony target:
# to avoid a conflict with a file of the same name, and to improve performance.
.PHONY: clean
clean :
	rm $(BUILDDIR)testCprSimple $(OBJECTS)
# Tab must be used as indentation

Result from the test
pi@raspberrypi:~/Downloads/cpr/build $ ctest -C release -V
UpdateCTestConfiguration  from :/home/pi/Downloads/cpr/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :/home/pi/Downloads/cpr/build/DartConfiguration.tcl
Test project /home/pi/Downloads/cpr/build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
      Start  1: cpr_get_tests

1: Test command: /home/pi/Downloads/cpr/build/bin/get_tests
1: Test timeout computed to be: 10000000
1: [==========] Running 95 tests from 11 test suites.
1: [----------] Global test environment set-up.
1: [----------] 6 tests from BasicTests
1: [ RUN      ] BasicTests.HelloWorldTest
1: [       OK ] BasicTests.HelloWorldTest (5 ms)
1: [ RUN      ] BasicTests.TimeoutTest
1: [       OK ] BasicTests.TimeoutTest (3 ms)
1: [ RUN      ] BasicTests.BasicJsonTest
1: [       OK ] BasicTests.BasicJsonTest (3 ms)
1: [ RUN      ] BasicTests.ResourceNotFoundTest
1: [       OK ] BasicTests.ResourceNotFoundTest (3 ms)
1: [ RUN      ] BasicTests.BadHostTest
1: [       OK ] BasicTests.BadHostTest (9 ms)
1: [ RUN      ] BasicTests.RequestBodyTest
 1/16 Test  #1: cpr_get_tests ....................***Exception: SegFault  1.06 sec
test 2
      Start  2: cpr_post_tests

2: Test command: /home/pi/Downloads/cpr/build/bin/post_tests
2: Test timeout computed to be: 10000000
2: [==========] Running 25 tests from 1 test suite.
2: [----------] Global test environment set-up.
2: [----------] 25 tests from UrlEncodedPostTests
2: [ RUN      ] UrlEncodedPostTests.UrlPostSingleTest
2: [       OK ] UrlEncodedPostTests.UrlPostSingleTest (6 ms)
2: [ RUN      ] UrlEncodedPostTests.UrlPostAddPayloadPair
2: [       OK ] UrlEncodedPostTests.UrlPostAddPayloadPair (4 ms)
2: [ RUN      ] UrlEncodedPostTests.UrlPostPayloadIteratorTest
2: [       OK ] UrlEncodedPostTests.UrlPostPayloadIteratorTest (4 ms)
2: [ RUN      ] UrlEncodedPostTests.UrlPostEncodeTest
2: [       OK ] UrlEncodedPostTests.UrlPostEncodeTest (4 ms)
2: [ RUN      ] UrlEncodedPostTests.UrlPostEncodeNoCopyTest
2: [       OK ] UrlEncodedPostTests.UrlPostEncodeNoCopyTest (3 ms)
2: [ RUN      ] UrlEncodedPostTests.UrlPostManyTest
2: [       OK ] UrlEncodedPostTests.UrlPostManyTest (4 ms)
2: [ RUN      ] UrlEncodedPostTests.UrlPostBadHostTest
2: [       OK ] UrlEncodedPostTests.UrlPostBadHostTest (12 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostSingleTest
2: [       OK ] UrlEncodedPostTests.FormPostSingleTest (5 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostFileTest
2: [       OK ] UrlEncodedPostTests.FormPostFileTest (6 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostFileNoCopyTest
2: [       OK ] UrlEncodedPostTests.FormPostFileNoCopyTest (6 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostFileBufferTest
2: [       OK ] UrlEncodedPostTests.FormPostFileBufferTest (4 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostFileBufferNoCopyTest
2: [       OK ] UrlEncodedPostTests.FormPostFileBufferNoCopyTest (5 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostFileBufferPointerTest
2: [       OK ] UrlEncodedPostTests.FormPostFileBufferPointerTest (4 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostFileBufferArrayTest
2: [       OK ] UrlEncodedPostTests.FormPostFileBufferArrayTest (5 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostFileBufferVectorTest
2: [       OK ] UrlEncodedPostTests.FormPostFileBufferVectorTest (4 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostFileBufferStdArrayTest
2: [       OK ] UrlEncodedPostTests.FormPostFileBufferStdArrayTest (4 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostManyTest
2: [       OK ] UrlEncodedPostTests.FormPostManyTest (4 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostManyNoCopyTest
2: [       OK ] UrlEncodedPostTests.FormPostManyNoCopyTest (4 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostContentTypeTest
2: [       OK ] UrlEncodedPostTests.FormPostContentTypeTest (3 ms)
2: [ RUN      ] UrlEncodedPostTests.FormPostContentTypeLValueTest
2: [       OK ] UrlEncodedPostTests.FormPostContentTypeLValueTest (3 ms)
2: [ RUN      ] UrlEncodedPostTests.UrlPostAsyncSingleTest
2: [       OK ] UrlEncodedPostTests.UrlPostAsyncSingleTest (14 ms)
2: [ RUN      ] UrlEncodedPostTests.UrlReflectTest
2: [       OK ] UrlEncodedPostTests.UrlReflectTest (4 ms)
2: [ RUN      ] UrlEncodedPostTests.PostWithNoBodyTest
2: [       OK ] UrlEncodedPostTests.PostWithNoBodyTest (3 ms)
2: [ RUN      ] UrlEncodedPostTests.PostReflectTest

The test hangs after PostReflectTest
Version of the curl is "curl/7.69.1-DEV", atleast that is in the succesful get request.
The post request still hangs with new build.

I will have a look at it in the next couple of days.

I can confirm this issue.
After upgrading my RPi CMaker version and  building CPR, Post tests fail.
Besides that, Get tests result in a segfault.
I think I have to set up GDB for debugging now.

What I found out so far:
Tests seem to fail on an Raspberry Pi, since mongoose is throwing a segfault during initializing.
Or more concrete, when it tries to create a new pthread.

Might be related to:
https://github.com/cesanta/mongoose/issues/845

Thanks for the update.
I tried out gdbserver on my Pi but did not get any further then this.
Program received signal SIGINT, Interrupt.
0x76cf987c in read () from target:/lib/arm-linux-gnueabihf/libc.so.6

Not sure if this information is very relevant, but we were using cpr 1.5.0 on raspbian buster as well, and ran into issues where the application would hang on HTTP POST calls (but only on raspbian/armhf, not on our 64 bit workstations). I have reverted our software to CPR 1.4.0 and that one seems to work just fine, so it seems to be present in version => 1.5.0

I tested it on my Raspberry Pi 3 and everything works like expected. All tests pass with the latest master build.
Can anybody confirm this with their setup?

I tested it on my Raspberry Pi 3 and everything works like expected. All tests pass with the latest master build.
Can anybody confirm this with their setup?

I was seeing a very similiar issue using CPR 1.5.1 and Curl 7.73.0 on both a cortex-a7 and mipsel target. While this wasn't a raspberry pi, the symptoms where very much the same as described by the reporter. The segfault and/or hang (depending on how I constructed the arguments to cpr::Post) seemed to happen when cpr calls curl_easy_perform during the POST request process.
Upgrading to CPR 1.5.2 and Curl 7.74 seems to have resolved the issue. Perhaps the fixes to post content lengths in that release also resolved this issue?

I was seeing a very similiar issue using CPR 1.5.1 and Curl 7.73.0 on both a cortex-a7 and mipsel target. While this wasn't a raspberry pi, the symptoms where very much the same as described by the reporter. The segfault and/or hang (depending on how I constructed the arguments to cpr::Post) seemed to happen when cpr calls curl_easy_perform during the POST request process.
Upgrading to CPR 1.5.2 and Curl 7.74 seems to have resolved the issue. Perhaps the fixes to post content lengths in that release also resolved this issue?

Might test this in a few days in my Pi 3B

Hi, I have tested the code on my raspberry pi 3B+ and it does not hang anymore. This time I ran the build in a docker container with libcpr.so.1.5.1 and curl 7.64.0. I created the image today, so I do not understand why the library is not 1.5.2 if that the latest version. I pulled it with git clone --depth 1 https://github.com/whoshuu/cpr.git, that should pull the latest version.

Yes, this is actually a bug with the version :D
Besides that I'm closing this issue since it seams to be resolved for now.
Feel free to reopen in case this still persists.


password grant type

Hello,
I'd like to use "Resource Owner Password Credentials Grant" as described in
https://tools.ietf.org/html/rfc6749#section-4.3
but request with grant_type = 'password' like this
https://tools.ietf.org/html/rfc6749#section-4.3.2
cause
"error": "unsupported_grant_type"
Is this grant type supported? And if not why?
Thank you
Petr

Hi @PetrSnobelt. Thanks for asking.
There are a few reasons we haven't implemented that grant type. It's part of OAuth 2.0. but not included OpenID Connect (which is a profile of OAuth 2.0). Even the RFC recommends against using it when there's another choice. I think the main reason for caution there is that it involves transmitting passwords between domains. There's just too much opportunity for abuse and misuse.
It's much safer (if passwords can be considered safe at all these days) to simply direct the user agent straight to the auth server. At least that sort of enforces that the passwords are entered into a form where the referrer matches the auth service. Of course you can just forge the referrer header. But we'd rather that people try to circumvent that sort of mechanism than encourage potential vulnerabilities by making it easy.
We're also beginning to work on moving away from password-based auth altogether. Unfortunately that's not a quick problem to solve. FIDO 2.0 looks like it may have the best chance and I'm personally dying to sink my teeth into that new browser native UAF spec. Gotta skate where the puck is going to be :)
May I ask what's your use case that the password grant seems like the way to go?

Hi @christiansmith, thank you for such fast reply ;-)
Main use case for this grant type is that we like to use anvil as replacement for custom authentication in our apps (classic web app, SPA web app, desktop app, web api) and this change should be "invisible" to our users.
We don't want to start redirecting users to anvil and then back in our apps ...

@PetrSnobelt – You could do the same thing we're doing for form based authentication in our CLI, which is POST to https://YOURANVILSERVER/signin and forge the referrer header to match. It takes a couple extra parameters in addition to the OIDC params in order to do this... ...&provider=password&email=EMAIL&password=PASSWORD.
I'm not saying you should. But you could :)

Thank you very much @christiansmith
I reuse https://github.com/anvilresearch/connect-cli/blob/master/lib/plugins/login.js and it works perfectly.


[main] Upgrade to latest dependencies

After eventing 1.11 released -creydr
/cc knative-sandbox/eventing-writers
/assign knative-sandbox/eventing-writers
Produced by: knative-sandbox/knobots/actions/update-deps

/approve
/lgtm


PR-560: Extract rule API into subproject.

I tried to move on #560.
I moved Rules API to a gradle submodule zally-rules.
I also managed to remove Spring dependency from zally-rules. Using BeanDefinitionRegistryPostProcessor we can register BeanDefinition at runtime prior to any Bean instantiation. This may contribute to #122 .
From what I've seen, to be fully indenpendant from Spring, we would need a way to pass the Config object without @Autowired to rule creation. I probably missed other dependencies.
Also I have no prior experience with gradle so I probably overlooked the build.

Codecov Report

Merging #748 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #748      +/-   ##
============================================
+ Coverage     86.43%   86.45%   +0.01%
+ Complexity      954      948       -6
============================================
  Files           167      166       -1
  Lines          2573     2576       +3
  Branches        348      349       +1
============================================
+ Hits           2224     2227       +3
  Misses          187      187
  Partials        162      162

Impacted Files
Coverage Δ
Complexity Δ

...ly/configuration/RulesDefinitionConfiguration.java
100% <100%> (ø)
2 <2> (?)

Continue to review full report at Codecov.

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

I believe your a trying to address #560 (part of Rule Set epic). The idea behind it is to separate the rule implementations from the server component. Please have a look into the issue #560.

Oops my bad, I meant #560 not 551. I Fixed the PR

Some comments from my side:

Let's rename the subpackage to zally-rule-api or zally-rule-interface
We should also include Context interface

This seems like a healthy step forward to me!
FWIW the zally-rule-api gets my vote for the subproject name. Short and sweet, and doesn't make me stop and think about the interface concept vs keyword. (Although I guess the argument against is that it might make some people think about JVM API vs REST API).
Clearly a Context interface should be extracted into the subproject too since most/all rules shouldn't be implemented without reference to a Context going forward, but the current Context class has lots of dependencies into murky depths of .util.ast so there's some extraction work to do (perhaps a Context interface and ReverseAstContext implementation???). Not sure if it's worth blocking the PR for.

Without Context the module cannot be used independently of the server code.
This raise an issue to me, the Context dependency is not clearly expressed with the Rule and Check annotations. I get it that reflection and Check are used to execute the rules. But this leaves just annotations with no implementation contract.
I don't really know were to go from this though.

Without Context the module cannot be used independently of the server code.

That's what I was trying to get at above. As things stand the Context is very much part of the implementation, but it's interface is key to writing rules (which take a Context argument). I had a go at the extraction and it wasn't as painful as I feared: https://github.com/roxspring/zally/commit/7327ae00659ba01c6c26ff89279b2f1b4a335cd3. I'm not totally convinced by the ReverseAstContext name but I don't have a better idea right now - lazy options like DefaultContext or ContextImpl don't seem very zallyish.

This raise an issue to me, the Context dependency is not clearly expressed with the @Rule and @Check annotations. I get it that reflection and @Check are used to execute the rules. But this leaves just annotations with no implementation contract.

Yes, this is a downside of the annotation approach. Previously there was a simple Rule interface with a clear contract defined by the validate(Swagger): Violation? method, but we wanted to move to a position where we have multiple validations (i.e. @Checks) within a single rule implementation. Annotations seemed the sensible way to achieve that. Note also that the Context class is still very young, most rules aren't even using it... yet... the transition is moving fast!
Neither this history nor current rule writing recommendations are clearly documented though. Guess we ought to track an issue for that.

I don't really know were to go from this though.

I think it'd be good to rename the subproject: zally-rule-api establishes a convention of subprojects matching the sub-package naming.
If you want to pull my commit (modified or not) into your PR then I'm fine with that.
If @maxim-tschumak is happy to take this PR as is, then I'm also happy to open a separate PR for the Context work.

I had exactly the same idea in mind with the extracting the interface (@roxspring's branch). I believe this is the right way to go.

I'm not totally convinced by the ReverseAstContext name

Please don't re-use the AST abbreviation - it is wrongly used in this context (we have to improve this eventually). DefaultContext or ContextImpl are perfectly fine names for the context implementation!

If @maxim-tschumak is happy to take this PR as is, then I'm also happy to open a separate PR for the Context work.

great! I'm happy :)

Oh, and given that the subproject is pure kotlin, perhaps we should move the source to src/main/kotlin/ rather than src/main/java/ - again happy to do it in a separate PR if preferred.

+1

@roxspring I picked your commit and went for DefaultContext instead of ReverseAstContext
Used rebase & push force to rename module to zally-rule-api and source directory to kotlin. Also rebase on master.

LGTM!
minor comment: please add \n on the end of the following files:

server/settings.gradle
server/zally-rule-api/settings.gradle
server/zally-rule-api/src/main/kotlin/de/zalando/zally/rule/api/Context.kt

:+1:

:+1:

@maxim-tschumak, @netme, others, any objections to this? I'm seeing it as a really good step forward towards modularization so would really like to see this merged but getting 2nd approvals seems difficult at the moment (holiday season??).
@beatkyo assuming no objections from above, are you able to resolve the conflict?

I like the idea. It's just gonna be interesting to sync (resolve conflicts) since we are actively working on the rules @maxim-tschumak and I at the moment.
Let us know when the conflicts are resolved. We'll try to merge it before new ones appear.

rebased done

:+1:

Sorry @beatkyo , it got out of sync again. @maxim-tschumak and I will try NOT merging today in this repo so you can fix it and we merge it. Sorry about this.

👍

:+1:

Finally, we did it ;) Let's back-merge in our branches now! 😱 ;)


Errors are stored per midpoint coordinate instead of per Triangle

I noticed that the errors are stored for each coordinate in the grid instead of per triangle.
https://github.com/mapbox/martini/blob/f0d6dcaeb656b4d256c0da5bfe53de9262c4a8f1/index.js#L60
https://github.com/mapbox/martini/blob/f0d6dcaeb656b4d256c0da5bfe53de9262c4a8f1/index.js#L80-L90
The paper suggests to calculate per triangle (Section 6: "... An initial preprocessing phase allocates to each triangle a measure of how accurately it approximates the surface - the triangles error"). I believe the reason is that storing per point creates an issue where triangle A and B may share a midpoint, but triangle A has a child with a greater error than any of triangle B's children.
If you are storing the maximum error of the children of triangle A at triangle A's midpoint, triangle B will also use that error value, even though they are in separate branches of the tree and do not share that maximum error child. Maybe this depends on the order of the iteration.
It may also be ok to store the midpoint errors on each point if they are true midpoint errors (not maximized based on the children), and then descend the tree to override with children in the getMesh call.
Apologies if I'm missing something, but I noticed because I'm trying to implement in rust and that caused a discrepancy when calculating error starting from a triangle and only checking its children vs starting from that same triangle's parent.

I believe the reason is that storing per point creates an issue where triangle A and B may share a midpoint, but triangle A has a child with a greater error than any of triangle B's children.

If the error is big enough to "split" triangle A into two triangles, then triangle B has to be split as well, otherwise there will be a discontinuity in the mesh with a vertical "gap" between the two halves. The algorithm is specifically designed to produce a conformal mesh — without gaps and t-junctions.

It may also be ok to store the midpoint errors on each point if they are true midpoint errors (not maximized based on the children), and then descend the tree to override with children in the getMesh call.

Aside from the gaps issue, this also defeats the purpose of the algorithm because you won't know when to "stop" descending and won't be able to get the mesh fast in linear time, without complex backtracking.


[Documentation/Slider] Add example showing how to access value of  component.

[x] PR has tests / docs demo, and is linted.
[x] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".
[x] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

Issue: It was not clear from the documentation how, exactly, to grab the value from the Slider component, as this was not mentioned on the component page.  As Standardization of Callback Signatures #2957 states, the way to handle this is onChange={(event, value) => /use 'value' here/} in most cases. I had erroneously tried (event) => event.target.value and (value) => value, and it caused me enough frustration that I felt that when I figured it out I should make a PR and add it to the docs.
The main thing that would have helped me, I think, was to have examples which clearly show how to get the value from the slider element and use it (usually in the component state).
I created a new file in /docs/src/app/components/pages/Slider/ExampleValue.js and amended /docs/src/app/components/pages/Slider/Page.js to include two examples, where moving the slider also alters the slider's value in the state, and re-renders it on the page.  As a bonus, I also amended Page.js to make it clear that you can assign values outside the range of 0 and 1 (such as 1-100) to "min" and "max" props.

Will withdraw and make changes to get Travis linter to pass.

@brianboyko Yes indeed, we need to standardize the callbacks of Material-UI.
I think that it's a good idea to add a controlled example here :+1: .
Notice that we could also document the callback parameters (https://github.com/callemall/material-ui/issues/3096).

I don't know if this is what you want (especially since I can't figure out how to work that handler without an arrow function) but here you go

Figured out what you meant, and learned something in the process!

Figured out what you meant, and learned something in the process!

I'm glad and thanks, this example is going to be helpful for others.
I have done just few comments, can you have a look at them?

Made those changes, have you checked?

@brianboyko Thanks. That looks good. Could you squash down the commits?

@brianboyko - When you squash, please also rewordthe commit description to match the current PR title. Thanks!

Squishied!

@brianboyko Thanks!


bot.utterances do not match when in a Spark conversation

While in a conversation with a spark bot, the pattern matching provided in the bot.utterances shortcut do not match successfully.

The message data looks like this:
{ original_message: 'CookieBot yes' }

It would be great if the ask pattern matching automatically ignored the bot mention in the message.

This should be fixed!

Thanks!


Upgrade gp-java-client to 1.1.6

Coverage remained the same at 50.889% when pulling afa8eef2055be1811f0a084f9c047a8fcf06e355 on yumaoka:java-client-1.1.6 into e0207245dc7777fef36bf1e1c3f39f82d924378e on IBM-Cloud:master.


Incorrect module path in unit-testing README

The path specified when requiring SuiteCloudJestConfiguration for the Additional Configuration example is missing the jest-configuration directory. Suggest fixing by either removing SuiteCloudJestConfiguration from the path or adding the jest-configuration directory in the path

@GRUBES Hello Eric,
Thank you so much for your feedback and identifying the error in the README.md. As we are not currently accepting public contributions for this project we will not be able to merge this PR. We will apply your fix, integrate it and publish patch version in NPM as soon as possible.
I think the correct path for require is:
@oracle/suitecloud-unit-testing/jest-configuration/SuiteCloudJestConfiguration
Please correct me if I am wrong

I believe that path is correct, yes; stopping at suitecloud-unit-testing will also work, but probably imports more than is necessary.
Always happy to help.

We will keep this PR open until this is fixed. Please submit an issue next time. Thanks!

Will do.
On Mon, Mar 30, 2020 at 10:26 AM Victor Nikulin<EMAIL_ADDRESS>wrote:

We will keep this PR open until this is fixed. Please submit an issue next
time. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/oracle/netsuite-suitecloud-sdk/pull/83#issuecomment-606102631,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABXQB6JZ3GAMBQBQ4PWBAG3RKDB3BANCNFSM4LVWVGWQ
.

Hello Eric, we have fixed the paths and republished new version in npmjs.com, closing this PR.


Fix transmute

Fixes #29
@rabarar could you try this out to see if it compiles for you now?

adding the mods, I get the following:
rt/src/rust/nrf/nrf-modem)
   Compiling nrf9160-rust-starter v0.1.0 (/Users/robert/src/rust/nrf/nrf91-2.0.1-test)
error[E0432]: unresolved import `nrf_modem::no_std_net`
  --> src/main.rs:10:17
   |
10 | use nrf_modem::{no_std_net::SocketAddr, ConnectionPreference, LteLink, SystemMode, TcpStream};
   |                 ^^^^^^^^^^ could not find `no_std_net` in `nrf_modem`

error[E0425]: cannot find function `application_irq_handler` in crate `nrf_modem`
  --> src/main.rs:33:20
   |
33 |         nrf_modem::application_irq_handler();
   |                    ^^^^^^^^^^^^^^^^^^^^^^^ not found in `nrf_modem`

warning: unused import: `core::str::FromStr`
 --> src/main.rs:5:5
  |
5 | use core::str::FromStr;
  |     ^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error: item does not constrain `Fut::{opaque#0}`, but has it in its signature
  --> src/main.rs:16:1
   |
16 | #[embassy_executor::main]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: consider moving the opaque type's declaration and defining uses into a separate module
note: this opaque type is in the signature
  --> src/main.rs:16:1
   |
16 | #[embassy_executor::main]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: this error originates in the attribute macro `::embassy_executor::task` (in Nightly builds, run with -Z macro-backtrace for more info)

I’m going to create a parallel environment on a ARM vm using ubuntu-24.10 server  … stay tuned …

On Dec 26, 2024, at 10:16 AM, Dion Dokter @.***> wrote:
Fixes #29 https://github.com/diondokter/nrf-modem/issues/29
@rabarar https://github.com/rabarar could you try this out to see if it compiles for you now?
You can view, comment on, or merge this pull request online at:
https://github.com/diondokter/nrf-modem/pull/30
Commit Summary
0579aa5 https://github.com/diondokter/nrf-modem/pull/30/commits/0579aa5030ae9740a2a5f7bf1599b3e99539a77a Fix transmute for mac?
12b6a51 https://github.com/diondokter/nrf-modem/pull/30/commits/12b6a51b995d1a86ea92c4c41b6a922f6a5a679b Run clippy and make rust analyzer happy
File Changes (6 files https://github.com/diondokter/nrf-modem/pull/30/files)
A .vscode/settings.json https://github.com/diondokter/nrf-modem/pull/30/files#diff-a5de3e5871ffcc383a2294845bd3df25d3eeff6c29ad46e3a396577c413bf357 (3)
M src/dtls_socket.rs https://github.com/diondokter/nrf-modem/pull/30/files#diff-43e2ee96fa29a791ab1d690e436643e0432c0a0c6a8bad0c8a7cbe1aeee1fb39 (4)
M src/gnss.rs https://github.com/diondokter/nrf-modem/pull/30/files#diff-ce388899a3e452078b3d77fb9ec84e0e43aa0589e7ef6a3a64448ce462dc96d7 (5)
M src/tcp_stream.rs https://github.com/diondokter/nrf-modem/pull/30/files#diff-4b41d352615c3f8b3772301f3e2d787e2aedeb7e4a4a9ff75c3ce702e422cc70 (4)
M src/tls_stream.rs https://github.com/diondokter/nrf-modem/pull/30/files#diff-14ccad38b6383f90d5524f496ac2a14a69515f33873600303c1a2807dc8592d9 (4)
M src/udp_socket.rs https://github.com/diondokter/nrf-modem/pull/30/files#diff-04fd78cd018e0fefd43db27811e4f1b30ac91cae5e61d89999b75d9e36354d59 (4)
Patch Links:
https://github.com/diondokter/nrf-modem/pull/30.patch
https://github.com/diondokter/nrf-modem/pull/30.diff
—
Reply to this email directly, view it on GitHub https://github.com/diondokter/nrf-modem/pull/30, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABB2J6FA4H5LJHZZQRQHPJ32HQMV7AVCNFSM6AAAAABUHLGSFGVHI2DSMVQWIX3LMV43ASLTON2WKOZSG42TSOBXHEYTANI.
You are receiving this because you were mentioned.

Linux build:
cargo +nightly -vV:
cargo 1.85.0-nightly (c86f4b3a1 2024-12-24)
release: 1.85.0-nightly
commit-hash: c86f4b3a1b153218e6e50861214b0b4b4e695f23
commit-date: 2024-12-24
host: aarch64-unknown-linux-gnu
libgit2: 1.8.1 (sys:0.19.0 vendored)
libcurl: 8.9.0-DEV (sys:0.4.74+curl-8.9.0 vendored ssl:OpenSSL/1.1.1w)
ssl: OpenSSL 1.1.1w  11 Sep 2023
os: Ubuntu 24.10.0 (oracular) [64-bit]

lsb_release -a:
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 24.10
Release:	24.10
Codename:	oracular

   Compiling nrf9160-rust-starter v0.1.0 (/home/robert/src/rust/nrf91-2.0.1-test)
error[E0432]: unresolved import `nrf_modem::no_std_net`
  --> src/main.rs:10:17
   |
10 | use nrf_modem::{no_std_net::SocketAddr, ConnectionPreference, LteLink, SystemMode, TcpStream};
   |                 ^^^^^^^^^^ could not find `no_std_net` in `nrf_modem`

error[E0425]: cannot find function `application_irq_handler` in crate `nrf_modem`
  --> src/main.rs:33:20
   |
33 |         nrf_modem::application_irq_handler();
   |                    ^^^^^^^^^^^^^^^^^^^^^^^ not found in `nrf_modem`

warning: unused import: `core::str::FromStr`
 --> src/main.rs:5:5
  |
5 | use core::str::FromStr;
  |     ^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error: item does not constrain `Fut::{opaque#0}`, but has it in its signature
  --> src/main.rs:16:1
   |
16 | #[embassy_executor::main]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: consider moving the opaque type's declaration and defining uses into a separate module
note: this opaque type is in the signature
  --> src/main.rs:16:1
   |
16 | #[embassy_executor::main]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: this error originates in the attribute macro `::embassy_executor::task` (in Nightly builds, run with -Z macro-backtrace for more info)

Some errors have detailed explanations: E0425, E0432.
For more information about an error, try `rustc --explain E0425`.
warning: `nrf9160-rust-starter` (bin "nrf9160-rust-starter") generated 1 warning
error: could not compile `nrf9160-rust-starter` (bin "nrf9160-rust-starter") due to 3 previous errors; 1 warning emitted

Ok, did another fix in this branch. Please update.
It seems you were running on an older version of nrf-modem.
If you go through the readme, you'll see the setup you need to do.
The no_std_net crate is no longer used in favor of the recently stabilized core::net module.
And the application irq doesn't exist anymore, so no need to set that up and call it.

I cloned the main branch to start, and then tested with your fix-transmuted branch - is there a different repo that’s newer?On Dec 26, 2024, at 4:37 PM, Dion Dokter @.***> wrote:
Ok, did another fix in this branch. Please update.
It seems you were running on an older version of nrf-modem.
If you go through the readme, you'll see the setup you need to do.
The no_std_net crate is no longer used in favor of the recently stabilized core::net module.
And the application irq doesn't exist anymore, so no need to set that up and call it.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

No, I mean your application. You were calling some old APIs that don't exist anymore in the currently released version. That's the source of your errors.

Oh - that was your repo - nrf91-2.0.1-test …On Dec 26, 2024, at 6:02 PM, Dion Dokter @.***> wrote:
No, I mean your application. You were calling some old APIs that don't exist anymore in the currently released version. That's the source of your errors.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Yeah, we talked about that. It was the most up-to-date example I had. But it's not very up-to-date. Your errors are easily fixed if you go through the readme and make sure your code matches what it does

“My” code ;) — got it … I’ll hack at it and submit a PR when I get it working!On Dec 26, 2024, at 6:23 PM, Dion Dokter @.***> wrote:
Yeah, we talked about that. It was the most up-to-date example I had. But it's not very up-to-date. Your errors are easily fixed if you go through the readme and make sure your code matches what it does
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

just to be clear, this still needs to use the +nightly, yes?

On Dec 26, 2024, at 10:16 AM, Dion Dokter @.***> wrote:
Fixes #29 https://github.com/diondokter/nrf-modem/issues/29
@rabarar https://github.com/rabarar could you try this out to see if it compiles for you now?
You can view, comment on, or merge this pull request online at:
https://github.com/diondokter/nrf-modem/pull/30
Commit Summary
0579aa5 https://github.com/diondokter/nrf-modem/pull/30/commits/0579aa5030ae9740a2a5f7bf1599b3e99539a77a Fix transmute for mac?
12b6a51 https://github.com/diondokter/nrf-modem/pull/30/commits/12b6a51b995d1a86ea92c4c41b6a922f6a5a679b Run clippy and make rust analyzer happy
File Changes (6 files https://github.com/diondokter/nrf-modem/pull/30/files)
A .vscode/settings.json https://github.com/diondokter/nrf-modem/pull/30/files#diff-a5de3e5871ffcc383a2294845bd3df25d3eeff6c29ad46e3a396577c413bf357 (3)
M src/dtls_socket.rs https://github.com/diondokter/nrf-modem/pull/30/files#diff-43e2ee96fa29a791ab1d690e436643e0432c0a0c6a8bad0c8a7cbe1aeee1fb39 (4)
M src/gnss.rs https://github.com/diondokter/nrf-modem/pull/30/files#diff-ce388899a3e452078b3d77fb9ec84e0e43aa0589e7ef6a3a64448ce462dc96d7 (5)
M src/tcp_stream.rs https://github.com/diondokter/nrf-modem/pull/30/files#diff-4b41d352615c3f8b3772301f3e2d787e2aedeb7e4a4a9ff75c3ce702e422cc70 (4)
M src/tls_stream.rs https://github.com/diondokter/nrf-modem/pull/30/files#diff-14ccad38b6383f90d5524f496ac2a14a69515f33873600303c1a2807dc8592d9 (4)
M src/udp_socket.rs https://github.com/diondokter/nrf-modem/pull/30/files#diff-04fd78cd018e0fefd43db27811e4f1b30ac91cae5e61d89999b75d9e36354d59 (4)
Patch Links:
https://github.com/diondokter/nrf-modem/pull/30.patch
https://github.com/diondokter/nrf-modem/pull/30.diff
—
Reply to this email directly, view it on GitHub https://github.com/diondokter/nrf-modem/pull/30, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABB2J6FA4H5LJHZZQRQHPJ32HQMV7AVCNFSM6AAAAABUHLGSFGVHI2DSMVQWIX3LMV43ASLTON2WKOZSG42TSOBXHEYTANI.
You are receiving this because you were mentioned.

The nrf-modem crate itself can be compiled with stable just fine

okay,
I’m down to the following error - and not sure why or how to resolve it. I’m going to fork the nrf91-2.0.1-test code so you can see  the main.rs
error: item does not constrain `Fut::{opaque#0}`, but has it in its signature
  --> src/main.rs:20:1
   |
20 | #[embassy_executor::main]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^ in this procedural macro expansion
   |
  ::: /home/robert/.cargo/git/checkouts/embassy-c08a80187403f815/4b30394/embassy-macros/src/lib.rs:41:1
   |
41 | pub fn task(args: TokenStream, item: TokenStream) -> TokenStream {
   | ---------------------------------------------------------------- in this expansion of `#[::embassy_executor::task]`
   |
   = note: consider moving the opaque type's declaration and defining uses into a separate module
note: this opaque type is in the signature
  --> src/main.rs:20:1
   |
20 | #[embassy_executor::main]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^

error: could not compile `nrf9160-rust-starter` (bin "nrf9160-rust-starter") due to 1 previous error

On Dec 26, 2024, at 7:13 PM, Dion Dokter @.***> wrote:
The nrf-modem crate itself can be compiled with stable just fine
—
Reply to this email directly, view it on GitHub https://github.com/diondokter/nrf-modem/pull/30#issuecomment-2563185726, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABB2J6D74F6AQ3KTTG34S4L2HSLUNAVCNFSM6AAAAABUHLGSFGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNRTGE4DKNZSGY.
You are receiving this because you were mentioned.

Ok, I updated the nrf91-2.0.1-test repo to the newest nrf-modem version on master

In the mean time, I was modifying your code to run in secure mode, and get everything compiled and flashed but get an assertion error on the nrf9120_pac for RAM > 32k the repo is https://github.com/rabarar/nrf91-2.0.1-test I believe I’ve followed the process your required - but perhaps I’ve misread or misunderstood something.

Not sure about that. There might a difference between the 60/61/51.

Also, I WANT TO THANK YOU for your kind feedback and assistance. Was a bit surprised by the response from the “gentleman” on matrix - not everyone’s willing to be helpful…

No problem, but I do want to stick up for Dario. He's done an incredible amount of work for the community and is generally very helpful. Beyond reasonable even. Not just for embassy, but for the greater embedded Rust ecosystem too.
I'm gonna be blunt and say your question was kinda bad. When you're asking for someone else's time, you should spend time on your question yourself too.
Examples of things you could've done:

Give a link to the code in question so people looking at it don't have to look it up: https://github.com/embassy-rs/embassy/blob/main/embassy-net-nrf91/src/context.rs#L87
When posting a code snippet, post is as code with the triple backticks: ```rust code ```
Show you've looked into it yourself: You just stated in hangs without any other info. You could've asked something like 'wait_init never finishes. It doesn't seem like it, but do I need to do some initialization myself first that I've missed?'.
It shows you're critically thinking about the problem and is a much more specific question. There are so many people who don't do anything themselves and want to depend on others to give all the answers.  Those people are not fun to help. You should make other people want to answer your questions.

If you take these tips to heart, I'm sure you'll be more successful in getting your questions answered.

Released 0.6.1 with these changes

points taken - nonetheless, I respectfully disagree. I've certainly not asked anyone to "do my work" as evidenced by the repo I've forked/modified/etc...
having been in the community for over 40 years - I've come to understand some people are more thoughtful/helpful than others. No one owes anyone anything - but assistance especially at the inception of a new ecosystems  goes a long way to creating a community of inclusion... just sayin'


Draft 17 header protection and key derivation

Fixes #93

Fixes #93

This currently nukes the PNE/header crypto test vector unit tests for lack of a convenient updated set of test vectors. If I can't find a set from another implementer I'll just generate some new ones manually.

I haven't been able to find a set of test vectors for header protection that I trust, so I added a basic self-test to fill in the gap in the mean time. No other outstanding issues that I know of.


apt/yum/brew installation support

apt/yum/brew installation support

NPM is nodeJS package manager, golang is not available

@jinfahua
I think this issue needs to be resolved before making the rpm/deb installation package,  In addition, kuiper needs to support the absolute path to make the installation package

Why need to rename the file name to support the feature? @zhanghongtong

Already supported since v0.9.0, so close