[BUG]  Timeref Problem

Bug description:
Hi , when i use timeref to auto update TOT & TDT tables i had a problem . After some time it go out of sync , and after 3 days the time on tables there is 3~4 minutes  of real clock (example 15:25 when UTC is 15:28) aand i have problem whit EPG generated by an external script . Any Suggestion or there is a way to sync time every time interval ?
I'm using a Rockchip Board whit Armbian (Ubuntu)

Hi @Sicand
Please be specific. If you want to enter a bug report, please use the "Bug Report" template after clicking on "New Issue". Please provide the exact tsp command, the context (offline processing, real time stream), the type of stream, the TSDuck version, the operating system.
It is virtually impossible to diagnose an issue with so few details.

Bug description:
Hi , when i use timeref to auto update TOT & TDT tables i had a problem .
Output realtime whit hides
Expected behavior:
An auto correct time after some hour
Errors and logs:
None
[be sure to surround verbatim log lines with "~~~" lines]

Environment:

OS:
OS version: <Ubuntu 20.10 ARM64>
TSDuck full version: <!.24-2086>
Installation type: <build from source -->

Additional information:
Now i updated to 3.27-2399 and reduced tdt/tot bitrate to test if it correct the problem

Thanks for the details. Currently, the timeref plugin and most other TSDuck plugins are designed to work on live streams and offline files indifferently. The only time reference for the stream is based on the number of packets and nominal bitrates. For offline files, this is the only reasonable reference. For live streams, it is fine for all test activities. But for 24x7 production, small imprecisions accumulate over days. This is probably what you are experimenting.
With version 3.26, all computations on bitrates are done on fixed-point types (one decimal) over a 64-bit representation. The precision is better. So, you should see some improvements with version 3.26 and higher.
That being said, I see that you are using this plugin as a permanent time generator over a template XML representation of the TOT and TDT. For those usages, I should probably add a specific option. I will consider this.

Thanks for your fast reply . Now i have this annoying  problem . Whit last version after some minutes all stop whit this error .
"tsp: dtv/codec/tsAccessUnitIterator.cpp:133: bool ts::AccessUnitIterator::next(): Assertion `_nalunit < _data + _data_size' failed."

Could you extract a piece of TS reproducing this?

No problem but send it tomorrow .
Il sab 29 mag 2021, 00:07 Thierry Lelegard @.***> ha
scritto:

Could you extract a piece of TS reproducing this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tsduck/tsduck/issues/797#issuecomment-850698113, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AUIK4HBE7WQ4A6SH7XXLOXDTQAHYJANCNFSM45WZBZSQ
.

This is the test file ; the end of file is the moment when tsduck stop.
https://drive.google.com/file/d/1s2kuMLV_3779eSKd9gaNFsY9BpUD2bjN/view?usp=sharing

Could you indicate which command makes tsp crash using that input file?
I tried various combinations of plugins without a crash and I do not have the environment to reproduce your large command with many merged sources. I need some reproducible tsp command which crashes, using that test file.
My tests are done on a Mac with an Intel CPU, compiled using clang 12.0.5. You mentioned you used an Arm board. Is this a 64 or 32-bit distro and with which version of gcc? The only Arm environment I can use is a Raspberry Pi using a 32-bit Raspbian distro using gcc 8.3.0.

I'm trying to reproduce the error but it is random . Before the update i launch the command posted , and the other 2 input separately for a mpeg2 and H264 preencoded file in sequence whitout problem . Now i'm trying disabling one of the 2 service (mpeg2) and it go normaly . When launch this after some minutes it go off . I will post command later.

Hi @Sicand,
Given the randomness of the error, I tried another approach, finding in which conditions the assertion shall fail. In fact, the assert was a bit too strict (< instead of <=) but it was never triggered so far. I tried to understand which conditions should be met to trigger the failure.
In theory, the failure occurs in case of a truncated NALunit in an AVC/HEVC/VVC stream when the truncation occurs right after a start code prefix 00 00 01. Using the plugin craft, I recreated such a packet (see test-097 in the test suite) and I got the same assertion failure.
So, the only hypothesis I can find is that your streams occasionally have such truncated NALunits.
I have fixed the assertion. You may pull and rebuild. Please let us know if the problem disappears.

And BTW I added an option --system-synchronous in the timeref plugin so that the TOT and TDT remain synchronous with the system time (applicable to live streams only, of course, not offline file processing).

Many thanks for the solution and your creation , and for the added option , very glad for this . Compiled on I3 ,started and whit new option and all services active no problem for 40 minutes in waiting for compile end on Arm64 board for testing there .
_

So, the only hypothesis I can find is that your streams occasionally have such truncated NALunits.

_
I think yes becouse there are a lot of pre encoded andf think cutted file randomly put on service in sequence and some in infinty loop .

All returned perfectly now , thanks.
A question , analizing the muxed ts whit TSreader in the h264 e 265 services it report a bitrate too large for the value input. 1..95Mbit instead of 0.9Mbit & 3,85 instead of 0.4 . Is that a problem of muxer ?

A question , analizing the muxed ts whit TSreader in the h264 e 265 services it report a bitrate too large for the value input. 1..95Mbit instead of 0.9Mbit & 3,85 instead of 0.4 . Is that a problem of muxer ?

The merge plugin merges packets as they come. The plugin cannot "invent" new packets. So, either the problem comes from the merge source (higher than what you expect) or the way TSReader evaluates the bitrate of the various elementary streams. The merge plugin is rather a merger than a muxer (this has been debated many times here). Depending on options and stability of the input source, the merge can be not very smooth, alternating bursts and quieter periods. This may influence the way TSReader evaluates the bitrate. Does it report an average bitrate, a burst / maximum bitrate, over which time granularity?

Hi @Sicand ,
Only to know it: You say that you're using an external script to generate the EPG data. Can you share this script? It will be very interesting if the TSDuck tool can inject EPG data from XMLTV or similar sources (in fact because a lot of opensource tools exist to work with this format). Futhermore, I'm still waiting for a plugin to generate the p/f data from the schedule EPG (see #727).

Before using tsduck i used opencaster and created some basic bash & python
script (ffmpeg for clip duration) for on-air/next music video and same for
a other channel with parental control ; when i find your TS-duck and tested
the more stability i adopted It instead of opencaster and adapted epg part
. No problem to share the scripts , but i have to clean the code

For tsreader "problem" i explain Better later ; Only the nominal value Is
wrong for AVC and Hevc (no problem for MPEG2) , the real bitrate Is
correct. Try the recorded TS on tsreader


Only to build target platform for cross-compilation by providing goos and goarch.

add new -p or --platform which helps to build target platform for cross-compilation (e.g., linux-amd64, darwin-amd64)"
cc @dsimansk

/approve
/lgtm

/cherry-pick release-v1.10
/cherry-pick release-v1.11

/cherry-pick release-v1.11


Create Unit and Integration Tests for mesheryctl exp relationships Command

Description
We need to develop comprehensive unit and integration tests for the mesheryctl exp relationships command. This command is responsible for listing, viewing, and searching MeshModel relationships, as well as generating relationship documents.
The goal is to ensure the correctness of the core functionalities, error handling, and interaction with the Meshery server.
Current Behavior
Currently, there are no automated tests covering the mesheryctl exp relationships command, which includes:
[] Listing relationships (mesheryctl exp relationships list)

Viewing details of a specific relationship (mesheryctl exp relationships view)
Searching for relationships (mesheryctl exp relationships search)
Handling interaction with the Meshery server and command prerequisites (e.g., server running, version validation).

Desired Behavior
Tests should cover the following aspects:

Unit Tests:

Model Prompt Selection: Verify that the selectRelationshipPrompt function correctly displays and returns a relationship when multiple options are available.
Argument Validation: Ensure that missing or invalid arguments (e.g., invalid model names) trigger the appropriate error messages.
Subcommand Handling: Verify that invalid subcommands trigger the appropriate error messages.

2 Integration Tests:

Server Interaction: Mock the Meshery server and verify that the command correctly interacts with it, including:

Validating that the server is running.
Handling failed connections or invalid credentials.
Properly fetching and displaying relationships data.

Data Retrieval and Display: Ensure that relationships data is correctly retrieved, parsed, and displayed in both JSON and YAML formats.

Error Handling:

Handle cases where the Meshery server is unavailable.
Handle invalid or missing credentials.
Handle improper arguments or subcommands.

Checklist:

[ ] Listing relationships (mesheryctl exp relationships list)
[ ] Viewing details of a specific relationship (mesheryctl exp relationships view)
[ ] Searching for relationships (mesheryctl exp relationships search)
[ ] Handling interaction with the Meshery server and command prerequisites (e.g., server running, version validation).

Implementation

Use mock APIs to simulate interaction with the Meshery server and return test data for relationships.
Use existing testing frameworks and patterns for mesheryctl.
Follow Meshery's contribution guidelines for writing tests.

Resources

The file to be tested: mesheryctl/internal/cli/root/exp/relationships.go
mesheryctl Contributing Guide
Beginner's guide to contributing to Meshery and mesheryctl

Contributor Resources

⌨ mesheryctl Contributing Guide
Beginner's guide to contributing to Meshery and mesheryctl
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

can I work on this issue @Aijeyomah

@Deathnote45, awesome! @Aijeyomah, will you be breaking this down into smaller, child issues so that multiple contributors can work on these?

@Deathnote45, awesome! @Aijeyomah, will you be breaking this down into smaller, child issues so that multiple contributors can work on these?

yes please

@Aijeyomah @leecalcote , may I give this a try?

@thesujai what is current status for this issue, have already started working on it ?

Yes I am working on it. Will raise a PR by tomorrow. Thank you

Since this issue has been inactive for 2 weeks, can this be assigned to me?
@leecalcote @vishalvivekm

@thesujai, any progress to report?

Yes am working on it, I have opened a discussion for this as well where I was blocked by somethings.
Still if someone wants to work on this please do submit a PR, my blocker should not block you to contribute:)


Upgrade Apache Commons Collections to v3.2.2

Version 3.2.1 has a CVSS 10.0 vulnerability. That's the worst kind of
vulnerability that exists. By merely existing on the classpath, this
library causes the Java serialization parser for the entire JVM process
to go from being a state machine to a turing machine. A turing machine
with an exec() function!
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8103
https://commons.apache.org/proper/commons-collections/security-reports.html
http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/

Thank you, wasn't aware of that - luckily it was only included in the examples! But it might have caused other people to use it in production.


Get Rayyan python SDK working in python via RStudio

https://github.com/rayyansys/rayyan-python-sdk/blob/master/rayyan-api.ipynb

Done successfully


Add a new button to go back in the survey-text plugin

Hi everyone! I hope you're doing well.
I'm conducting an experiment in which I'm trying to measure whether participants remember any of the situations presented on the previous pages of the experiment. For this reason, I want to generate a new button in the survey-text plugin so that participants have the option to choose which previous page of the experiment they want to go back to, if they spontaneously remember any situation. Is it possible to do this?
Thank you in advance for your help!
Regards.

*I'm updating information about the previous message.
I managed to create a new button in the survey-text plugin, but the issue is that now the experiment resets when clicking on any of the buttons. I'm copying the code below to see if anyone can detect the problem:

It's not a bad idea to have multiple pages on survey-text, but that's not a particular thing jspsych is optimised for - the instructions plugin is the exception.
The way I would approach this problem is either:

copy the design of the instructions plugin and modify the survey text accordingly. There might be serious problems with this as managing multiple pages/responses might start to get tricky, but definitely doable
play with timelines. Put all of your text to display in an instructions trial, which can handle multiple pages out of the box, and then add the instructions timeline and the single-page survey text trial in a looping timeline that repeats and only ends looping once "next" is clicked on the survey-text trial... Here you can also other other conditional nested timelines for even more control. Gets tricky managing this if you want to have a super-duper sophisticated user experience but is better handled by jspsych, I think.

The survey plugin has built in support for forward/backward buttons. I don't think that's quite what you are looking for, but in case it is helpful I thought I'd mention it.


[TS migration] Migrate 'EmojiPickerAction.js' lib to TypeScript

Details
Migration of EmojiPickerAction.js to Typescript.
Fixed Issues
$ https://github.com/Expensify/App/issues/24798
PROPOSAL: N/A
Tests

[x] Verify that no errors appear in the JS console
[x] Verify that EmojiPicker is working correctly

Offline tests
N/A
QA Steps
N/A
PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/46095609/ec4b4093-4bc1-4290-a736-1579d62e083f

Mobile Web - Chrome
https://github.com/Expensify/App/assets/46095609/ac5593bb-ba8a-4853-97bb-25a0cc719f41

Mobile Web - Safari
https://github.com/Expensify/App/assets/46095609/0246b79c-8cbb-49ba-892a-9543c8e26c1d

Desktop
https://github.com/Expensify/App/assets/46095609/f83ce121-8154-4ef0-92ee-11ff44925e93

iOS
https://github.com/Expensify/App/assets/46095609/e604546c-8709-425f-a33e-2460e3908253

Android
https://github.com/Expensify/App/assets/46095609/e4a8b868-d5cb-487e-87cd-17f7883baf34

@fabioh8010 @hayata-suenaga Ready for your review!

I'll wait for the checklist to be completed before I do review 🙇

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/20051562/7f8327f4-ef26-4149-ad5f-e124da7bb6bb
https://github.com/Expensify/App/assets/20051562/a5fa29e9-362f-4330-acee-2622208e5474

Desktop
https://github.com/Expensify/App/assets/20051562/e01e4d85-fb5b-4fc2-826f-e90bb19d2e8e

Mobile Web - Chrome
https://github.com/Expensify/App/assets/20051562/de0b70c7-7c28-4022-93e9-dd5a2b2364e4

Android
https://github.com/Expensify/App/assets/20051562/95749bb4-20fd-430c-925b-a9ff833729d9

Mobile Web - Safari
https://github.com/Expensify/App/assets/20051562/3f47cbd6-4b3c-4488-8a67-665d2c08b0b3

iOS
https://github.com/Expensify/App/assets/20051562/98ecca2f-24c8-46e6-aa7a-085b53a8465a

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/hayata-suenaga in version: 1.3.75-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.75-12 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/hayata-suenaga in version: 1.3.76-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.76-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Adding a "caution" box to the integration API reference

I run into an issue with the integration API today.
When you import lib functions within an custom integration which itself use the env variables as described here the env vars will be undefined.
aFuzzyBear on the official Discord looked into this and there is a proper way also make them available in the config script.
But at first glance it may not be obvious.
Possible solution:
I am happily create an PR with a little "caution" box to hint to this behaviour and show the possible workaround aFuzzyBear provided to make env vars available also in the astro.config.mjs file.
The example code by FuzzyBear, i would try to make it a little more generic and less about the code we tested it with :
import { defineConfig } from 'astro/config';
import { test } from './src/lib/test';
import { loadEnv } from 'vite';

const key = loadEnv('', process.cwd(), 'HELLO_WORLD');
// https://astro.build/config
export default defineConfig({
  integrations: [
    {
      name: 'test:id',
      hooks: {
        'astro:build:done': async ({ dir, routes }) => {
          const testVAR = await test();
          console.log('TESTVAR', testVAR);
          console.log(key);
        },
      },
    },
  ],
});

Affected page:
https://docs.astro.build/en/reference/integrations-reference/

This has more directly to do with configuration files than with integrations - we'd want to add this example to this section and link it from the integrations page.


Functions should say in their docs what intrinsics / assembly they implement

Right now you need the source files open to get intrinsic names, and then you'd also need to go to the intel intrinsics guide to see what the actual assembly instruction of the intrinsic is.
We can do better.
Proposed format:
/// short description.
///
/// extra details, if any
/// ```
/// doc test example
/// ```
/// * **Intrinsic:** [`name`]
/// * **Assembly:** `op arg, arg, arg`

Remember that the first line of the docs shows up in the function's summary when listing the functions of an entire module, so we want that to be short and sweet, and then everything past that first line can be various levels of info dump about what's going on.
Contribution Guidelines: If you want to try your hand at this, pick a small module with 10 or less functions (such as adx or bmi1) and do it for just that one small module. Then we can see if it's a comfortable format to look at and so on.

I've marked this as "good first issue". I don't think that a contributor would solve this all in a single PR, but doing this for a module at a time would be an appropriate PR.

Small update: if we put the intrinsic function name in square brackets with backticks (updated in the above) then we'll get intra-doc links to the core::arch function. Might as well.

Oof, we got a mild problem @joshtriplett, rustdoc search doesn't search the body of docs, only names, params, and return types.
So if you say in a function's docs
/// * **Intrinsic:** [`_mm256_broadcastsi128_si256`]
/// * **Assembly:** `vbroadcasti128 ymm, m128`

A search for "vbroadcasti128" and "_mm256_broadcastsi128_si256" would both turn up nothing at all.

On Fri, May 15, 2020 at 02:45:34PM -0700, Lokathor wrote:

Oof, we got a mild problem @joshtriplett, rustdoc search doesn't search the body of docs, only names, params, and return types.
So if you say in a function's docs
/// * **Intrinsic:** [`_mm256_broadcastsi128_si256`]
/// * **Assembly:** `vbroadcasti128 ymm, m128`

A search for "vbroadcasti128" and "_mm256_broadcastsi128_si256" would both turn up nothing at all.

That's unfortunate (and I hope we can at some point add a "full
documentation" tab to the rustdoc search), but I think there's still a
great deal of value in adding this, to help people cross-reference and
understand.

Yeah I'll continue to slowly add the info as I go and hope for rustdoc search functionality to catch up some day.

I just found out about this rustdoc feature which might come in handy here: https://doc.rust-lang.org/rustdoc/write-documentation/the-doc-attribute.html#alias


Errors not shown inline when using keyboard only

From @atombender on October 13, 2016 5:2
On linter/build errors, the "Problems" panel is populated, and if you mouse over the error location there's a box shown after a delay. But there's no inline error shown when you have the cursor on the line where the error occurs. Compare VSCode:

And Atom with the go-plus plugin:

For me, Atom is a lot better here. I don't want to shift my focus to the "Problems" panel every time there's an error, and using the mouse isn't how I work in an editor.
Interestingly, the "go to next marker" keyboard shortcut (F8 by default) does trigger an inline error description. But only then:

(That particular behaviour is a bit visually unsettling as it actually inserts a line in the editor, rather than showing a floating tooltip. Inserting lines immediately on error would be fine, but it removes the line when you jump to the next error. It also doesn't go away if you fix the error.)
Copied from original issue: Microsoft/vscode-go#527

Thanks for reporting this @atombender! This is a VS Code specific issue, I can see the same while coding in typescript too. Will move this issue to the VS Code repo

@ramya-rao-a please try to assign issues to owners in our repo. If you are not sure who is the owner the easiest heuristic is to look into file history for a specific file that seems related to he problem :)

This is about showing the hover when navigating with keys, right @atombender?

@jrieken Yes.

Closing as designed / will not tackle.
Our approach for errors accessibilty is via F8 / shift + F8 for the Go to Next Problem and Go to Previosu Problem.
An alternative apporach is to show hover for the location you are at. You can do that via cmd + k / cmd + i. Or F1 > show hover


Is there a way to overwrite the basePath?

My bull-board path is defined inside a custom basePath, but when I load the dashboard it fails because it removes my custom basePath

@vcapretz

The same here.
It cannot find static/bundle.js on the right path. It returns 404.

I got it.
Actually, proxyUrl is exactly for customization. You could set it into your req, as suggested here:
https://github.com/vcapretz/bull-board/blob/master/CHANGELOG.md#added-2
So, I did it:
const { UI } = require('bull-board')

app.use('/admin/queues', (req, res, next) => {
    req.proxyUrl = /context/admin/queues';
    next();
}, UI)


feat: emit an event when filtered rows change

Description
Our org needs to be able to display an updated results count when filtering happens. This solves that problem by emitting an event when the filteredRows are set
Fixes # (none)
Type of change

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?

[x] Used dev/App.vue to console log event params

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

@xaksis How best can I update any documentation for this feature? The html blob looks almost like it was generated. Should I be adding some tests?

hey @fleetofthemalden could you help me understand why we need this event? Ideally, we should only emit events for user invoked interactions. We might be changing the rows for internal reasons (think internal rowIds, etc) where an external event might be undesirable.
Are their any table events missing that this is taking care of?

Thanks for the prompt response!

hey @fleetofthemalden, could you help me understand why we need this event? Ideally, we should only emit events for user invoked interactions. We might be changing the rows for internal reasons (think internal rowIds, etc) where an external event might be undesirable.
Are there any table events missing that this is taking care of?

That's a fair point. My initial idea was just to add a filteredResultsCount or filteredRowsCount param to the onColumnFilter event. Because all I need is to be able to do is update our results count in a different component when filtering occurs. I ended up going this route because I thought there may be wider appeal to other devs beyond my narrow use-case. I was thinking of it as analogous to an onChange event.
If adding the count (or the rows themselves) to the onColumnFilter is a better route, I'm perfectly happy to do that. But that will involve moving a few code blocks around.
Let me know what's the best way to proceed

@fleetofthemalden you can get the filteredRows at any time by putting a ref on the table:
<vue-good-table
  ref="myTable"
  @on-column-filter="onColumnFIlterHandler"
  ...
</vue-good-table>

// later in your handler
methods: {
  onColumnFilterHandler(params) {
    const filteredRows = this.$refs.myTable.filteredRows.map(row => row.children);
    const filteredRowCount = filteredRows.length;
  }
}

yeah that works too. I'm slightly anti-ref just because it invites state mutation, but if this feature isn't wanted, I can close this out. Thanks again!


Why crop the aligned images？

The bbox.txt contain the crop size of the new image. But it‘s similar to the original image size, I don't understand the crop operator's meaning.

Align photos from the same camera but taken in different seasons.


Cannot debug with workbench.html on a Windows 10 client

Category

[ ] Question
[ ] Typo
[x] Bug
[ ] Additional article idea

Expected or Desired Behavior
Trying to debug a webpart with SPFx for SharePoint 2016 Feature Pack 2 on a workbench.
Observed Behavior
Expecting to get the workbench loaded but getting in Chrome "ERR_CONNECTION_RESET" when requesting https://localhost:5432/workbench and "Cannot GET /temp/workbench.html" when requesting https://localhost:4321/temp/workbench.html.
gulp serve gives the following output:
gulp serve
Build target: DEBUG
[23:18:04] Using gulpfile D:\Programming\Projects\sharepoint\helloworld\gulpfile.js
[23:18:04] Starting gulp
[23:18:04] Starting 'serve'...
[23:18:04] Starting subtask 'configure-sp-build-rig'...
[23:18:04] Finished subtask 'configure-sp-build-rig' after 6.3 ms
[23:18:04] Starting subtask 'spfx-serve'...
[23:18:05] Starting server...
Starting api server on port 5432.
Registring api: /workbench
Registring api: /
[23:18:05] Finished subtask 'spfx-serve' after 490 ms
[23:18:05] Starting subtask 'pre-copy'...
[23:18:05] Finished subtask 'pre-copy' after 14 ms
[23:18:05] Starting subtask 'copy-static-assets'...
[23:18:05] Starting subtask 'sass'...
[23:18:06] Server started https://localhost:4321
[23:18:06] LiveReload started on port 35729
[23:18:06] Running server
[23:18:06] Opening https://localhost:5432/workbench using the default OS app
[23:18:07] Finished subtask 'sass' after 1.65 s
[23:18:07] Starting subtask 'tslint'...
[23:18:08] Starting subtask 'typescript'...
[23:18:08] [typescript] TypeScript version: 2.4.2
[23:18:08] Finished subtask 'copy-static-assets' after 3.02 s
Warning: no-duplicate-case rule is deprecated. Replace your usage with the TSLint no-duplicate-switch-case rule.
Warning: valid-typeof rule is deprecated. Replace your usage with the TSLint typeof-compare rule.
[23:18:09] Finished subtask 'tslint' after 2.54 s
[23:18:09] Finished subtask 'typescript' after 1.31 s
[23:18:09] Starting subtask 'ts-npm-lint'...
[23:18:09] Finished subtask 'ts-npm-lint' after 27 ms
[23:18:09] Starting subtask 'api-extractor'...
[23:18:09] Finished subtask 'api-extractor' after 971 μs
[23:18:09] Starting subtask 'post-copy'...
[23:18:09] Finished subtask 'post-copy' after 945 μs
[23:18:09] Starting subtask 'collectLocalizedResources'...
[23:18:09] Finished subtask 'collectLocalizedResources' after 27 ms
[23:18:09] Starting subtask 'configure-webpack'...
[23:18:10] Finished subtask 'configure-webpack' after 1.23 s
[23:18:10] Starting subtask 'webpack'...
[23:18:12] Finished subtask 'webpack' after 1.31 s
[23:18:12] Starting subtask 'configure-webpack-external-bundling'...
[23:18:12] Finished subtask 'configure-webpack-external-bundling' after 826 μs
[23:18:12] Starting subtask 'copy-assets'...
[23:18:12] Finished subtask 'copy-assets' after 14 ms
[23:18:12] Starting subtask 'write-manifests'...
[23:18:13] Finished subtask 'write-manifests' after 1.13 s
[23:18:13] Starting subtask 'reload'...
[23:18:13] Finished subtask 'reload' after 2.92 ms
Request: '/temp/workbench.html'
I noticed that workbench.html is missing from the temp folder:

Steps to Reproduce
Similar behaviour to other browsers, Firefox, Edge. Neither disabling https in serve.json help, nor disabling the firewall on the Windows 10 client.
I run the exact same process on my SharePoint 2016 Test-Server (Windows Server 2016) and workbench loads without a problem.
Submission Guidelines
the dev cert is trusted
all modules are up to date
already did an update/deleted node_modules/install
Windows 10 enviroment
Thank you very much in advance!

What version of Node.js are you using? (you can check that by running node -v in the command line)

@AsishP I reinstalled @microsoft/gulp-core-build-serve package and retrusted the dev-certificate as suggested in the link but it made no difference. Yeoman version is 2.0.4.
@waldekmastykarz the version of node.js is v8.11.3. I had tried also using v6 but the outcome was the same.
I find very strange that workbench.html does not exist in the temp folder.
Thanx both of you for the replies!

Definitely strange that the workbench.html isn't being created.

What are the contents of your package.json?
If you try navigating to something that does exist, e.g. https://localhost:4321/temp/manifests.js is that file being served?
Can you send the contents of gulp serve --verbose ?

Hey @nickpape-msft thank you for your reply!
- What are the contents of your package.json?
{
"name": "helloworld",
"version": "0.0.1",
"private": true,
"engines": {
"node": ">=0.10.0"
},
"scripts": {
"build": "gulp bundle",
"clean": "gulp clean",
"test": "gulp test"
},
"dependencies": {
"@microsoft/sp-core-library": "1.5.1",
"@microsoft/sp-webpart-base": "1.5.1",
"@microsoft/sp-lodash-subset": "1.5.1",
"@microsoft/sp-office-ui-fabric-core": "1.5.1",
"@types/webpack-env": "1.13.1",
"@types/es6-promise": "0.0.33"
},
"devDependencies": {
"@microsoft/sp-build-web": "1.5.1",
"@microsoft/sp-module-interfaces": "1.5.1",
"@microsoft/sp-webpart-workbench": "1.5.1",
"gulp": "~3.9.1",
"@types/chai": "3.4.34",
"@types/mocha": "2.2.38",
"ajv": "~5.2.2"
}
}
- If you try navigating to something that does exist, e.g. https://localhost:4321/temp/manifests.js is that file being served?
manifests.js is being served alright.
- Can you send the contents of gulp serve --verbose ?
Here is serve with verbose. It seems it cannot find manifests.json.
PS D:\Programming\Projects\sharepoint\helloworld> gulp serve --verbose
Build target: DEBUG
Found config file: tslint.json
Found config file: copy-assets.json
Found config file: write-manifests.json
Found config file: serve.json
Found config file: deploy-azure-storage.json
Found config file: package-solution.json
[00:11:35] Using gulpfile D:\Programming\Projects\sharepoint\helloworld\gulpfile.js
[00:11:35] Starting gulp
[00:11:35] Starting 'serve'...
[00:11:35] Starting subtask 'configure-sp-build-rig'...
[00:11:35] [configure-sp-build-rig] Found config file: config.json
[00:11:35] Finished subtask 'configure-sp-build-rig' after 5.37 ms
[00:11:35] Starting subtask 'spfx-serve'...
[00:11:35] Starting server...
Starting api server on port 5432.
Registring api: /workbench
Registring api: /
[00:11:36] Finished subtask 'spfx-serve' after 487 ms
[00:11:36] Starting subtask 'pre-copy'...
[00:11:36] Finished subtask 'pre-copy' after 23 ms
[00:11:36] Starting subtask 'copy-static-assets'...
[00:11:36] Starting subtask 'sass'...
[00:11:37] Server started https://localhost:4321
[00:11:37] LiveReload started on port 35729
[00:11:37] Running server
[00:11:37] Opening https://localhost:5432/workbench using the default OS app
[00:11:37] Finished subtask 'sass' after 1.47 s
[00:11:37] Starting subtask 'tslint'...
[00:11:39] Starting subtask 'typescript'...
[00:11:39] [typescript] TypeScript version: 2.4.2
[00:11:39] Finished subtask 'copy-static-assets' after 3.21 s
[00:11:39] [tslint] D:\Programming\Projects\sharepoint\helloworld\src\webparts\helloWorld\HelloWorldWebPart.module.scss.ts
Warning: no-duplicate-case rule is deprecated. Replace your usage with the TSLint no-duplicate-switch-case rule.
Warning: valid-typeof rule is deprecated. Replace your usage with the TSLint typeof-compare rule.
[00:11:39] [tslint] D:\Programming\Projects\sharepoint\helloworld\src\webparts\helloWorld\HelloWorldWebPart.ts
[00:11:40] [tslint] D:\Programming\Projects\sharepoint\helloworld\src\webparts\helloWorld\loc\mystrings.d.ts
[00:11:40] Finished subtask 'tslint' after 2.95 s
[00:11:40] Finished subtask 'typescript' after 1.45 s
[00:11:40] Starting subtask 'ts-npm-lint'...
[00:11:40] Finished subtask 'ts-npm-lint' after 12 ms
[00:11:40] Starting subtask 'api-extractor'...
[00:11:40] Finished subtask 'api-extractor' after 1.39 ms
[00:11:40] Starting subtask 'post-copy'...
[00:11:40] Finished subtask 'post-copy' after 2.13 ms
[00:11:40] Starting subtask 'collectLocalizedResources'...
[00:11:40] [collectLocalizedResources] 1 localized resources defined.
[00:11:40] [collectLocalizedResources] Found file "lib/webparts/helloWorld/loc/en-us.js", identified as locale "en-us"
[00:11:40] Finished subtask 'collectLocalizedResources' after 13 ms
[00:11:40] Starting subtask 'configure-webpack'...
[00:11:41] [configure-webpack] 1 entries specified.
[00:11:41] [configure-webpack] 20 externals specified.
[00:11:41] [configure-webpack] 1 localized resources specified.
[00:11:41] Finished subtask 'configure-webpack' after 1.09 s
[00:11:41] Starting subtask 'webpack'...
[00:11:42] Finished subtask 'webpack' after 943 ms
[00:11:42] Starting subtask 'configure-webpack-external-bundling'...
[00:11:42] [configure-webpack-external-bundling] No localized resources specified, nothing to do.
[00:11:42] Finished subtask 'configure-webpack-external-bundling' after 1.28 ms
[00:11:42] Starting subtask 'copy-assets'...
[00:11:42] Finished subtask 'copy-assets' after 21 ms
[00:11:42] Starting subtask 'write-manifests'...
[00:11:42] [write-manifests] Using debug locale: en-US
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-core-library". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-lodash-subset". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\lodash". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\webpack-env". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\tslib". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\node-core-library". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\gulp". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-module-interfaces". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\es6-promise". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\chai". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\mocha". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\chai". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-webpart-base". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\decorators". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\load-themed-styles". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\office-ui-fabric-react-bundle". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\react". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@uifabric\icons". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\office-ui-fabric-react". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\react". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\react-dom". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-component-base". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-diagnostics". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-dynamic-data". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-loader". We'll try to get each manifest separately
[00:11:42] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-http". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\adal". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\sinon". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\adal-angular". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-odata-types". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-page-context". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-polyfills". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\es6-collections". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\es6-promise". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-polyfills\node_modules\whatwg-fetch". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\whatwg-url". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-build-core-tasks". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\sinon". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\webpack". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\node". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\react-dom". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\requirejs". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-loader\node_modules@uifabric\utilities". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\requirejs". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\tapable". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\webpack". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\office-ui-fabric". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-office-ui-fabric-core". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\office-ui-fabric-core". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-build-web". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-webpart-workbench". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\gulp-core-build-serve". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-application-base". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-extension-base". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@uifabric\styling". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-client-preview". We'll try to get each manifest separately
[00:11:43] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\microsoft-graph-client". We'll try to get each manifest separately
[00:11:44] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@types\fs-extra". We'll try to get each manifest separately
[00:11:44] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\fs-extra". We'll try to get each manifest separately
[00:11:44] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules@microsoft\sp-webpart-workbench\node_modules\prop-types". We'll try to get each manifest separately
[00:11:44] [write-manifests] Unable to get "manifests.json" file for project in "D:\Programming\Projects\sharepoint\helloworld\node_modules\ajv". We'll try to get each manifest separately
[00:11:44] Finished subtask 'write-manifests' after 1.71 s
[00:11:44] Starting subtask 'reload'...
[00:11:44] Finished subtask 'reload' after 3.33 ms

I had a similar/the same issue where workbench.html wasn't being generated, and it turns out it was because I had PostgreSQL running on port 5432 which was blocking my component. I just changed the api port in serve.json to another port, in my case 3000, and it started working.

@steevinBradlee super. That was it. I also had PostgreSQL running on 5432.  After changing the port workbench appeared.
The issue can be closed. Thank you all for the help!


Not possible to add Factbox after factboxes without name

In page extension, is not possible to add a factbox with addafter statement, if the factbox doesn't have a given name.
pageextension 18122140 "EOS PagExt18122140" extends "Customer Card" //21
{
    layout
    {
        addafter("Customer Picture")
        {

        }

        addbefore("Customer Picture")
        {

        }

        addafter("Attached Documents")
        {

        }

        addbefore("Attached Documents")
        {

        }
    }
}

The code is expected to let us add factboxes after/before all the standard factboxes.

Versions:

AL Language: 3.0.145991

Have you tried using the actual name ""?
pageextension 18122140 "EOS PagExt18122140" extends "Customer Card" //21
{
    layout
    {
        addafter("<Customer Picture>")
        {
        }

        addbefore("<Customer Picture>")
        {
        }

        addafter("Attached Documents")
        {
        }

        addbefore("Attached Documents")
        {

        }
    }
}

Yes, but it doesn't work.

You are right, it is the control ID you need to use
pageextension 18122140 "EOS PagExt18122140" extends "Customer Card" //21
{
    layout
    {
        addafter(Control149)
        {
        }

        addbefore(Control149)
        {
        }

        addafter("Attached Documents")
        {
        }

        addbefore("Attached Documents")
        {
        }
    }
}

You are right.
At this point, I think Microsoft should consider this as a suggestion and add the possibility to use the name, that is ways easier to remember and find.
Because in October, will be easier to use "Customer Picture", than check in Microsoft repo, which is the control name.

Hi! The problem here is that the name of the control is not explicitly set and we are trying to generate a name that will not clash with the  name of other controls on the page. The names for parts that have not had their name explicitly set in C/AL is always Control{Id} in the generated symbols.
With the switch to AL, all controls will have the name explicitly set in code. If you are still working on the C/AL base, you can use F12 to see the definition of the page you are modifying and see what the names of the controls are.
In the last months, we have been hard at work on the next release of the developer tools. You can read Freddy's blog post to find out more https://freddysblog.com/2019/07/31/preview-of-dynamics-365-business-central-2019-release-wave-2/ . Let us know what you think!


Use gpg instead of gpg2

Now that #412 was fixed, please also consider using "gpg" instead of "gpg2". On most Linux distributions nowadays, gpg2 is just a symlink to gpg and on some of them, for example Debian-based systems, the symlink does not exist out-of-box and so using gpg2 adds unnecessary dependency on gnupg2 which is a transitional package that just provides a symlink to gpg, is considered deprecated and will be dropped in the future. On some systems, for example the freedesktop Flatpak runtime, gpg2 is already not available at all.
/cc @micahflee

terrorist@localhost:~$ gpg --version
gpg (GnuPG) 2.2.20
libgcrypt 1.8.6
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/terrorist/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

@AsciiWolf :+1:

@AsciiWolf this should be fixed in v0.3.4 already.


Snabb config get-state command

This is a new PR for https://github.com/Igalia/snabb/pull/585. This is based off the new work in the lwaftr branch, a new PR was made as these changes are incompatible with the pervious branch.
This brings the snabb config get-state <instance ID> <path> command.

PTAL @wingo

Apologies for concurrent leader.lua updates, please merge lwaftr into this branch and resolve conflicts; tx :)


Failure to use Azure blob storage using S3Proxy:  Invalid header x-ms-version reported by Azure

I am trying to use S3proxy to connect with Azure.  However requests are failing with error code 400, reason being invalid header x-ms-version.
This is the header added by jclouds itself.  Any idea what's going on here ?
Is there some config setting that I am missing or is it jclouds issue ?
Below are some snippet from debug traces -
Thanks For your help.
17:01:50.806 [S3Proxy-19 - /] DEBUG org.jclouds.http.internal.JavaUrlHttpCommandExecutorService - Sending request<PHONE_NUMBER>: GET https://xxxxxxx.blob.core.windows.net/?comp=list&include=metadata HTTP/1.1
17:01:50.807 [S3Proxy-19 - /] DEBUG jclouds.headers - >> GET https://testfkdr.blob.core.windows.net/?comp=list&include=metadata HTTP/1.1
17:01:50.807 [S3Proxy-19 - /] DEBUG jclouds.headers - >> x-ms-version: 2013-08-15
17:01:50.807 [S3Proxy-19 - /] DEBUG jclouds.headers - >> Date: Fri, 12 May 2017 11:31:50 GMT
17:01:50.807 [S3Proxy-19 - /] DEBUG jclouds.headers - >> Authorization: SharedKeyLite xxxxxxx:rmd323P/XcAYb9hp2oJgs9DexnOVGQXwXrL7+iPH7Tk=
17:01:51.074 [S3Proxy-19 - /] DEBUG org.jclouds.http.internal.JavaUrlHttpCommandExecutorService - Receiving response<PHONE_NUMBER>: HTTP/1.1 400 The value for one of the HTTP headers is not in the correct format.
17:01:51.074 [S3Proxy-19 - /] DEBUG jclouds.headers - << HTTP/1.1 400 The value for one of the HTTP headers is not in the correct format.
17:01:51.075 [S3Proxy-19 - /] DEBUG jclouds.headers - << Server: Microsoft-HTTPAPI/2.0
17:01:51.075 [S3Proxy-19 - /] DEBUG jclouds.headers - << x-ms-request-id: a5f6d1a6-0001-0004-7813-cbff98000000
17:01:51.075 [S3Proxy-19 - /] DEBUG jclouds.headers - << Date: Fri, 12 May 2017 11:31:50 GMT
17:01:51.075 [S3Proxy-19 - /] DEBUG jclouds.headers - << Content-Type: application/xml
17:01:51.075 [S3Proxy-19 - /] DEBUG jclouds.headers - << Content-Length: 328
17:01:51.080 [S3Proxy-19 - /] DEBUG jclouds.wire - << "[0xef][0xbb][0xbf]<?xml version="1.0" encoding="utf-8"?><Error>InvalidHeaderValue<Message>The value for one of the HTTP headers is not in the correct format.[\n]"
17:01:51.080 [S3Proxy-19 - /] DEBUG jclouds.wire - << "RequestId:a5f6d1a6-0001-0004-7813-cbff98000000[\n]"
17:01:51.080 [S3Proxy-19 - /] DEBUG jclouds.wire - << "Time:2017-05-12T11:31:51.4034283Z</Message><HeaderName>x-ms-version</HeaderName><HeaderValue>2013-08-15</HeaderValue></Error>"

This is very strange; x-ms-version is a supported header (required for some operations) and Microsoft documents that 2013-08-15 is valid:
https://docs.microsoft.com/en-us/rest/api/storageservices/azure-storage-services-versions-2015-07-08-and-earlier
I successfully ran a test listing buckets similar to yours and saw the following:
[s3proxy] D 05-12 12:26:59.222 S3Proxy-22 o.j.h.i.JavaUrlHttpCommandExecutorService:56 |::] Sending request<PHONE_NUMBER>: GET https://gaultest2.blob.core.windows.net/?comp=list&include=metadata HTTP/1.1
[s3proxy] D 05-12 12:26:59.222 S3Proxy-22 jclouds.headers:56 |::] >> GET https://gaultest2.blob.core.windows.net/?comp=list&include=metadata HTTP/1.1
[s3proxy] D 05-12 12:26:59.222 S3Proxy-22 jclouds.headers:56 |::] >> x-ms-version: 2013-08-15
[s3proxy] D 05-12 12:26:59.222 S3Proxy-22 jclouds.headers:56 |::] >> Date: Fri, 12 May 2017 19:26:59 GMT
[s3proxy] D 05-12 12:26:59.222 S3Proxy-22 jclouds.headers:56 |::] >> Authorization: SharedKeyLite gaultest2:4DPZpB6ScjKxZh1Yd0pTrJbsfnzzmXX90sdaqa5sUF0=
[s3proxy] D 05-12 12:26:59.238 S3Proxy-22 o.j.h.i.JavaUrlHttpCommandExecutorService:56 |::] Receiving response<PHONE_NUMBER>: HTTP/1.1 200 OK
[s3proxy] D 05-12 12:26:59.238 S3Proxy-22 jclouds.headers:56 |::] << HTTP/1.1 200 OK
[s3proxy] D 05-12 12:26:59.238 S3Proxy-22 jclouds.headers:56 |::] << Transfer-Encoding: chunked
[s3proxy] D 05-12 12:26:59.238 S3Proxy-22 jclouds.headers:56 |::] << x-ms-version: 2013-08-15
[s3proxy] D 05-12 12:26:59.238 S3Proxy-22 jclouds.headers:56 |::] << Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
[s3proxy] D 05-12 12:26:59.239 S3Proxy-22 jclouds.headers:56 |::] << x-ms-request-id: 85cf70b3-0001-0088-6055-cb304b000000
[s3proxy] D 05-12 12:26:59.239 S3Proxy-22 jclouds.headers:56 |::] << Date: Fri, 12 May 2017 19:26:58 GMT
[s3proxy] D 05-12 12:26:59.239 S3Proxy-22 jclouds.headers:56 |::] << Content-Type: application/xml
[s3proxy] D 05-12 12:26:59.239 S3Proxy-22 jclouds.wire:56 |::] << "[0xef][0xbb][0xbf]<?xml version="1.0" encoding="utf-8"?><EnumerationResults ServiceEndpoint="https://gaultest2.blob.core.windows.net/"><Containers><Container><Name>gaultest</Name><Properties><Last-Modified>Wed, 17 Sep 2014 21:56:40 GMT</Last-Modified><Etag>"0x8D1A0D965778912"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState></Properties><Metadata /></Container><Container><Name>s3proxy-1225749005</Name><Properties><Last-Modified>Fri, 12 May 2017 19:26:58 GMT</Last-Modified><Etag>"0x8D4996CDB9B99BD"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState></Properties><Metadata /></Container></Containers><NextMarker /></EnumerationResults>"

Note that this includes the x-ms-version field.  Do you have something unusual in your environment, e.g., using Azure emulator, HTTP proxy?  You might try compiling S3Proxy against a different Azure API by replacing the <jclouds.version>2.0.2-SNAPSHOT</jclouds.version> stanza in pom.xml with 2.1.0-SNAPSHOT.

No, I am running against the Azure, not emulator. Not sure what is wrong with environment. Below is my S3Proxy properties file,  do you see something incorrect with it ?  I will give it try with 2.1.0-snapshot and report back the result.
s3proxy.endpoint=http://localhost:8080
s3proxy.authorization=aws-v2
s3proxy.identity=local
s3proxy.credential=local
s3proxy.virtual-host=localhost
jclouds.provider=azureblob
jclouds.identity=
jclouds.credential=

@kmrdhruv I successfully ran a similar test earlier.  Can you minimize a test case so I can try the exact same steps?

Thanks andrewgaul.
I am able to execute it with jcloud version 2.1.0-SNAPSHOT.
I was using s3cmd to execute the commands and that requires  s3proxy authorization to be "aws-v2-or-v4"
With above 2 changes things are fine.
In my scenario data is uploaded via Azure SDK and might be download via S3Proxy.  Upload path enables client side encryption (CSE).  Is there anyway CSE can be configured through S3Proxy -> Jcloud -> Azure ?.

Closing this issue since you resolved the original symptoms.  If you have an unrelated issue with encryption please open another issue with more detail.


Link DG with AFLGo

I hope to integrate DG (I don't know if you have heard of DG, DG is a library containing various bits for program analysis. ) into Aflgo. AFLGO utilizes LLVM pass, but I need to modify its Makefile to link DG. However, I failed. It prompted many errors.
https://github.com/mchalupa/dg

Which ELF target in the Makefile do you want to link DG with? You need to give more detailed information about those errors, such as some msg pieces, warnings from compiler or linker...

I want to use the DG library in the /root/aflgo/instrument/aflgo-pass.so.cc file, so I may need to modify the /root/aflgo/instrument/Makefile file to link DG with  aflgo-pass.so. I'm not sure if the description is clear.

I made some attempts, but it seems like it's not working well.
`aflgo-pass.so: aflgo-pass.so.cc | test_deps
$(CXX) -std=c++14 `/root/aflgo/instrument/llvm_tools/build/bin/llvm-config --cxxflags` -Wl,-znodelete -fno-rtti -fpic -Wextra -fno-exceptions -O3 \
-funroll-loops -Wall -D_FORTIFY_SOURCE=2 -g -Wno-pointer-sign -DVERSION=\"2.57b\" -Wno-variadic-macros -DHAVE_LLVM -DENABLE_CFG \
-I/root/dg/include -I/root/dg/lib -I/root/dg/tools/include -shared aflgo-pass.so.cc -o aflgo-pass1.so `/root/aflgo/instrument/llvm_tools/build/bin/llvm-config --ldflags`

$(CXX) -shared -o aflgo-pass.so -L/root/aflgo/instrument/llvm_tools/build/lib -Wl,-rpath,/root/aflgo/instrument/llvm_tools/build/lib:/root/dg/build/tools:/root/dg/build/lib /root/aflgo/instrument/aflgo-pass1.so \
/root/dg/build/lib/libdgcda.so \
/root/dg/build/lib/libdgdda.so \
/root/dg/build/lib/libdgpta.so \
/root/dg/build/lib/libdganalysis.so \
/root/dg/build/lib/libdgllvmdda.so \
/root/dg/build/lib/libdgllvmdg.so \
/root/dg/build/lib/libdgllvmcda.so \
/root/dg/build/lib/libdgllvmthreadregions.so \
/root/dg/build/lib/libdgllvmforkjoin.so \
/root/dg/build/lib/libdgllvmpta.so
# /root/dg/build/tools/libdgllvmslicer.so`

Why was aflgo-pass1.so used as an intermediate here?

So what's your linker complained about? Plz show the actual error, if further help is needed.

thx, I used your Script. I don't know why it can't find libs.
/usr/bin/ld: cannot find -l:libdgcda.so
/usr/bin/ld: cannot find -l:libdgdda.so
/usr/bin/ld: cannot find -l:libdgpta.so
/usr/bin/ld: cannot find -l:libdganalysis.so
/usr/bin/ld: cannot find -l:libdgllvmdda.so
/usr/bin/ld: cannot find -l:libdgllvmdg.so
/usr/bin/ld: cannot find -l:libdgllvmcda.so
/usr/bin/ld: cannot find -l:libdgllvmthreadregions.so
/usr/bin/ld: cannot find -l:libdgllvmforkjoin.so
/usr/bin/ld: cannot find -l:libdgllvmpta.so
/usr/bin/ld: cannot find -l:libdgllvmslicer.so
clang-11: error: linker command failed with exit code 1 (use -v to see invocation)

it can find libs, but new error
unset AFL_USE_ASAN AFL_USE_MSAN AFL_INST_RATIO; AFL_QUIET=1 AFL_CC=/usr/local/bin/clang ./aflgo-clang -O3 -funroll-loops -Wall -D_FORTIFY_SOURCE=2 -g -Wno-pointer-sign -DVERSION=\"2.57b\"  ./test-instr.c -o test-instr

: CommandLine Error: Option 'debug-pass' registered more than once!
fatal error: error in backend: inconsistency in registered CommandLine options
clang-11: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 11.0.0 (https://gitee.com/lsh-666/aflgo.git 49e7e88d6e3fa33632c93d0759325472c15ad584)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
clang-11: note: diagnostic msg: Error generating preprocessed source(s).
make: *** [Makefile:123: test_build] Error 70

Sorry I'm not a DG user. But according to the error msg from clang driver, some transform features introduced by DG overlap with those intergrated in a normal clang distro.
And I guess DG itself were intended to be used like llvm opt, rather than a part of compiler toolchain. I think you may need to check out if the DG features you introduced can be used as a normal pass loaded by clang driver, first.  Only it works could you intergrate the features you need into aflgo-pass.so.cc.
CMIIW :)

Yes, I tried to write a simple llvm pass, where I used the dg library, I compiled the .so file, and it executed normally. That llvm pass is compiled via cmake. I tried modifying aflgo's makefile file because it doesn't have a cmakelist file. I'm bothered

I compiled the .so file, and it executed normally.

So you can make sure the demo works as expected when loaded with the method of clang -Xclang -load -Xclang *.so, if I understand correctly?

That llvm pass is compiled via cmake. I tried modifying aflgo's makefile file because it doesn't have a cmakelist file.

When building a pass without llvm-project source tree, there is no critical difference in using cmakelist or makefile. I'm glad to check if sth goes wrong if you can stick the source code of your simple pass and cmakelist here.

llvm pass
//===- Hello.cpp - Example code from "Writing an LLVM Pass" ---------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file implements two versions of the LLVM "Hello World" pass described
// in docs/WritingAnLLVMPass.html
//
//===----------------------------------------------------------------------===//

#include "llvm/ADT/Statistic.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/Pass.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
#include "dg/llvm/LLVMDependenceGraphBuilder.h"
using namespace llvm;

namespace {
struct SkeletonPass : public ModulePass {
  static char ID;
  SkeletonPass() : ModulePass(ID) {}

  bool runOnModule(Module &M) override {
    errs() << "Hello: ";
    dg::llvmdg::LLVMDependenceGraphBuilder dg_builder(&M);
    return true;
  }
};
} // namespace

char SkeletonPass::ID = 0;

// Automatically enable the pass.
// http://adriansampson.net/blog/clangpass.html
static void registerSkeletonPass(const PassManagerBuilder &,
                                 legacy::PassManagerBase &PM) {
  PM.add(new SkeletonPass());
}
static RegisterStandardPasses
    RegisterMyPass(PassManagerBuilder::EP_EarlyAsPossible, registerSkeletonPass);

static RegisterStandardPasses
    RegisterMyPass0(PassManagerBuilder::EP_EnabledOnOptLevel0,
                   registerSkeletonPass);

cmakelist
cmake_minimum_required(VERSION 3.20)
project(llvm-tutor-hello-world)

#===============================================================================
# 1. LOAD LLVM CONFIGURATION
#===============================================================================
# Set this to a valid LLVM installation dir
set(LT_LLVM_INSTALL_DIR "" CACHE PATH "LLVM installation directory")

# Add the location of LLVMConfig.cmake to CMake search paths (so that
# find_package can locate it)
list(APPEND CMAKE_PREFIX_PATH "${LT_LLVM_INSTALL_DIR}/lib/cmake/llvm/")

find_package(LLVM CONFIG)
if("${LLVM_VERSION_MAJOR}" VERSION_LESS 11)
  message(FATAL_ERROR "Found LLVM ${LLVM_VERSION_MAJOR}, but need LLVM 17 or above")
endif()

# HelloWorld includes headers from LLVM - update the include paths accordingly
include_directories(SYSTEM ${LLVM_INCLUDE_DIRS})

#===============================================================================
# 2. LLVM-TUTOR BUILD CONFIGURATION
#===============================================================================
# Use the same C++ standard as LLVM does
set(CMAKE_CXX_STANDARD 17 CACHE STRING "")

# LLVM is normally built without RTTI. Be consistent with that.
if(NOT LLVM_ENABLE_RTTI)
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
endif()

#===============================================================================
# 3. ADD THE TARGET
#===============================================================================
add_library(HelloWorld SHARED HelloWorld.cpp)

# Allow undefined symbols in shared objects on Darwin (this is the default
# behaviour on Linux)

find_library(DGCDA_LIB dgcda HINTS ${DG_ROOT_DIR}/build/lib)
find_library(DGPTA_LIB dgpta HINTS ${DG_ROOT_DIR}/build/lib)
find_library(DGDDA_LIB dgdda HINTS ${DG_ROOT_DIR}/build/lib)
find_library(DGVRA_LIB dgvra HINTS ${DG_ROOT_DIR}/build/lib)
find_library(DGLLVMPTA_LIB dgllvmpta HINTS ${DG_ROOT_DIR}/build/lib)
find_library(DGLLVMCDA_LIB dgllvmcda HINTS ${DG_ROOT_DIR}/build/lib)
find_library(DGLLVMDDA_LIB dgllvmdda HINTS ${DG_ROOT_DIR}/build/lib)
find_library(DGANALYSIS_LIB dganalysis HINTS ${DG_ROOT_DIR}/build/lib)
find_library(DGLLVMDG_LIB dgllvmdg HINTS ${DG_ROOT_DIR}/build/lib)
find_library(DGLLVMVRA_LIB dgllvmvra HINTS ${DG_ROOT_DIR}/build/lib)
find_library(DGLLVMTD_LIB dgllvmthreadregions HINTS ${DG_ROOT_DIR}/build/lib)
find_library(DGLLVMFJ_LIB dgllvmforkjoin HINTS ${DG_ROOT_DIR}/build/lib)
# find_library(DGLLVMSLICER_LIB dgllvmslicer HINTS ${DG_ROOT_DIR}/build/lib)

target_compile_definitions(HelloWorld PRIVATE ENABLE_CFG)
target_compile_definitions(HelloWorld PRIVATE DHAVE_LLVM)

target_include_directories(HelloWorld PUBLIC
  # ${SVF_ROOT_DIR}/include
  ${DG_ROOT_DIR}/include
  ${DG_ROOT_DIR}/lib
  ${DG_ROOT_DIR}/tools/include
)

target_link_libraries(HelloWorld PUBLIC
  ${DGCDA_LIB}
  ${DGPTA_LIB}
  ${DGDDA_LIB}
  ${DGVRA_LIB}
  ${DGLLVMPTA_LIB}
  ${DGLLVMCDA_LIB}
  ${DGLLVMDDA_LIB}
  ${DGANALYSIS_LIB}
  ${DGLLVMDG_LIB}
  ${DGLLVMVRA_LIB}
  # ${DGLLVMSLICER_LIB}
  ${DGLLVMTD_LIB}
  ${DGLLVMFJ_LIB}
  "$<$<PLATFORM_ID:Darwin>:-undefined dynamic_lookup>"
)

Just take a look at DG after lunch...
(Exactly same Hello.cpp as yours, on Ubuntu 20.04.4 LTS)
1ST - Compile DG
### workdir: /root
mkdir build install;
pushd build;
cmake ../dg -DCMAKE_INSTALL_PREFIX=../install -DLLVM_DIR=/usr/lib/llvm-X/cmake;
make install;
popd;

2ND - Compile the pass
### workdir: /root
clang-X `llvm-config-X --cxxflags` -fno-rtti -O3 -D_FORTIFY_SOURCE=2 -g -fPIC -shared \
  -DHAVE_LLVM -DENABLE_CFG -I/root/install/include \
  `llvm-config-X --ldflags` -Wl,-znodelete \
  -Wl,-L,/root/install/lib -Wl,-rpath,/root/install/lib \
  -Wl,-l:libdgcda.so \
  -Wl,-l:libdgdda.so \
  -Wl,-l:libdgpta.so \
  -Wl,-l:libdganalysis.so \
  -Wl,-l:libdgllvmdda.so \
  -Wl,-l:libdgllvmdg.so \
  -Wl,-l:libdgllvmcda.so \
  -Wl,-l:libdgllvmthreadregions.so \
  -Wl,-l:libdgllvmforkjoin.so \
  -Wl,-l:libdgllvmpta.so \
  -o ./Hello.so \
  ./Hello.cpp

3RD - Test against target
### workdir: /root
clang-X -Xclang -load -Xclang ./Hello.so -o ./test ./test.c

Based on the workflow mentioned above, I test with llvm-6.0, llvm-10 and llvm-11. And all of them work  without any error raised in step 1st and 2nd.
However the pass always crashes in 3rd step, after stepping into dg::llvmdg::LLVMDependenceGraphBuilder.
IMHO, you need to carefully check your implementation, as well as compatibility. Compiling the pass itself is really not the problem there :)

Thank you very much for your help. I've decided to use SVF for static analysis, but since SVF doesn't support LLVM-11, I made some modifications to make it compatible with the LLVM version used by aflgo, and tried using it. I succeeded, and I'm very grateful for your assistance. Thanks again.


Issues with OSD peer dependency

Hi,
I'm currently using OSD v3.1.0 and I would like to update it to the latest version. Unfortunately, when I do this the peer dependency is being overridden and on a clean installation of node_modules I get errors, because the peer dependency is OSD v3 and I have v4. Is there any way I can do the necessary update without forcing the dependency conflict. I might be wrong, but I think updating the peerDependency from package.json might solve the problem and I was wondering if this could be possible. Thank you!
These are the errors I get:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/openseadragon
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/@recogito/annotorious-openseadragon
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Conflicting peer dependency<EMAIL_ADDRESS>npm ERR! node_modules/openseadragon
npm ERR!   peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   node_modules/@recogito/annotorious-openseadragon
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

Hi, yes, you are right of course. It's only the peerDependencies declaration. (Annotorious itself has been compatible with OSD 4 for a while.) I just pushed a fix & published a new version of the library (2.7.18).


Migrate Ubuntu workflows to ubuntu-24.04 as default

What would you like?
Replace GitHub runner ubuntu-22.04 in .github/workflows with ubuntu-24.04 when the latter has been declared ubuntu-latest.
For workflow(s) running a matrix of Ubuntu runner versions, add ubuntu-24.04 to the existing ubuntu-20.04 and ubuntu-22.04 runners.
Why is this needed?
GitHub plans to start rollout of ubuntu-24.04 as ubuntu-latest on Sep 23, 2024.
Cypress GitHub Action should be prepared and have tested workflows on this version.
Other

See

#1263
#1265


legal: invesitgate dsgvo and willhaben imprint

check legal actions that would need to be added for dsgvo reasons
outcome: either delete ipconfigprovider (which currently is used for a small tax hint for users) or keep it and verify all is good regarding data transfer (like cookie banner)

https://dr-dsgvo.de/webseiten-check/


SAR 857: reducing star rating util cognitive complexity and other updates

Related Tickets

SAR-857

Other Repos' PR(s) Intended to Work With This PR
None
How Things Worked (or Didn't) Before This PR
Rating and Trends previously showed all submeasure percentages with a scrollbar and the code was a bit clunky. This separates different layers of functionality and introduces submeasure highs, lows, and a measure percentage rate.
How Things Work Now (And How to Test)
yarn test
Readiness

[x] This PR passes all automated tests.
[x] This PR has no linting errors.
[x] This PR's changes to configuration files have been documented in all appropriate places (such as but not limited to README.md), if applicable.

Q: How dead set are we including tests into the duplication analysis? I think separating these two different but similar components is more important than trying to fuse them together to keep test code DRY.


UniformFullDimensionalLogiset's handling worlds of type SoleLogics.Point1D

Dear @giopaglia,
this pr goal is to enrich UniformFullDimensionalLogiset to support SoleLogics.Point world type, specifically Point1D (but also Point2D and Point3D are predisposed).
Essentially, for now, I defined the following dispatches, similarly to how it's done for OneWorld, Interval and Interval2D :  featchannel, featvalues!, readfeature, featvalue, featvalue!.
I see the file logiset.jl contains large repetitions, guess this is something we should refactor later.
Gio, I also added a bunch of comments "to @giopaglia from @mauro-milella" for fast doubts. Could you throw an eyeball to them?

We are close. checkout SoleLogics@fd24eda (do you have anything to push on SoleLogics?).
Now, some @test_nowarn fail, but it's difficult to trace them. Perhaps starting from include("test/MLJ.jl")...


Newly created files don't belong to ts-project

Continuation of #35794.
I am able to reproduce it in 3.8.0-dev.20200128.
tsserver.log. Downloaded::
(please remove it from this post, after you download it)
An important part of the log is:
Info 1775 [15:3:50.119] Project '/dev/null/inferredProject1*' (Inferred) 1
Info 1775 [15:3:50.119] 	Files (203)
	(files skipped)

<EMAIL_ADDRESS>	<removed>/node_modules/csstype/index.d.ts
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>	<removed>/node_modules/i18next/index.d.ts
	<removed>/node_modules/react-i18next/src/index.d.ts
	<removed>/components/MyComponent.tsx
<EMAIL_ADDRESS>
	(files skipped)

All the above files are from 'node_modules', and there is only a single project file MyComponent.tsx, which is a newly created file (by ctrl+c, ctrl+v).
TypeScript Version:  3.8.0-dev.20200128
Expected behavior:
The newly created file should belong to the same project.
Actual behavior:
The newly created file doesn't belong to the same project, and autocomplete is broken.
Related Issues:
#35794

I believe I'm experiencing this same issue.  I've tried multiple versions of tsc and tsserver.  Currently the version of tsc is Version 3.9.0-dev (I compiled from the latest changes on the Typescript repository).  I distinctly remember experiencing this behavior on version 3.6.3 as well.
I created a file called TextInput.tsx at ./components/form/TextInput.tsx and get the following from the tsserver logs: https://gist.github.com/alexfaber2011/b451d3c9ac92292e70b0f3ccc7888b8e#file-tsserver-log-L1401.  Notice how it's part of "/dev/null/inferredProject1*"
The moment I import it from another file that's listed in a project that's not from inferredProject (e.g. App.tsx), TextInput.tsx is recognized to be part of the correct project:
Info 144  [12:36:40.571] -----------------------------------------------
Info 144  [12:36:40.571] Open files:
Info 144  [12:36:40.571] 	FileName: /Users/alexfaber/RoshReview/emqb/emqb-native/App.tsx ProjectRootPath: undefined
Info 144  [12:36:40.571] 		Projects: /Users/alexfaber/RoshReview/emqb/emqb-native/tsconfig.json
Info 144  [12:36:40.571] 	FileName: /Users/alexfaber/RoshReview/emqb/emqb-native/components/form/TextInput.tsx ProjectRootPath: undefined
Info 144  [12:36:40.571] 		Projects: /Users/alexfaber/RoshReview/emqb/emqb-native/tsconfig.json
Perf 144  [12:36:40.575] 2::open: async elapsed time (in milliseconds) 7.2267

Once it's part of the correct project, my autocomplete and type checks work.
Thanks for your hard work on this wonderful piece of software.

@alexfaber2011 The behavior you mentioned seems correct since the root files in your project are just two index.ts and App.tsx I cant tell if your tsconfig has files entry or has include pattern that doesn't include new file in it but the TextInput.tsx is not going to be part of that config until referenced by some file as its not a root file picked up because config file says so..
https://gist.github.com/alexfaber2011/b451d3c9ac92292e70b0f3ccc7888b8e#file-tsserver-log-L21

Very helpful, thanks @sheetalkamat.  My tsconfig was had an includes property that was too restrictive ['*.ts', '*.tsx'].  Removing it entirely has given more rootNames and now everything seems to be working great.

tsserver.log
@sheetalkamat
New log with the same issue.
I created a new file using '+' icon from the sidebar, and then I copied the code from another file.
The new file is 'kpi-form.tsx`.  When I rename it to 'kpi-form2.tsx' -> 'kpi-form.tsx', then autocomplete starts working correctly.

This is still a problem for me with VS Code 1.42.1 and Typescript 3.5.3. Somewhere I read a suggested workaround to configure the Code workspace with a local typescript installation instead of the system version. I don't recall whether that used to fix the issue for me, but it isn't fixing it now.

@lstkz Your log isn't complete so I cant tell whats going on, whether the file is present on the disk or not. I cant also tell if the config file is including that file as part of file names through files/include.. We would need complete log as well as repro steps to investigate this further.

We appear to be running into a similar issue on TypeScript 3.9.3. Pre-existing files belong to the correct project, but newly created files belong to /dev/null/inferredProject1*. I have emailed you the full tsserver log at the email address mentioned above. Would be great to figure out a fix, because currently developers have to reload window every time they create a file which is not ideal. Thank you for your work on TypeScript, and please let me know if any further details would be helpful.

I was able to create a repro here: https://github.com/brieb/ts-inferredProject1
Thank you very much for looking into this!


Use of actual model name instead of Inline Model

I'm having trouble with the model names. When an action returns some sort of collection of a certain type, Swagger UI displays the model as Inline Model [ ... ] for the collection, which is fine because the collection doesn't have a name, but instead of the type name of the element, the inner type will be displayed as Inline Model 1.
To reproduce look at the Search action of the CrudActionsController of the Basic sample.
The model in Swagger UI looks like
Inline Model [
  Inline Model 1
]
Inline Model 1 {
  id (integer, optional): Uniquely identifies the product,
  description (string, optional): Describes the product,
  status (integer, optional) = ['0', '1', '2']
}

but should probably look like
Inline Model [
  Product
]
Product {
  id (integer, optional): Uniquely identifies the product,
  description (string, optional): Describes the product,
  status (integer, optional) = ['0', '1', '2']
}

Additionally the sample when modified to create application/xml will create an example value of
<?xml version="1.0"?>
<Inline Model>
  <id>1</id>
  <description>string</description>
  <status>0</status>
</Inline Model>

instead of
<?xml version="1.0"?>
<Inline Model>
  <Product>
    <id>1</id>
    <description>string</description>
    <status>0</status>
  </Product>
</Inline Model>

I've tried to add a CollectionDataContract (using AddXmlDataContractSerializerFormatters to set up XML Serialization), but that didn't work.
Not sure where this goes wrong and how it should be rectified?

I think that the issue is related to the fact that the Schema.Title is not set. If I add
schema.Title = GetSchemaIdFor(type);

into SchemaRegistry.CreateInlineSchema after the schema is instantiated I do get
IEnumerable[Product] [
  Product
]
Product {
  id (integer, optional): Uniquely identifies the product,
  description (string, optional): Describes the product,
  status (integer, optional) = ['0', '1', '2']
}

for the model and
<?xml version="1.0"?>
<IEnumerable[Product]>
  <id>1</id>
  <description>string</description>
  <status>0</status>
</IEnumerable[Product]>

for the xml example.
Better, I think, but not there yet.

Any update on when this will be fixed?  I am also running into the same problem.

Same issue. Just posting here to be notified of a fix

For anyone else out there using Web API 2 and XML documentation file I found a way for this to work :
Instead of decorating your methods in your controller this way (List):
[SwaggerResponse(HttpStatusCode.OK,  Type = typeof(List))]
Try (Just the type T itself):
[SwaggerResponse(HttpStatusCode.OK,  Type = typeof(T))]
There is really no need to tell Swagger the response is a collection of type "T". It works just fine without knowing the response is a collection of objects.
This fixed the "Inline Model" stuff for me.

This seems to be related to #349, as this issue is fixed in the latest swagger-ui 3.x release.
An update of swagger-ui to 3.x should fix the problem within AspNetCore.SwaggerUI too.

Fixed as of release 2.0.0, which includes swagger-ui 3.x.

D0 you solve this problem? and how ? thank you~

@RobThree  I am facing the same issue with the same version of Swashbuckle 5.6.0.
Did you or anyone solve this Inline Model [ Inline Model 1 ] problem?

https://stackoverflow.com/questions/39572999/asp-net-swagger-ienumerablet/53405945#53405945
the second answer in the above link solved this problem for me.
GlobalConfiguration.Configuration.EnableSwagger
(c =>{
c.SchemaFilter();
}
class AnyClassName: ISchemaFilter{
public void Apply(Schema schema, SchemaRegistry schemaRegistry, Type type)
{
schema.title = type.Name;
}
}
at least it can show the model name.


Precise size calculation of ScrollContainer

Fix #21517
I think this can be cherry-picked on 3.0 branch.

@akien-mga updated.

I don't think the original issue is a bug, unless I misunderstood something. Check my comment in there.

Closing then (feel free to reopen if @reduz's analysis is incorrect).

@akien-mga @reduz
https://github.com/godotengine/godot/blob/69761816381f11536980441265345ba055ad1c26/scene/gui/scroll_container.cpp#L371-L372
getting h/v scrollbar size at here
https://github.com/godotengine/godot/blob/69761816381f11536980441265345ba055ad1c26/scene/gui/scroll_container.cpp#L376-L387
and here,
v_scroll->set_page(size.height - hmin.height);
page is set with considering h scrollbar's height even though it's not visible.
the another way to fix it is get_combined_minimum_size() returns (0,0) when it's not visible.
but it would break things.

I'd like to request a review to @groud for this too.

I think this PR is ok. There is indeed a problem.
With something as simple as this:

I end up with this:

(There is some space after the ScrollContainer's content.)
Note that all styleboxes were overridden by the default empty style box, so the problem was not here.
If this PR solves this problem, I think it should be merged.

I'd like to reopen it and hope it's merged for 3.1 :smile:
I would not break things.

Thanks!


[Proposed Improvement] Post- instead of Pre-processing

Hi all, and thank you so much for this great software that you're making available for all of us :)
I was thinking about a way to eliminate the delay completely (sort of) while still retaining the desired smoothness, and that's how it would work.
The algorithm I had in mind would get the raw pen events, print them (retaining the jags), and at the same time save their info in memory.
Once N events have been cached and printed, another thread (or process) in parallel would start, compute what it needs to compute with those N events and redraw only that part of the screen. All while the main thread/process still collects and draws the raw strokes.
Doing this way, the latency should roughly stay the same and the jags should only be present for a small amount of time after they've been drawn.
I don't know how feasible that would be, but in theory it should work, and it's a solution I would personally adopt in order to have a super clean result without sacrificing latency (if it takes 1s to update what I've written before I don't mind, I'm focused on what I'm writing right now and I'd like a super clean final result)
Let me know what you think and thanks again :)

Hi @giorgio-arena, this would indeed be the best solution! Unfortunately, we would need to have access to xochitl's source code to do that, which reMarkable is not releasing (yet?).


Docker Release notes don't list engine API version

File: engine/release-notes/index.md
It'd be nice if the Daemon API version was listed for each release, so you could map API version number to release, e.g. answer the question "What is the minimum release I need to install to have engine API 1.39?"

You can also see an overview in the API version matrix