[Hue] Hue API V2

Description
This is nigh-on a complete rewrite of the extension. The changes, as noted in CHANGELOG.md:

Groups and scenes are now shown as images to make it easier to find the right one
Add rate limiting to improve behaviour when holding down a hotkey and to prevent rate limiting errors
Add live updating of lights when they are changed by e.g. the Hue app or a physical switch
Many improvements under the hood to improve performance, responsiveness and reliability

Use Hue API V2: ‘Connected Lighting Interface Protocol’ or CLIP
Connect with the Hue Bridge using TLS (HTTPS) and HTTP/2
Use a single persistent connection to send and receive data to and from Hue bridge

Deprecation: It is no longer possible to set/adjust the color (temperature) of a group since this is not supported by
the Hue API V2. It may be added in the future with a workaround. Please use scenes or individual lights instead.

I'm looking forward to your findings and feedback!
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

@pernielsentikaer I think you might be interested in looking at this, too.

This is the full output @pindab0ter
❯ npm run dev

> dev
> ray develop

info  -  entry points [src/controlLights.tsx src/controlGroups.tsx src/setScene.tsx src/turnOffAllLights.ts]
ready -  built extension successfully
16:02:25.511 Error: No Hue Bridge credentials found
    at src (/Users/pernielsentikaer/.config/raycast/extensions/hue/controlGroups.js:60867:21)
16:02:25.512 Discovering bridge using MeetHue's public API…
16:02:25.636 Discovered Hue Bridge using MeetHue's public API: <IP_ADDRESS>
16:02:45.694 (node:76790) [DEP0123] DeprecationWarning: Setting the TLS ServerName to an IP address is not permitted by RFC 6066. This will be ignored in a future version.
(Use `node --trace-deprecation ...` to show where the warning was created)
16:02:45.798 Error: self-signed certificate
    at TLSSocket.onConnectSecure (node:_tls_wrap:1538:34)
    at TLSSocket.emit (node:events:513:28)
    at TLSSocket.emit (node:domain:489:12)
    at TLSSocket._finishInit (node:_tls_wrap:952:8)
    at ssl.onhandshakedone (node:_tls_wrap:733:12) {
  code: 'DEPTH_ZERO_SELF_SIGNED_CERT'

Ah, right. I think this might be because that's an older model of Hue Bridge, or simply one that isn't up-to-date. Which is good, because you won't be the only one.
I'll look into how I can deal with this.

I added support for Hue Bridges with self-signed certificates. The relevant code is documented with links to the relevant Philips Hue Developer documentation.
I also added a DNS shim. Since it's not allowed to set the TLS ServerName to an IP address, I set the ServerName to the server ID, which I then resolve with the shim. The shim only resolves this Bridge ID address. Any other DNS request is passed through to the regular lookup function.

Thanks for all the fixes and hard work @pindab0ter 🔥

Thanks for all the fixes and hard work @pindab0ter 🔥

My pleasure!
Does that mean it works on your end, now?

No, not yet, but just wanted to thank you 😊

I appreciate that! ☺
Could you provide me with details as to why it doesn't work yet?

Bridges with self-signed certs are now supported and the loading issue is resolved.

@pindab0ter I'd like to ask you how complex is for you (in implementation) to give the option in the Preferences for the user to set by himself the bridge IP Address and also the API Key?

@pindab0ter I'd like to ask you how complex is for you (in implementation) to give the option in the Preferences for the user to set by himself the bridge IP Address and also the API Key?

I'll look into doing that soon. You should only have to set the bridge IP address, since everything else is just requested from the bridge on linking.
Could you tell me more about your scenario, so I know what problem I'm solving?

@pindab0ter basically my point is: my bridge is behind of a tv hack and I already have an API Key and also its IP Address and I'd like to just skip the linking part just to input the information needed myself.

@unnamedd This will most likely make it into the next version.

@unnamedd This will most likely make it into the next version.

Nice!

Awesome work here @pindab0ter - this is SUCH a massive one! Good work 🚀


Change: get auth defaults from os.environ

Get auth from env variables to be able to use in CI/CD like gitlab.

Thanks!
I have few things to work with on the plugin during the incoming weekend - do you have any feedback/comments/suggestions?
Especially, I wonder if the plugin is working for you at all.
Kind Regards,
Pawel

Hi @pawelsikora the plugin works but has issues I'll fix if I can or report it.
Thanks for this :pray:


detect username to populate field, passed via loginhook or otherwise

^^

tested that python can pick it up with SCDynamicStoreCopyConsoleUser, work underway


Feature/pkial 1820 upgrade versions

Update tools
Update docker images
Update helm charts
Update K8S 1.22

Related to PKIAL-1820


packer-rocm/defaults: drop 5.15 specifier for HWE kernel, use 6.8

Now that both sides of the coin have been tested - 5.15 and 6.8 (#47)  - defaulting to the newer release, showing users how to go back if desired.
 The newer HWE one as requested, but also the generic release as well. Many options exist 😄
After this PR: I can/will remove at least one point of repetition with the defaults - build.yml with improved templating can defer to Packer (ubuntu-rocm.variables.pkr.hcl)

Builds, compatible with the arguments used when testing #47 - merging


Destructor undefined

Thanks for contributing to TVM!   Please refer to guideline https://docs.tvm.ai/contribute/ for useful information and tips. After the pull request is submitted, please request code reviews from Reviewers.
The purpose of the destructor is to do the corresponding cleanup when the class is released, so that the coder does not forget the cleanup of the resource, so if there is a constructor, there must be a destructor.

It is not necessary to declare default destructor of a class


net/mail: mail.ParseAddress() does not handle comments correctly

What version of Go are you using (go version)?

go version go1.14.2 linux/amd64
go go1.13.7 playground

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/rmccoll/.cache/go-build"
GOENV="/home/rmccoll/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/rmccoll/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build270827567=/tmp/go-build -gno-record-gcc-switches"

What did you do?
https://play.golang.org/p/SGqTDFa_wVA
package main

import (
	"fmt"
	"net/mail"
)

func main() {
	m, err := mail.ParseAddress(`Pete(A nice \) chap) <pete(his account)@silly.test(his host)>`)
	fmt.Println(m, err)
}

What did you expect to see?
As much as I would like it not to be, I believe this is a valid address perf RFC 5322. It is included as an example in Appendix A.5  White Space, Comments, and Other Oddities https://tools.ietf.org/html/rfc5322#appendix-A.5
"Pete"<EMAIL_ADDRESS><nil>

What did you see instead?
<nil> mail: missing @ in addr-spec

@bradfitz

In case it's useful or saves anyone time, I believe this is correct (but not exactly lovely). https://github.com/golang/go/issues/38447

Here's another POC with [ ] in<EMAIL_ADDRESS>https://go.dev/play/p/KcZgHjHHVdD


Tags enabled mail box give whoops

When I updated the docker to Freescout version 1.4.11 i could activate the tags module. After is was activated my mailbox didden't work and gave "whoops, an error occurred". I don't know if this is an error in the docker container or of freescout it self?

Try restarting the container if you can.  Sometimes the Database migrations don't run properly after activation and cause this to occur. Let me know if this solves.

Yes that fixed it thank you very much.

Great. If you ever run into this again and don't want to restart the container, head inside and execute this:
sudo -u ${NGINX_USER} php artisan migrate --no-ansi and answer yes to any of the questions. I'm doing it automatically on each container start, but sometimes as you noticed some of the migrations don't run automatically on module install. I also believe there is a way to execute the migrations from the Admin -> Settings section.

Thank you for the extra info. i'll keep it in the back off my mind. restarting the docker is no problem for us.


⚠ DSO-API has degraded performance

In 6e9732f, DSO-API ($SITE_URL_DSOAPI) experienced degraded performance:

HTTP code: 200
Response time: 11132 ms

Resolved: DSO-API performance has improved in c012c45 after 7 minutes.


I am not getting notified when someone registers using my invite code

subject
It's a regression because I saw it working before.

@Zero3K: It's not as obvious of course, but just as a reminder in case it's helpful: when you notice that your number of available invite codes has gone down, you can tap that and see who has joined using one of your codes. Tapping their username takes you to their profile where you can follow them if you want.

I already know about that.

Okay.

This issue is no longer valid since invite codes are no longer being used when signing up.


V0.9.2

All Submissions Basics:

[ ] Have you followed the guidelines in our Contributing document?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[ ] Have you checked all Issues to tie the PR to a specific one?

All Submissions Cores:

[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your core changes, as applicable?
[ ] Have you successfully ran tests with your changes locally?
[ ] Does your submission pass tests, including CircleCI, Travis CI, and AppVeyor?
[ ] Does your submission have appropriate code coverage? The cutoff threshold is 95% by Coversall.

New Model Submissions:

[ ] Have you created a .py in ~/pyod/models/?
[ ] Have you created a _example.py in ~/examples/?
[ ] Have you created a test_.py in ~/pyod/test/?
[ ] Have you lint your code locally prior to submission?

Pull Request Test Coverage Report for Build 2118

208 of 215 (96.74%)  changed or added relevant lines in 6 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.04%) to 95.878%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pyod/test/test_deepsvdd.py
72
73
98.63%

pyod/models/rod.py
29
31
93.55%

pyod/models/deep_svdd.py
99
103
96.12%

Totals

Change from base Build 2109:
0.04%

Covered Lines:
5605

Relevant Lines:
5846

💛  - Coveralls


Build binary version of tools with Github Actions

Following the discussion here: https://github.com/esprfid/esp-rfid/pull/473#issuecomment-1031318208 I've introduced these Actions to generate the binaries automatically.
I'm going to prepare a release for the binaries too so that can be downloaded easily, but are not part of the repository as they are ~200MB in total and I don't think it's worth.

Example build: https://github.com/FablabTorino/esp-rfid/actions/runs/1820238280


MacOS support

With Xamarin.Forms 5.x officially supporting MacOS, any plans to add MacOS support to your excellent plugin?

I have an initial draft PR here - https://github.com/EgorBo/Toasts.Forms.Plugin/pull/179

I have an initial draft PR here - https://github.com/EgorBo/Toasts.Forms.Plugin/pull/179


Feat/placeholder web

Details
Added a new placeholder component  for using with small-screen devices to show when opened particular screen on mobile devices.

Fixed Issues

$ https://github.com/Expensify/App/issues/28982
PROPOSAL: https://github.com/Expensify/App/issues/28982#issuecomment-1750100795
Tests

[x] Verify that no errors appear in the JS console
NA

Offline tests

NA
QA Steps

[x] Verify that no errors appear in the JS console
NA

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/59088937/30934ff0-e721-4f8c-9dc2-2fc09b9e6485

Mobile Web - Chrome
https://github.com/Expensify/App/assets/59088937/b9330739-a4c1-49ac-bbda-4b9bf16b1e98

Mobile Web - Safari

https://github.com/Expensify/App/assets/59088937/a7f8854b-e23c-4b69-b730-47eed9656e74

Desktop
https://github.com/Expensify/App/assets/59088937/7938a18e-e106-41e9-81ab-6f7c914ecf57

iOS
https://github.com/Expensify/App/assets/59088937/d5f1a326-76b0-4130-a8ac-c8d7aeb54732

Android
https://github.com/Expensify/App/assets/59088937/3428f5de-ce51-46e6-bc19-abdad24f5da3

@hayata-suenaga @ArekChr please review.

@b4s36t4 please fix the lint error 🙇

@hayata-suenaga done.

@hayata-suenaga @ArekChr Updated everything. can you guys please check?!!

Spanish translations are not yet verified.

@hayata-suenaga @ArekChr What are we going to do about screen. If we follow NotFound page we need to register as a screen to support (dismissModal). Or we need to confirm weather we need to pop the screen (which we show this component using goBack) or push the user to / Report Route. Once this is done we are good to go I think.

@hayata-suenaga @ArekChr What are we going to do about screen. If we follow NotFound page we need to register as a screen to support (dismissModal). Or we need to confirm weather we need to pop the screen (which we show this component using goBack) or push the user to / Report Route. Once this is done we are good to go I think.

I believe this component will primarily serve as a part of another screen to prevent content display when necessary. Consequently:
In desktop browsers, the default 'go back' functionality should suffice for navigation when content is blocked.
For mobile, using the back gesture or back button on bottom navigation in Android to manage on-screen navigation during content blocking seems apt.
This ensures we uphold intuitive navigation practices respective to the platform being used.
NotFound screen is also used in side bar which handles more complex scenarios. Will we use this component in modals? Are there some requirements? @hayata-suenaga

I believe this component will primarily serve as a part of another screen to prevent content display when necessary.

@b4s36t4 yes this is true. I don't think we need to register the component as a screen

@hayata-suenaga @ArekChr Please check now, removed screen related changes also made onLinkPress prop with default value to goBack.
Let me know if there's anything needed.

The author of this PR used the code in their PR.
So we don't have to merge or deploy this PR. Thank you everyone for work. You gonna receive a normal payment. We just don't use this PR.


Review and improve unit/integration test coverage

Ensure unit/integration test coverage

No Plan to work on this.


[$500] Task message preview when copied is not copying exact content

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

GO to any chat

create a task

from the parent chat (where task was created), hover and copy to clipboard

another variant is assign someone to task and then copy the task

Expected Result:
the content copied should be as it is.
for assigned task, in preview it shows email but it doesn't in copied content
Actual Result:
Copied content is different than what it looks like,
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Version Number: 1.3.66-3
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/38435837/c5aace67-8aeb-4869-bef3-4a63d89122d7
https://github.com/Expensify/App/assets/38435837/8247efc7-e1b7-4b2c-9fd0-6e6a94e3cdd9
Expensify/Expensify Issue URL:
Issue reported by: @BhuvaneshPatil
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1693362042758229
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~015b94ed2d509c9a78
Upwork Job ID:<PHONE_NUMBER>929674752
Last Price Increase: 2023-09-08

Proposal
Please re-state the problem that we are trying to solve in this issue.
Copied task message is different than what it looks like.
What is the root cause of that problem?
ContextMenuActions is only copying from the original message of the report action:
https://github.com/Expensify/App/blob/5c138163049ef0f036d46c4359c51fcde673066f/src/pages/home/report/ContextMenu/ContextMenuActions.js#L188-L190
While in task preview, it is formatted to also include task assignee:
https://github.com/Expensify/App/blob/5c138163049ef0f036d46c4359c51fcde673066f/src/components/ReportActionItem/TaskPreview.js#L73-L74
What changes do you think we should make in order to solve the problem?
Add consistent copyable content by including task assignee in the ContextMenuActions, e.g.:
             const message = _.last(lodashGet(reportAction, 'message', [{}]));
            const originalMessage = _.get(reportAction, 'originalMessage', {});
            const taskAssigneeAccountID = reportAction.childManagerAccountID;
            const [assigneeLogin] = PersonalDetailsUtils.getPersonalDetailsByIDs([taskAssigneeAccountID]);
            const taskAssignee = assigneeLogin?.login || assigneeLogin?.displayName;
            const formattedTaskMessage = taskAssignee ? `Created a task: ${taskAssignee} ${reportAction.childReportName}` : lodashGet(message, 'html', '')
            const messageHtml = isTaskAction ? lodashGet(originalMessage, 'html', '') : formattedTaskMessage;

What alternative solutions did you explore? (Optional)
N/A

Proposal
Please re-state the problem that we are trying to solve in this issue.
Assigned task title doesn't update when copying after changing it, furthermore even if we copy the task without assignee it gives us text like - Created a task: <task name>
What is the root cause of that problem?
We use content from messageHtml variable that is being set like this -
https://github.com/Expensify/App/blob/b95c1dd22474fb48929e78a102c1121c1e6e4360/src/pages/home/report/ContextMenu/ContextMenuActions.js#L190
and it looks like this -

But while rendering the created task report action we use this logic
https://github.com/Expensify/App/blob/b95c1dd22474fb48929e78a102c1121c1e6e4360/src/components/ReportActionItem/TaskPreview.js#L74
That's the reason why we are not seeing exact content
What changes do you think we should make in order to solve the problem?
To solve this issue we need to get the html same as we render in TaskPreview.

For TaskPreview we need to make few changes in order to get what we see there(in ReportActionItem), we need to have check if the action is for task creation.
We can add the method in ReportActionUtils

function isCreatedTaskReportAction(reportAction) {
    return reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.ADDCOMMENT && _.has(reportAction.originalMessage, 'taskReportID');
}

we can store this value and have a special check for it. To get the content for copying we need similar logic here -
https://github.com/Expensify/App/blob/7f13cdd9f5ade3aed50827084aa49b5e3a6496e1/src/components/ReportActionItem/TaskPreview.js#L73
We can add a function for that in ReportActionUtils and ReportUtils
if (isCreatedTaskReportAction) {
                    const taskReport = ReportUtils.getReport(ReportActionUtils.getTaskReportIDFromReportActionPreview(reportAction));
                    const text = parser.htmlToText(ReportUtils.getTaskPreviewMessage(taskReport, reportAction));
                    Clipboard.setString(text);
}

getTaskReportIDFromReportActionPreview is for getting reportID for task and getTaskPreviewMessage for getting the message for task preview.
PS - I have implemented both the mentioned methods but it will make proposal lengthy, I can share that if reviewer asks for it.
What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
Task message preview when copied is not copying exact content
What is the root cause of that problem?
The file ContextMenuActions.js posses the code for the copy button. When the copy button is pressed and , the copy button onPress handler calls the setHtml method on the clipboard with messageHtml as the agrument. If the report is a task text, the messageHtml is set as "originalMessage" value from reportAction. The "originalMessage" value from reportAction is the task title and formatted as "Created a task: {{Task Title}}".
However, the task title is displayed byt TaskPreview component and it does not use the "originalMessage" value from reportAction but it creates a task title string from props.taskReport.reportName || props.action.childReportName and if available, taskAssginee.
What changes do you think we should make in order to solve the problem?

Since the messageHtml is not formated according to the html form the TaskPreview component, I believe we need to format it according to how it is formatted in the task preview. Therefore, we should move these lines to a function in ReportUtils file called something like getHtmlforTaskPreview and substitute the function in TaskPreview.js.
const htmlForTaskPreview = ReportUtils.getHtmlforTaskPreview();
Then use the function in ContextMenu.js get the html preview of the report action is create task.
const mesageHTML = isTaskAction ? (ReportUtils.isCreatedTask(reportAction) ? ReportUtils.getHtmlforTaskPreview() : lodashGet(originalMessage, 'html', '') )  : lodashGet(message, 'html', '');
What alternative solutions did you explore? (Optional)
Simply the set the messageHtml variable as the reportAction.childReportName value instead of "orginalMessage", if the action is create task. This will only copy the task title but will not copy a name of the assginee duser if present.
const mesageHTML = isTaskAction ? (ReportUtils.isCreatedTask(reportAction) ? lodashGet(reportAction, "childReportName", ' ') : lodashGet(originalMessage, 'html', '') )  : lodashGet(message, 'html', '');

Closing, this is a regression from this PR https://github.com/Expensify/App/pull/24630 and already reported.


Add reading the current year ledger file

Parent: #2
Read the current year ledger from book directory.

[x] Create class BalanceSheet.
[ ] Add a method of Project which looks the current year ledger up.
[ ] Project gets the current year.
[ ] Add a dummy function meant to call subprocess.run.

Looking the current year ledger up requires knowing the year when the command is invoked. So the year of the ledger looked up should be a parameter.


Added a tool

Added password generator tool and also formatted the questions

the systematically updated

can you resolve merge conflict?


[#63] Privilege checks now apply to irule invocations only (4-2-stable)

why does moving it... oh... it was enforcing 'too often' / 'too deep'.   gotcha.

That is correct.
The admin check was being enforced on everything. I moved it so that the check is only done when a user invokes irule. For all other cases (i.e. delay / remote rules and PEPs firing via normal operation) we skip the admin check.
Ultimately, this change makes it so that only rodsadmins can invoke logical quotas rules directly.
Thoughts?

Just for my own understanding... the privilege check for switching users is not needed here because it will be caught at a different level if it's not allowed to happen? What happens if a user which is not allowed to switch to some other user attempts to do so (or rather, the machinery tries to make that happen here, whether it was intended or not)?

Whoops, I meant to post this comment here. https://github.com/irods/irods_rule_engine_plugin_logical_quotas/issues/63#issuecomment-1065193897

Verified that all tests pass at the bench.


WASM - Spec tests with nonative

Generate a nonative tests Fix bug in imports.wast generation
Fixes #2142

This change is

:shipit:


Wrong log_dir when use SaveConfigCallback + Wandb Logger

🐛 Bug

When I use Lightning CLI with Wandb Logger, SaveConfigCallback saves config file to the root directory instead of the wandb logging directory wandb/run-xxxx-xxxx/files/
|-- bug.py
|-- bug.yaml
|-- wandb/
   |-- run-xxxx-xxxx/
      |-- files/
         |-- ... → expect the config file to be saved here
|-- ... → but the config file is saved here

Without using Wanb Logger (default to TensorBoard), the config is correctly saved under lightning_logs/version_xx/. So it seems like there is a strange interaction between SaveConfigCallback and WandbLogger
To Reproduce
# bug.yaml
import torch
from torch.utils.data import DataLoader, Dataset

from pytorch_lightning import LightningModule
from pytorch_lightning.utilities.cli import LightningCLI

class RandomDataset(Dataset):
    def __init__(self, size, length):
        self.len = length
        self.data = torch.randn(length, size)

    def __getitem__(self, index):
        return self.data[index]

    def __len__(self):
        return self.len

class BoringModel(LightningModule):
    def __init__(self):
        super().__init__()
        self.layer = torch.nn.Linear(32, 2)

    def forward(self, x):
        return self.layer(x)

    def train_dataloader(self):
        return DataLoader(RandomDataset(32, 64), batch_size=2)

    def val_dataloader(self):
        return DataLoader(RandomDataset(32, 64), batch_size=2)

    def training_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("train_loss", loss)
        return {"loss": loss}

    def validation_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("valid_loss", loss)

    def test_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("test_loss", loss)

    def configure_optimizers(self):
        return torch.optim.SGD(self.layer.parameters(), lr=0.1)

if __name__ == "__main__":
    cli = LightningCLI(BoringModel)

# bug.yaml
trainer:
  max_epochs: 10

  logger:
    - class_path: pytorch_lightning.loggers.WandbLogger
      init_args:
        project: bug
        log_model: true

Run from command line
python bug.py fit --config bug.yaml

Expected behavior

The config file should be saved under the wandb logging directory wandb/run-xxxx-xxxx/files/
Environment

PyTorch Lightning Version (e.g., 1.5.0): 1.5.5
PyTorch Version (e.g., 1.10): 1.10.0
Python version (e.g., 3.9): 3.8
OS (e.g., Linux): Ubuntu 18.04
CUDA/cuDNN version: 11.3
GPU models and configuration: 4x RTX 3090 (GPUs are not involved, so not relevant)
How you installed PyTorch (conda, pip, source): conda
If compiling from source, the output of torch.__config__.show():
Any other relevant information: wandb 0.12.9

Additional context

I saw this issue #7679. It seems like the config was saved correctly to wandb logging directory before (thus the name clash), but now it is not saved there anymore.
cc @awaelchli @morganmcg1 @AyushExel @borisdayma @scottire @carmocca @mauvilsa

@borisdayma any idea on this?

I'm not sure it should be save under that directory and should maybe be handled separately, like we do with the models. This way there is a standard location where files are saved which is independent from wandb.
Also it is hard to make it reliable if you use multiple loggers.
We could either log it as an artifact or a file when wandb callback is active. Also not sure if the config should be an input or output artifact (use_artifact vs log_artifact).
Then we just have to think how to handle it, within WandbCallback or within SaveConfigCallback which would then make a call to the logger (a bit like we do with ModelCheckpoint).

Currently SaveConfigCallback saves the config to the trainer.log_dir directory. There is no logger specific logic. From the description it seems that trainer.log_dir points to the root folder. I would expect the config to be saved in lightning_logs/version_xx/, not in the root and not in wandb/run-xxxx-xxxx/files/. There was a pull request to standardize the log_dir for all loggers (https://github.com/PyTorchLightning/pytorch-lightning/pull/7543). Not sure why it was closed but could be related to this.
Saving the config in a logger specific way should be a feature request. The bug here would be that the config is saved in the root instead of lightning_logs/version_xx/.
Only SaveConfigCallback is able to save the config because it is instantiated by the CLI with the required data. By the way, LightningCLI is designed so that a custom SaveConfigCallback class can be used. Just subclass it and save the config in any directory and/or save it as an artifact.


i want to remove the line that is shown inside the text input..tried many techniques but didnt worked...plz help me...??

We use GitHub Issues for bugs.
If you have a non-bug question, ask on Stack Overflow: http://stackoverflow.com/questions/tagged/react-native
If you have a feature request, post it on Product Pains: https://productpains.com/product/react-native/
--- Please use this template, and delete everything above this line before submitting your issue ---
Description
[FILL THIS OUT: Explain what you did, what you expected to happen, and what actually happens.]
Reproduction
[FILL THIS OUT: Try to reproduce your bug on rnplay.org and provide a link. If you can't reproduce the bug on rnplay.org, provide a sample project.]
Solution
[FILL THIS OUT: What needs to be done to address this issue? Ideally, provide a pull request with a fix.]
Additional Information

React Native version: [FILL THIS OUT]
Platform: [FILL THIS OUT: iOS, Android, or both?]
Operating System: [FILL THIS OUT: MacOS, Linux, or Windows?]

<TextInput underlineColorAndroid="transparent" />

Hey, thanks for reporting this issue!
It looks like your description is missing some necessary information. Can you please add all the details specified in the template? This is necessary for people to be able to understand and reproduce the issue being reported.
I am going to close this, but we can reopen if additional information is provided. Thanks!


Can't change GitHub repository without command palette

In the Remote Explorer I don't see any option anywhere to open another GitHub repository once one is opened.

The "Remote - SSH" and "Remote - WSL" extensions are visually very similar, but they do include a button to add SSH and WSL targets:

Another way to change GitHub repositories without the command palette: you can click on the Remote Indicator in the bottom left corner and select 'Open Remote Repository' from the quickpick to switch to another GitHub repository.

👍 good point on aligning with other contributions to the Remote Explorer view.

Containers has 'New Container'

SSH has 'Add New'

WSL has 'Add a Distro'

The "+" of "add" button is one I really mis aswell


📝 Documentation: Do I need to install jsonc-eslint-parser?

Bug Report Checklist

[X] I have pulled the latest main branch of the repository.
[X] I have searched for related issues and found none that matched my issue.

Overview
I removed jsonc-eslint-parser, but ESLint still reports errors in package.json and applies autofixes. Do I really need to install jsonc-eslint-parser?
And isn't it better to use @eslint/json for flat config, if it is still needed in some cases?
Additional Info
No response

👋 Good questions, thanks for posting!

Do I really need to install jsonc-eslint-parser?

No, that isn't necessary in flat config. I think this is a bug in the docs - the installation command for Flat Config shouldn't include jsonc-eslint-parser. Accepting PRs to make separate installation commands for flat & legacy config in the README.md.

And isn't it better to use @eslint/json for flat config, if it is still needed in some cases?

I'm in favor of doing some research there, but don't have the time myself. Also mentioned here: https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues/42#issuecomment-2419932098. If you want to file a new issue & post some initial findings/suggestions, that'd be great, yes please!

Fixed by #654.


Added possibility to define resize direction (globally or per item)

Thanks for submitting a pull request to RGL!
Please reference an open issue. If one has not been created, please create one along with a failing
example or test case.
Please do not commit built files (/dist) to pull requests. They are built only at release.

New PR with related chages only https://github.com/STRML/react-grid-layout/pull/1106


Configure redis_url via configure block (Lucky/habitat integration)

Replaces #49 which has been abandoned.

Thanks @watzon for getting this started.


What is effect of SPRING_DATASOURCE_HIKARI_MINIMUM_IDLE=0?

I have customer trying migrate to hybrid cloud, having issues with existing HikariCP configuration (from on-prem hosting environment), getting periodic errors org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection.
Customer has found that setting SPRING_DATASOURCE_HIKARI_MINIMUM_IDLE=0 causes errors to subside, but claims they think this setting means they are or may opening new database session on every request.
In docs, definition of MinimumIdle says recommendation is to NOT set the value for best performance, and it will default to match MaxPoolSize; it does not say anything about setting value to 0, or what effect that would be.
Can someone clarify?

Setting minimum idle to 0 will not cause a new connection per request. Connections will live for idleTimeout time. If the pool is reasonably active, it will generally keep the pool at a reasonably level number of connections.
You can enable debug logging to see all connection creation and retirement events. Debug logging is not particularly "noisey" and can be used safely in production.


:sparkles: 2DMap (Please)

Is your feature request related to a problem? Please describe.
I saw someone having problems with rendering a simple 2DMap on a terminal, very easy but who knows, someone else might need it to!
Describe the solution you'd like
Make a 2DMap class where rendering and editing 2d maps will be made as easy as pie.
Describe alternatives you've considered
Creating a 2d char array and printing it's values to the terminal, 1d array = 1 line.
Additional context
Nope, N/a

Resolved with: https://github.com/JumperBot/Java-SomeUtils/commit/db22d39a993310a720879eac666117483c129205


fix(translations): fixed some typo errors

Fixed some typo errors in English translations.
@ObuchiYuki I don't know if it's save to change the left part of the translations. Should I change it?

@RodrigoTomeES Thank you for fix typo errors!!!
That's very helpful to me! I merged it!


[Docs]: Typo in docs - Contributing Guidelines

Description
There is typo in  Contributing Guidelines docs,
It says First of ....
It should look like First of all ...
Anything else?

Code of Conduct

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

Do you want to work on this @HarshDeep61034!!

@tobySolutions sure i can fix that 👍


Just want know if you've contacted Spring officials to adopt ShedLock?

I believe this is an import piece missing. If yes, what's their answer?
Tks for the great work.

Hi, thanks. I have not contacted them, it never occurred to me. What do you think would be the biggest advantage if it were adopted?

FWIW, I concur - I've done a lot of work with Quartz in the past, and this project blows it out of the water for simple use cases. The combination of @Scheduled and @SchedulerLock is really powerful for microservices that need to trigger an idempotent cleanup or monitoring task on a regular basis, but don't want to waste resources or risk race conditions by running multiple instances of the task concurrently.

Your library do exactly what we need in our use case.  I have worked and looked at Quartz and it is far too complex/complete for what we really need!  We used Spring @Schedule because it was easy and straightforward to use.  Now i have to provide my tech leads and architects some arguments  (sustainability, stability) about this open-source lib.  Something i would not need to do if it was part or adopted or ref. by Spring.  Good job btw ;-)

+1 to include ShedLock to Spring internals

+1 to include ShedLock to Spring internals

I agree on the usefulness and simplicity of this library. If it had been part of Spring framework it would lend more credibility

agreed, at first glance i thought it was from Spring Framework itself.


about InternVL−Chat−V1.5 8 bit quantization

Hi all,
Thank you for your good works!
I noticed the InternVL−Chat−V1.5-Int8 inference is slow as mentioned in link.
Do you support using link to quantize it? so it may improve the inference speed?
If you support it, what I need to prepare and follow? new to the quantization.
Thank you again!

Hi, @tairen99
Thanks for your support to LMDeploy.
InternVL−Chat−V1.5-Int8 is a model that has been processed with bnb quantization, which can be executed by bitsandbytes. It helps decrease the GPU mem occupation. However, the inference speed is not impressive.
LMDeploy hasn't supported bnb quantization and we have plans to do that yet.
LMDeploy provides W8A8 quantization for LLMs rather than VLMs. The W8A8-quantized LLM model can be inferred by the PytorchEngine.
To sum up, LMDeploy doesn't currently support W8A8 quantization and inference for VLMs, including the InternVL series

Hi, @tairen99 Thanks for your support to LMDeploy.
InternVL−Chat−V1.5-Int8 is a model that has been processed with bnb quantization, which can be executed by bitsandbytes. It helps decrease the GPU mem occupation. However, the inference speed is not impressive.
LMDeploy hasn't supported bnb quantization and we have plans to do that yet.
LMDeploy provides W8A8 quantization for LLMs rather than VLMs. The W8A8-quantized LLM model can be inferred by the PytorchEngine.
To sum up, LMDeploy doesn't currently support W8A8 quantization and inference for VLMs, including the InternVL series

Hi @lvhan028,
Thank you for your clarification.


Register individual methods

register individual methods instead of registering all methods within a certain class
jwebserver.registerMethod(Method method);
jwebserver.registerMethod(Class class, String methodName, Class... methodSignature);

Forgot to close this, but yes, this has been implemented.


Added description attribute to cursor

Following https://www.python.org/dev/peps/pep-0249/#description

Basically replicated what https://github.com/BradRuderman/pyhs2/pull/22 was doing.

+1
This would be immensely helpful


Not working individually neither on docs site https://floating-vue.starpad.dev/

Every tooltip appears on the top-left corner of the window.
Tested in Arc Mac, Chrome Mac, Safari Mac, Safari ios.

Same here

The doc site should be fixed. It seems there is some breaking change between v1.1.1 and v1.2.0 of @floating-ui/dom. Need to investigate further


[FEATURE] No second confirm of buttun reset all

3 hours work disappears with many edited css.
Only tear I left.

Really sorry about that, this is now added as a feature as of v3.5.1


Passing "id" parameter on create service method allows for unrestricted "get" access to feathers-objection service

Hi guys,
I'm not sure if this is a bug or an intended feature. At face value it seems like a security issue.
My setup:
Feathers typescript app generated via Feathers CLI generator (V4.5.2)
Feathers-objection database adapter (V5.2.0)
Node 12.16.1
Postgres 12
Service endpoints created via Feathers CLI generator
The problem:
Using a REST client, I POST data to the service endpoint to create a row in the database. Everything works as intended.
However, if I POST data with an "id" parameter. It will create a new entry in the database as intended, but it will return the data of the user provided "id". (I define the primary key "id" is in the $beforeInsert hook of the Objection Model.)
Temporary workaround:
Sanitize input for "id" parameter before it reaches the database adapter
Where the potential bug was introduced:
I dug through the git history, and it looks like the logic was introduced between v0.4 and v0.5.  Line 220 to be exact.
Here is a link to the specific commit
Proposed fix:
Remove the logic that defines the "id" parameter for the _get method via the "data" variable, and only allow the value in the "row" variable to set the "id"
Risk levels:

If your primary keys are generated via UUIDs, then it's pretty hard for end users to guess the keys at face value. But if your PK are exposed via your app. Then bad actors can bypass any security logic in the "find" or "get" service methods by just using the "create" service method.
If the primary keys are sequentially incremented via the database, then a malicious actor can repeatably POST the service endpoint with incrementing id values, allowing them to scrape private data.
If you generate your primary key "id" parameter  in a "before" feathers hook, then it would just overwrite the user provided "id" parameter, and there is no security issue.

My question:
What was the logic in following line? (This is line 220 from the previous link)
     const id = typeof data[this.id] !== 'undefined' ? data[this.id] : row[this.id]
At face value the code above basically transforms a "create" service request into a leaky "get" service request.
Proposed fix:
Change line 220 (from the link) or line 485/488 (of v5.3.0)
 const id = row[this.id]
The code above  only returns the data from new entry created by the database.
Can someone double check my logic?

Hi @Leon-Sam , Thanks for the detailed info. that logic was applied since not all supported DBs support the Knex returning method.
Personally, I'm always adding validations on the input data, when it comes to an external REST call. that also prevents a client from sending the id field, which is a bad-practice in general.
When I do need to set the id field before the INSERT query happens, I use a before hook in the service hooks file.
I use $beforeInsert model hook mainly for setting the updatedAt, createdAt and setting a field with value from another field.

Could we then just take out the data[id] parts in https://github.com/feathersjs-ecosystem/feathers-objection/blob/master/src/index.js#L479 ?

I totally agree with the best practice of sanitizing the inputs. I just noticed the bug while was building out the core service methods and before I added any sanitization logic.
I did a bit of digging in Objection's API, It looks like they have InsertandFetch variants for their method calls. I did a quick hail mary and updated the method calls, and removed the logic that both daffl and I mentioned. It works great on my end with a Postgres instance.
But it's failing the test suite on " Composite PK Queries". (Line 537 on ./tests/index.test.js) It's probably the exact logic that  @dekelev  was mentioning with "returning" method.
Here's current diff of the commit that I'm working with. It's a bit late right now, I'm going to call it a night and figure this out once things at work calm down for me. Hopefully in a few days.

I've opened this pull-request regarding this.
It basically changes create to insert & get by returned row's fields by default.

Thanks @Leon-Sam , v5.3.2 was released to address this issue.


Upgrading the module causes problem with null_resource (Missing map element)

After updating to 4.37 and applying the plan, an error ocurred. Details below.
As far as I can see, it has nothing to do with the 4.37 upgrade as there were no changes to the null_resource. I think it is due to the fact that I didn't upgrade to 4.36 (and maybe the upgrade to 4.35 was also missing) and the problem was introduced in an earlier version.
However I do not fully understand what's going on here. Seems that the old resource had different keys in the trigger map (yes, I remember the change). And in consequence the null_resource is destroyed and executes the code which is not working as the new parameter is not in the map.
Seems that changing the null_resource ends with destroy/create this resource and then the trigger is fired. This was not intended.
In this case I fixed it with deleting the objects from the state file.
Plan:
  # module.gitlab_runner.module.gitlab_terraform_runner["subnet-12345"].null_resource.remove_runner must be replaced
-/+ resource "null_resource" "remove_runner" {
      ~ id       = "596161117442277782" -> (known after apply)
      ~ triggers = { # forces replacement
          + "runner_registration_token"               = (sensitive)
          - "script"                                  = ".terraform/modules/gitlab_runner.gitlab_terraform_runner/bin/remove-runner.sh" -> null
          - "secure_parameter_store_runner_token_key" = "prod-gitlab-ci-c-token" -> null
            # (2 unchanged elements hidden)
        }
    }

State:
$ terraform state show module.gitlab_runner.module.gitlab_terraform_runner[\"subnet-12345\"].null_resource.remove_runner
# module.gitlab_runner.module.gitlab_terraform_runner["subnet-12345"].null_resource.remove_runner:
resource "null_resource" "remove_runner" {
    id       = "596161117442277782"
    triggers = {
        "aws_region"                              = "eu-central-1"
        "runners_gitlab_url"                      = "https://gitlab.xxx.cloud"
        "script"                                  = ".terraform/modules/gitlab_runner.gitlab_terraform_runner/bin/remove-runner.sh"
        "secure_parameter_store_runner_token_key" = "prod-gitlab-ci-c-token"
    }
}

Result:
│ Error: Missing map element
│
│   on .terraform\modules\gitlab_runner.gitlab_terraform_runner\main.tf line 43, in resource "null_resource" "remove_runner":
│   43:     command    = "curl -sS --request DELETE \"${self.triggers.runners_gitlab_url}/api/v4/runners\" --form \"token=${self.triggers.runner_registration_token}\""
│     ├────────────────
│     │ self.triggers is map of string with 4 elements
│
│ This map does not have an element with the key "runner_registration_token".

It is the intended behavior of Terraform. A migration guide should be added as this breaks any automatic upgrade from any version <  4.36 which included the compatibility breaking commit to version >= 4.36
A fix that could be transparent to users without having to mess with the state is to have version 4.36.1 created as a transition to newer versions which corrects this by having the old key in the map:
triggers = {
    secure_parameter_store_runner_token_key = data.aws_ssm_parameter.current_runner_registration_token.value
    aws_region                              = var.aws_region
    runners_gitlab_url                      = var.runners_gitlab_url
    runner_registration_token               = data.aws_ssm_parameter.current_runner_registration_token.value
  }

Question to @npalm: Do we really need the null_resource? If I understand it correctly it removes the Runner as soon as the module is destroyed. We could also document this in a special section of the documentation (what to do if the Runner is removed) and remove the null_resource. Any change to the resource as described above, will always remove the Runner which is not intended.
If I destroy the module, all resources are destroyed, but the Runner will still be shown in GItlab which shouldn't be a problem.

Well, it depends. If you did the registration manually, which is now is as stated here, then its okay.

On my list, try to dig in next days

@npalm any news on this? We ran into this problem as well. While trying to understand the problem, we did wonder whether https://github.com/npalm/terraform-aws-gitlab-runner/blob/6960f3bb794ca8279932f43cc98723c45a84ba14/main.tf#L32 should maybe depend on data.aws_ssm_parameter instead.
But to fix it for now, does manually modifying the terraform state maybe mitigate the problem? How did you resolve it @kayman-mk ?

@vgropp you need to remove the null resource completely. It doesn't affect anything really, when you do the terraform apply, the null resource will be created with the new config:

terraform state list will show you everything in the state, you need to look for the "remove_runner" null resource.
terraform state rm module.<runners-module-name>.null_resource.remove_runner.

I thought about that. Getting rid of the whole resources as it might accidentially remove the runner when applying a new version of the module. The downside is that the runner is not removed if the module is destroyed. But to be honest: I will never remove this module. I am totally satisfied how everything is working.
@npalm Shall we get rid of the whole null_resource? The better option would be to deregister the runner on shutdown.

Agree we should see to remove the null resources. The only time I create / destroy is for testing. That logic can be complete moved to the examples.


Updates to support standard .aws/credentials file

The newer version of the AWS Credentials uses the common file at ~/.aws/credentials.  This is described in more detail here http://blogs.aws.amazon.com/security/post/Tx3D6U6WSFGOK2H/A-New-and-Standardized-Way-to-Manage-Credentials-in-the-AWS-SDKs
This updates the ec2 plugin to support this file and its INI format. In addition it adds support for profiles if they are defined in the credentials file. The profile can be set via a config variable in the file or via the command line,
knife[:aws_profile] = "default"

$ knife ec2 --aws-profile default ...

Hi. I am an automated pull request bot named Curry. There are commits in this pull request whose authors are not yet authorized to contribute to Chef Software, Inc. projects or are using a non-GitHub verified email address. To become authorized to contribute, you will need to sign the Contributor License Agreement (CLA) as an individual or on behalf of your company. You can read more on Chef's blog.
GitHub Users Who Are Not Authorized To Contribute
The following GitHub users do not appear to have signed a CLA:

@pallan

Please sign the CLA here.

Hi. Your friendly Curry bot here. Just letting you know that all commit authors have become authorized to contribute. I have added the "Signed CLA" label to this issue so it can easily be found in the future.

:+1:

Updated file reading code based on feedback

Is there anything additional that is needed to get this PR approved and merged?

ping @NimishaS @juliandunn for review please :)

paging @mattray @ryancragun

:+1:


Packagist Mirror not always up to date

Not much detail here (sorry!), but I've noticed a few times on our work instance that the packages mirrored from Packagist don't always have up to date metadata. I don't think it's all packages, and there is no correlation between release dates of the packages
Purging the json directories forces it to download the latest versions again, but this isn't ideal.
Running latest stable via docker-compose

Yes, metadata is not being downloaded live so there may be a slight delay. At present, this is done by the cron that runs every 6 minutes. Perhaps there is a problem with it in the docker-compose :thinking:
You should be able to check cron logs in var/log/cron.log

The delay is fine, and it does pick up newer packages. It's as if the cron fails randomly, and doesn't pick up any changes during that period. Then later runs don't look back either (I think this is because it uses the RSS feeds to detect recent changes? - Maybe a packagist fault?)
There is no cron.log

So, now docker cron will log output to var/log/cron.log #330.
As for the problem itself, there are now two options: either this rss had a problem or our command in cron :thinking:

Should there be a failsafe in case of RSS problems on Packagist? (Doesn't the RSS feed only list recent releases?)
Maybe a daily/weekly refresh of all the metadata for the mirror?

RSS feed is only for new releases but we refresh metadata fully every 6 minutes along with the provider-includes.
However it's possible that download operation failed, this will not show up in logs

Just created https://github.com/composer/packagist/issues/1176 on their side.
It looks like the URL used by repman hasn't updated since September last year.

I see:
  <channel>
    <title>New Releases</title>
    <description>Latest releases of all packages.</description>
    <pubDate>Tue, 06 Apr 2021 09:38:38 +0000</pubDate>
    <generator>Packagist</generator>
    <link>https://packagist.org/explore/</link>
    ...

I think they fixed it shortly after I created the issue, but no reply yet

This still happens frequently for us.

I would like to help solve this problem. I discovered one thing:
    public function getAsyncContents(string $url, array $headers, callable $onFulfilled): void
    {
        ($this->queue)('get', $url, $headers)
            ->then(function (ResponseInterface $response) use ($onFulfilled): void {
                $stream = $response->getBody()->detach();
                if (!is_resource($stream)) {
                    return;
                }
                $onFulfilled($stream);
            });
    }

I'm not sure, but it seems to me that if there is a mistake when downloading it will be ignored? I wonder, maybe some logger could add there.

This might not be a packagist issue, but the cron itself.
I just attached to the cron container, and the log shows:
bash-5.0# tail -f /app/var/log/cron.log
crond: crond (busybox 1.31.1) started, log level 8
crond: crond (busybox 1.31.1) started, log level 8
crond: crond (busybox 1.31.1) started, log level 8
crond: crond (busybox 1.31.1) started, log level 8
crond: crond (busybox 1.31.1) started, log level 8
crond: crond (busybox 1.31.1) started, log level 8
crond: crond (busybox 1.31.1) started, log level 8
crond: crond (busybox 1.31.1) started, log level 8
crond: crond (busybox 1.31.1) started, log level 8
crond: crond (busybox 1.31.1) started, log level 8

crontab is correct too.
However, the security update-db doesn't appear to have run in weeks, because I just ran it manually and it flagged a lot of packages. The previous notification I have for a vulnerable package that hasn't been fixed was 5 weeks ago when repman was last restarted.

Thanks for update. In that case, we will check the docker configuration. (cc @karniv00l)

@giggsey try restarting containers (docker-compose down && docker-compose up -d)
I've just checked and mine logs look good (about 1 hour span):
tail -f var/log/cron.log
crond: crond (busybox 1.31.1) started, log level 8
crond: USER root pid   8 cmd /app/bin/console repman:proxy:sync-metadata
crond: USER root pid  21 cmd /app/bin/console repman:proxy:sync-releases
crond: USER root pid  34 cmd /app/bin/console repman:proxy:sync-metadata
crond: USER root pid  49 cmd /app/bin/console repman:proxy:sync-releases
crond: USER root pid  56 cmd /app/bin/console repman:proxy:sync-metadata
crond: USER root pid  63 cmd /app/bin/console repman:proxy:sync-releases
crond: USER root pid  70 cmd /app/bin/console repman:proxy:sync-releases
crond: USER root pid  71 cmd /app/bin/console repman:proxy:sync-metadata
crond: USER root pid  84 cmd /app/bin/console repman:proxy:sync-releases
crond: USER root pid  91 cmd /app/bin/console repman:proxy:sync-metadata
crond: USER root pid  98 cmd /app/bin/console repman:proxy:sync-releases
crond: USER root pid 105 cmd /app/bin/console repman:proxy:sync-metadata
crond: USER root pid 112 cmd /app/bin/console repman:proxy:sync-releases
crond: USER root pid 119 cmd /app/bin/console repman:proxy:sync-metadata
crond: USER root pid 126 cmd /app/bin/console repman:proxy:sync-releases
crond: USER root pid 133 cmd /app/bin/console repman:proxy:sync-metadata
crond: USER root pid 140 cmd /app/bin/console repman:proxy:sync-releases
crond: USER root pid 147 cmd /app/bin/console repman:proxy:sync-releases
crond: USER root pid 148 cmd /app/bin/console repman:proxy:sync-metadata
crond: USER root pid 149 cmd /app/bin/console repman:security:update-db
crond: USER root pid 178 cmd /app/bin/console repman:proxy:sync-releases
crond: USER root pid 185 cmd /app/bin/console repman:proxy:sync-metadata

Restarted the entire stack (down + up like you suggested), and still no luck.
Went into the container again, and can crond manually with debug level 0, still nothing.
Changed the crontab file, and it started working. It continues to work even after I revert the crontab (and restarting the cron container).
Will monitor for a while.

    public function getAsyncContents(string $url, array $headers, callable $onFulfilled): void
    {
        ($this->queue)('get', $url, $headers)
            ->then(function (ResponseInterface $response) use ($onFulfilled): void {
                $stream = $response->getBody()->detach();
                if (!is_resource($stream)) {
                    return;
                }
                $onFulfilled($stream);
            });
    }

On our installation, we always get a BufferedResponse, which does not implement detach in any usable way: https://github.com/reactphp/http/blob/1.x/src/Io/BufferedBody.php#L44
Therefore, all request are always silently skipped.

The issue described by @SiebelsTim can be fixed by downgrading react/http back to 1.5.0.


Unable to get property 'getPlacePredictions' of undefined or null reference

I am seeing this bug periodically with this component.  We are using it in production.
The google maps object must have been loaded up because I see that you throw an error in the componentDidMount function if it is not in the window.
Is it possible that the this keyword points to a reference other than the Geosuggest object?
The bug has occurred in the following browsers:

Edge 13
Chrome Mobile 34
Chrome 49
IE 10
Chrome Mobile 48

Below is the stack trace:
~/react-geosuggest/module/Geosuggest.js in searchSuggests at line 233:0

        options.componentRestrictions = {
          country: this.props.country
        };
      }
      this.autocompleteService.getPlacePredictions(options, function (suggestsGoogle) {
        _this4.updateSuggests(suggestsGoogle || []); // can be null
        if (_this4.props.autoActivateFirstSuggest) {
          _this4.activateSuggest('next');
        }

~/react-geosuggest/module/Geosuggest.js in showSuggests at line 292:0

     */
  }, {
    key: 'showSuggests',
    value: function showSuggests() {
      this.searchSuggests();
      this.setState({ isSuggestsHidden: false });
    }
    /**
     * Hide the suggestions

~/react-geosuggest/module/Geosuggest.js in apply at line 152:0

  }, {
    key: 'onInputFocus',
    value: function onInputFocus() {
      this.props.onFocus();
      this.showSuggests();
    }
    /**
     * When the input gets blurred
     */

I suppose your PR was a solution to this issue already?

Yes, this can be closed now

No, #128  was not a fix for this issue.  This bug is unrelated.

Do you have some test case? I cannot replicate this…

It's been difficult to reproduce.  I am looping in my colleague @olegpesok because I know he has been working on it

@ro-ka Having trouble reproducing with react-test-utils. But I can with the example project in your source:
If I set the following 3 options on the Geosuggest component.
          initialValue='123 Test location'
          autoFocus={true}
          autoActiveFirstSuggest={true}

Full example:
        <Geosuggest
          initialValue='123 Test location'
          autoFocus={true}
          autoActiveFirstSuggest={true}
          fixtures={fixtures}
          onFocus={this.onFocus}
          onBlur={this.onBlur}
          onChange={this.onChange}
          onSuggestSelect={this.onSuggestSelect}
          location={new google.maps.LatLng(53.558572, 9.9278215)}
          radius="20" />

The onInputFocus function fires BEFORE componentDidMount is executed. This causes the "Cannot read property 'getPlacePredictions' of undefined" error.

Just released in version 1.24.0.

Since the 1.24.0, I get this error :
Uncaught TypeError: Cannot read property 'getPlacePredictions' of undefined
    searchSuggests @ Geosuggest.js:298
    showSuggests @ Geosuggest.js:388
    Geosuggest._this.onAfterInputChange @ Geosuggest.js:78
    invokeFunc @ index.js:148
    trailingEdge @ index.js:196
    timerExpired @ index.js:183

:)

Referencing #172 as this is also connected to server-side rendering. Works fine without.

@dragma how can the component render on the client when server-side rendering fails?

I managed to get this error by doing this trick :

I managed to get this error by doing this trick :
if (typeof window !== 'undefined') {
    return <Geosuggest
        className={classes}
        inputClassName="form-control"
        country="fr"
        fixtures={fixtures}
        types={['(cities)']}
        onSuggestSelect={suggest => console.log('onSuggestSelect', suggest)}
        autoActivateFirstSuggest
        // onSuggestNoResults
        // onChange
    />;
}

A bad idea at least.

I've been trying to reproduce this. For all I can tell, the issue discussed here is a result of the workaround you posted above.

I ran into this error today, and what fixed it for me was making sure <Geosuggest /> only rendered after the Google Maps API was instantiated. I'm attaching a <script> tag to the page with a 'load' event listener, then returning a promise that I then use to render the component. Hope this helps someone.

@richcsmith im sorry can i have a code example? cant figure out how to hook up the load event listener to the react side of stuff.

@joevo2 here's a quick and dirty example based on some old code I wrote to solve this:
/* utils/window.js */
export function loadScriptAsync(src) {
  const script = window.document.createElement('script')
  script.src = src
  script.async = true
  script.defer = true

  const promise = new Promise((resolve, reject) => {
    script.addEventListener('load', (event) => {
      resolve(event)
    }, false)

    script.addEventListener('error', (error) => reject(error))
  })

  window.document.body.appendChild(script)
  return promise
}

/* lib/google.js */
import { loadScriptAsync } from 'utils/window'

const googleAPIKeys = {
  development: GOOGLE_MAPS_DEV_KEY,
  staging:     GOOGLE_MAPS_STAGING_KEY,
  production:  GOOGLE_MAPS_PROD_KEY,
}

const getGoogleMapsAPIUrl = key => `https://maps.googleapis.com/maps/api/js?key=${key}&libraries=places`
export const initGoogleMapsAPI = () => loadScriptAsync(getGoogleMapsAPIUrl(googleAPIKeys[env]))

/* components/Map/Map.jsx */
import GoogleMap from 'google-map-react'
import Icon from 'components/Icon/Icon'
import { initGoogleMapsAPI } from 'lib/google'

export default class Map extends React.Component {

  state = {
    gMapsLoaded: false,
  }

  componentDidMount = () => {
    if (!window.google) {
      initGoogleMapsAPI().then(() => {
        this.setState({ gMapsLoaded: true })
      })
    }
  }

  render = () => {
    if (!this.state.gMapsLoaded) {
      return null
    }

    const { lat, lng } = this.props.address
    const coordinates = {
      lat: parseFloat(lat),
      lng: parseFloat(lng),
    }

    return (
      <GoogleMap center={coordinates} zoom={14}>
        <Icon name="location-pin" {...coordinates} />
      </GoogleMap>
    )
  }
}

@richcsmith thanks! thats interesting, basically creating the script on react side hmm... Would something like prefetch on the html script tag work?

@joevo2 I think it would! In my project, I had several components that each depended on the Google Maps API in different areas on the app (sometimes, on the same page), so I had to check for its existence before attempting to load it on certain pages.


No module named 'safetensors'

I tried running the fast stable diffusion, but it says there's no module named 'safetensors'. How do I fix this?

Did you do a clean install after the latest commit?  That fixed this error for me, just delete your sd folder (take out outputs or anything you need first ofc) then re install from the latest notebook.


Token expire issue after 10 min. How to get token without refresh?

After every 10 min token is getting expired and giving 401, but it is not generating new tokens.
But after page refresh, a new token is generated and it is working fine. Is there any way to get a new token without page refresh. If possible any working example is really appreciated.
versions:
"powerbi-client-react": "^1.3.5",
"react": "^18.0.0",
node: v14.18.1
npm version: 6.14.15
function getEmbeddedComponent() {
    return function (embeddedReport) {
        window.report = embeddedReport;
    };
}

         <PowerBIEmbed
                        embedConfig={{
                            type: 'report',
                            id: reportId,
                            embedUrl: `url here`,
                            accessToken: token,
                            tokenType: models.TokenType.Embed,
                        }}
                        cssClassName={'report-style-class'}
                        getEmbeddedComponent={getEmbeddedComponent()}
                    />

If you have an instance of the report you can follow the example here to add your own token refresh logic.

I added logic to make token API call after a certain interval of time, which resolved my issue.


Siri commands

I apologize if this info is somewhere already (I looked but didn't find it)...
I am able to turn my TV on and off via Siri, but is it also possible to use Siri to change inputs or channels?  If so, how would I go about switching named inputs, as well as channels, via Siri?  I tried a few logical commands but didn't work.
Thanks!  Great plugin, btw!!

I have been unable todo that personally as I was curious about it also, a few searches on reddit and stuff It seems Siri does not support it.
One guy mentioned making a scene for different channels then telling Siri to activate the Netflix Scene for example.


update cleezy page ui

match url shortener page with the style of user manager
show date of creation on table now
show alias as a hyperlink to the url, with the actual url shown below

Before:

After:

removed bluebird line


feat!: refactoring project structure and adding persistent DBs

What this PR changes/adds
This PR introduces a persistent DB for each connector, as well as a refactoring of the project structure to be more in line with other EDC related projects.
This PR will change the way how the extensions are build and will break previous build processes.
Breaking changes

Extensions are now in the /extensions folder. Therefore, the gradle build commands have changed (see /settings.gradle.kts). These Extensions should not be build manually. Rather, they should be used via a launcher.
Launchers are now in the /launchers folder. This is the main application that is build and run. (previously in /BlockchainCatalog/blockchain-catalog-prosumer)
Databases have to be initialized manually. The corresponding .sql files are in the /resources/sql folder.

@robertschubert
This is the refactoring of the project structure I talked about. Please be aware that this probably will need changes in your build processes and also require databases now. (Although this can be disabled by just don't load db related extensions in the launchers build.gradle.kts file, so we could have a launcher without persistent DBs if needed)


Some fixes for Mac OS X

Also added a troubleshooting section.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Patrick Angeles seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Column header height and row height is not saved in the layout

v1.18.*
Steps to reproduce:

Open a table
Adjust column header height
Adjust rows height
Save layout
Refresh browser page
Open the same table
Apply saved layout

Expected results: row height and columns header height should be saved.
Actual results: row height and columns header header height is not saved.

This issue has been mirrored in Jira: https://reddata.atlassian.net/browse/GROK-16195

works on v1.19 and v1.20


Do not panic in hidden layer

Coverage decreased (-0.09%) to 90.163% when pulling 99996c1e9bfa6ac611e499e3b64957ec4be1a1cc on rel_0506 into d99a61c34de693ea7b9a5a64778c3613fb7f3d00 on master.


fix some typos

@fujita:
The checks failed due to clippy warnings like
error: called `Option::take()` on a temporary value
  --> daemon/src/config/validate.rs:53:13
   |
53 |             self.global.as_ref().take().ok_or_else(|| {
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.global.as_ref()`
   |
   = note: `-D clippy::needless-option-take` implied by `-D warnings`
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_option_take

and some more (21 in total).
An attempt to fix the causes of those warnings is made in https://github.com/osrg/rustybgp/pull/187, so PR #187 should probably be handled before other PRs are merged.

thanks!


[Bug tracker] New deployed API

A new API is deployed to fix the following issues:

performance
NSFW content

This new API is a temporary solution as we can't deploy on the productionready.io domain.
API URL: https://realworld-temp-api.herokuapp.com/api
I chose not to use an existing backend implementation but to create a new one as a starter for the incoming V2.
Please add a comment here if you find any bugs while using this new API.
Bug tracker:

[ ] GET /api/articles/feed doesn't retrieve data as expected
[x] GET /api/articles/:slug/comments response doesn't match the specs format
[ ] article related tags aren't deleted on cascade when an user deletes an article

@geromegrignon thanks for the temporary API! It seems that login with incorrect credentials fails with a CORS error instead of the expected response.

@geromegrignon thanks for the temporary API! It seems that login with incorrect credentials fails with a CORS error instead of the expected response.

Hello, I just fixed it.

Cool! However it doesn't follow the spec. As is, it breaks the crizmas-mvc implementation. I think the response should be something like:
{
  "errors": {
    "email or password": [
      "are incorrect"
    ]
  }
}

@raulsebastianmihaila fixed too.
I chose to name the key credentials :
{
  "errors": {
    "credentials: [
      "are incorrect"
    ]
  }
}

@geromegrignon Hi , a follow-up from morning's 401 authorized issue .

What happened :

It shows 401 Unauthorized :

Steps to reproduce :

a. register & login & fetch the feed , so far so good
b. after sometime(I guess JWT expiration time ?) , when trying to refresh the feed , will get the above error
Token is sent in header :

@geromegrignon Hi , a follow-up from morning's 401 authorized issue .

What happened :

It shows 401 Unauthorized :

Steps to reproduce :

a. register & login & fetch the feed , so far so good
b. after sometime(I guess JWT expiration time ?) , when trying to refresh the feed , will get the above error . If cleaning the token in local storage, then it will work again.
Token is sent in header :

I changed the token duration from 100 minutes to 7 days.
It won't fix the problem but will give me time to prioritize tasks.
I'm not used to developing backend apps and being more used to consume auth on the frontend side than producing one!

@geromegrignon Hi , a follow-up from morning's 401 authorized issue .

What happened :

It shows 401 Unauthorized :

Steps to reproduce :

a. register & login & fetch the feed , so far so good
b. after sometime(I guess JWT expiration time ?) , when trying to refresh the feed , will get the above error . If cleaning the token in local storage, then it will work again.
Token is sent in header :

I changed the token duration from 100 minutes to 7 days.
It won't fix the problem but will give me time to prioritize tasks.
I'm not used to developing backend apps and being more used to consume auth on the frontend side than producing one!

yet another producer-consumer problem LOLL

changed the token duration to 60 days to match the current deployed API :
def generate_jwt
    JWT.encode({ id: id,
                 exp: 60.days.from_now.to_i },
               Rails.application.secrets.secret_key_base)
  end

@geromegrignon find a issue(should be the last one..)  here. For comment :
https://github.com/gothinkster/realworld/tree/master/api#single-comment

Here backend should return whole author object instead of authorId.

@Allianzcortex fixed too. Thanks for reporting it!

@geromegrignon another small issue here :  In old implementation , when we retrieve the feed :  we can get min(articleCount,500) value which can help us do pagination

And currently articles count is only the count we return

@geromegrignon Thank you for providing this api endpoints! I found a bug about api/articles/{slug}/favorite:
When request this api, tagList in the returned article content become an object array instead of strings array:

Hey @HoPGoldy, thanks for reporting it.
It should be fixed by now (for BOTH POST and DELETE on this endpoint).

@geromegrignon seems the register function is losing the temper now ?

@Allianzcortex Thanks!
I made some refactoring to open-source the API source code soon and it resulted in a new bug.
It's now fixed!

@raulsebastianmihaila and @Allianzcortex don't waste your time to test conduit.productionready.io for now.
There are some bugs :
conduit.productionready.io being used on an Heroku project we doesn't own, we had to make a redirection through realworld.io
Such a redirection results into cors errors and query params not passed with the redirection.

The API now works as expected, I created a PR on repositories using the temporary API.


Fixes #85 - adds support for case sensitive page names

See discussion in #85. This adds the ability for page names to resolve case-sensitively, but only when the RAW_PAGE_NAMES configuration option is set.

Open to suggestions here - I do think that passing a raw_page_names argument into those utility functions all over the place does get a bit inconvenient, but I'm not sure of a better way to do it without creating a circular import.

Thank you for the work! From the first read through I have to say it looks good.
Will look into the details on Friday (unfortunately got a full day today and tomorrow).

I have adopted your commits and worked a little on them. Please double check that the branch feature/retain-page-name-case does what you want and solves $85 for you.
Details: With moving the functions get_filename, get_attachment_directoryname and get_pagename into otterwiki.helper they can access app.config and don't need the extra argument anymore.
I've renamed the config setting to RETAIN_PAGE_NAME_CASE .. this sounds less "raw" to me.

Thanks for double checking and for providing the patch.
Will add this to the next release (this week).
(I forgot to send this yesterday)


wrong generated types for ActionData

Describe the bug
I have an async method that returns a Union of types A and B (they might or might not have something in common). If I do
const a = await asyncFun()
return a;

then typings on ActionData will be correct (typeof ActionData will be {typeof A & AllUndefined<B> | typeof B & AllUndefined<A>), but if I do
return await asyncFunc()
then all typings will be wrong (typeof ActionData will be {} | null)
Reproduction
1- clone this  repository
2- run npm i
3- run npm run check
4- at this step everything should be fine, goto src/routes/user/todos and the type of ActionData is
{
    success?: undefined;
    result?: undefined;
    message: ErrorMessage;
    error: {
        title?: string[] | undefined;
        description?: string[] | undefined;
        is_done?: string[] | undefined;
    };
} | {
    success?: undefined;
    result?: undefined;
    message: ErrorMessage;
    error: {
        title: string;
        description: string;
        is_done: boolean;
    };
} | {
    message?: undefined;
    error?: undefined;
    success: true;
    result: Todo;
} | null

5- goto src/routes/user/todos/+page.server.ts and uncommend the lines 47 to 54 where we immediatly return the awaited async funtion (I've also described the problem in the comments of mentioned lines) and comment lines 36 to 44 where we first store it in a variable and then return the variable.
6- run npm run check again.
7- now goto the corresponding +page.svelte (src/routes/user/todos/+page.svelte) and see the type of ActionData. it is {} | null now!
*** this problem exists in src/routes/signup as well (but not in src/routes/login).
Logs
No response
System Info
System:
    OS: Linux 5.15 Ubuntu 22.04.3 LTS 22.04.3 LTS (Jammy Jellyfish)
    CPU: (16) x64 AMD Ryzen 7 4800H with Radeon Graphics
    Memory: 10.25 GB / 15.33 GB
    Container: Yes
    Shell: 5.1.16 - /bin/bash
  Binaries:
    Node: 18.16.1 - ~/.nvm/versions/node/v18.16.1/bin/node
    npm: 9.5.1 - ~/.nvm/versions/node/v18.16.1/bin/npm
  Browsers:
    Chrome: 115.0.5790.170
  npmPackages:
    @sveltejs/adapter-auto: ^2.0.0 => 2.1.0
    @sveltejs/kit: ^1.20.4 => 1.22.4
    svelte: ^4.0.5 => 4.1.2
    vite: ^4.4.2 => 4.4.9

Severity
serious, but I can work around it
Additional Information
No response

Haven't looked closely yet, but it may be related to (or even a duplicate of) #7004

@dummdidumm Thanks for your response, I've looked into the linked issue, but I did explicitly type the return type of my function (in the provided repo).

Just commenting again to bring your attention back to this very annoying bug >_< love ya


Adding footer column in page

@es-entando assign this issue to me

@ritishbhardwaj could you please clarify the issue? And you can always submit a PR even if an issue is not already created. :)

Footer in the sense that i can create a column at the bottom of the webpage where we usually put all the resources of the company like 'careers', 'sources', 'link to news letter' , 'github, youtube, facebook links of web page owner', and etc.like that.
I hope that may be it is cleared now.

@ritishbhardwaj A footer is usually either a shared web content you can place in a page or an HTML fragment you can include in a page template. See the tutorials here: https://developer.entando.com/v7.0/tutorials/compose/content-tutorial.html#create-content or https://developer.entando.com/v7.0/tutorials/compose/widgets-fragments.html.


Cordova - Multiple dex files define

I like to use Fibebase Analytic in my cordova project, while trying to build android below error is thrown. Im using jdk 1.8
Please let em know what is the issue and how to resolve it. Thanks
Error: cmd: Command failed with exit code 1 Error output:
Dex: Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/firebase/FirebaseException;
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/firebase/FirebaseException;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:591)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:546)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:528)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)

I got this error too before. From what I learn, I got this error because I use cordova plug-in that use different android support and play services version. I solve this error by open build.gradle in /platforms/android, and add this code after buildscript :
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
all*.exclude group: 'com.google.android.gms', module: 'play-services'
}
I don't know if this good solution since build.gradle is auto generated by cordova, but by adding that code cordova forced to use android support and play services that I set in configurations. Hope it help you.

I was running into this too. This should be fixed in the latest commit that pulled in the fix.

I also face same error.
On Aug 19, 2016 4:25 AM, "Chuckv01"<EMAIL_ADDRESS>wrote:

I was running into this too. This should be fixed in the latest commit
that pulled in the fix.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/arnesson/cordova-plugin-firebase/issues/32#issuecomment-240881400,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AICOjaYJLSMVKa3_Zd2gOeobVJhRlwGpks5qhOLSgaJpZM4JjmlA
.

are you still getting this with cordova-plugin-firebase 0.1.10 ?

I still face the same error with cordova-plugin-firebase 0.1.18? Any ideas, how do we fix this? Tried a workaround suggested by @devthree, but didn't work. I still get the exact same exception as mentioned in this issue.

I encountered the same issue after integrating https://github.com/mauron85/react-native-background-geolocation into my project. If you're using gradle you can check the dependency tree with something like gradle -q dependencies app:dependencies. I noticed that where firebase was included it being set to version 9.8.0.
My solution was to modify my app's dependency compile of com.google.android.gms:play-services-gcm from version 9.0.0 to 9.8.0.
So in my app/build.gradle dependecies...
dependencies {
...
compile ('com.google.android.gms:play-services-gcm:9.8.0')
}

Hopefully this information will assist.


Adding Method inverse_transform() signature

Hi, I have added the inverse_transform() class methods for the BaseTransformer. What I understood is the method from Sklearn library is overloaded with different signature.
I need more help to understand if my assumption is correct. Also I see all the other preprocessing classes needs to have this method added.

@RahulDubey391 Thank you for your efforts. The main thing missing is the implementation of inverse_transform using snowpark dataframes.
Our codebase has a system for autogenerating scikit-learn wrapper classes that allow users to execute fits/transforms/etc with snowpark dataframes or pandas dataframes. For inverse_transform we would like to implement it in this way, and add it to wrapper classes if the underlying scikit-learn base estimator has an inverse_transform method. Take a look at the codegen/ directory for the templates and autogen logic. The autogenerated code is built via bazel.
We realize this could be daunting, but we'd like to support you if you are still interested in contributing. We could greatly improve the contribution guide in CONTRIBUTING.md.
The other thing about inverse_transform is that when using snowpark dataframes for transformations, the input columns are retained by default. The user may want to discard them and can set drop_input_cols=True. But by default since the input columns are retained, there is limited utility for inverse_transform.
Hope this makes sense, let us know if you have questions.

@RahulDubey391 Thank you for your efforts. The main thing missing is the implementation of inverse_transform using snowpark dataframes.
Our codebase has a system for autogenerating scikit-learn wrapper classes that allow users to execute fits/transforms/etc with snowpark dataframes or pandas dataframes. For inverse_transform we would like to implement it in this way, and add it to wrapper classes if the underlying scikit-learn base estimator has an inverse_transform method. Take a look at the codegen/ directory for the templates and autogen logic. The autogenerated code is built via bazel.
We realize this could be daunting, but we'd like to support you if you are still interested in contributing. We could greatly improve the contribution guide in CONTRIBUTING.md.
The other thing about inverse_transform is that when using snowpark dataframes for transformations, the input columns are retained by default. The user may want to discard them and can set drop_input_cols=True. But by default since the input columns are retained, there is limited utility for inverse_transform.
Hope this makes sense, let us know if you have questions.

Thanks a lot @sfc-gh-thoyt for the guidance. Yes I am still interested in contributing and would like to proceed further to explore codegen. I'll go through it and will raise doubts if any comes up.


[tool_crash] FileSystemException: Creation failed, OS Error: No such file or directory, errno = 2

Command
flutter --no-color --no-version-check precache

Steps to Reproduce

flutter channel beta

Logs
FileSystemException: Creation failed, OS Error: No such file or directory, errno = 2
#0      _Directory.createSync (dart:io/directory_impl.dart:129:7)
#1      ForwardingDirectory.createSync (package:file/src/forwarding/forwarding_directory.dart:20:16)
#2      ErrorHandlingDirectory.createSync.<anonymous closure> (package:flutter_tools/src/base/error_handling_io.dart:428:22)
#3      _runSync (package:flutter_tools/src/base/error_handling_io.dart:590:14)
#4      ErrorHandlingDirectory.createSync (package:flutter_tools/src/base/error_handling_io.dart:427:12)
#5      EngineCachedArtifact.updateInner (package:flutter_tools/src/cache.dart:954:19)
<asynchronous suspension>
#6      CachedArtifact.update (package:flutter_tools/src/cache.dart:848:5)
<asynchronous suspension>
#7      Cache.updateAll (package:flutter_tools/src/cache.dart:715:9)
<asynchronous suspension>
#8      PrecacheCommand.runCommand (package:flutter_tools/src/commands/precache.dart:171:7)
<asynchronous suspension>
#9      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1350:27)
<asynchronous suspension>
#10     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#11     CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#12     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:348:9)
<asynchronous suspension>
#13     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#14     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:294:5)
<asynchronous suspension>

[✓] Flutter (Channel beta, 3.16.0-0.4.pre, on macOS 14.0 23A344 darwin-arm64, locale en-US)
    • Flutter version 3.16.0-0.4.pre on channel beta at /Users/csells/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 379c3f4d37 (3 days ago), 2023-11-01 11:34:49 -0700
    • Engine revision abdaabc6dc
    • Dart version 3.2.0 (build 3.2.0-210.4.beta)
    • DevTools version 2.28.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/csells/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    ✗ Unable to get list of installed Simulator runtimes.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.84.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.74.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 14.0 23A344 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 119.0.6045.105

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Flutter Application Metadata
No pubspec in working directory.

There's a similar tool crash issue open https://github.com/flutter/flutter/issues/98066, but some of the log entries in this issue are different from the linked one, so will keep this issue open for team's attention.
/cc @christopherfujino

assigning myself to investigate and triage

Closing as not reproducible


Backend should know file content type

@jnicklas Hey Jonas, thanks for a great gem!
The only thing I dislike right now, is the need to manually take care of Content-Type. What if backend could figure it out for us? We could store it in S3 or grab from the file system without the need to save it to the database or provide in the helper options. Here is the simplest code to make it work, just a proof of concept. What do you think?

Sorry, I'm being harsh on your PRs and issues @div ;) I don't like this either :(
I'd rather keep backends as simple as possible. I think the current system works just fine. Storing it in the DB is just more flexible, and probably for many backends, actually faster.


Error Setting Up Using the Documentation

After following the example in documentation, I tried using tinker to test and came up with this error:
Spatie/EventProjector/Exceptions/InvalidStoredEvent with message "Failed to unserialize an event with class App/Events/CompanyCreatedEvent on stored event with id "7". Are you sure that event class exists?"
The only thing that seems different from the example is that I'm not using uuid, rather a field from the request data. The field is unique for each entry and is provided by the user, hence can be used to query the DB for a specific entry.
Here is the CompanyCreatedEvent class:
`class CompanyCreatedEvent implements ShouldBeStored {
use Dispatchable, InteractsWithSockets, SerializesModels;
/**
 * @var array
 */
public $companyAttributes;

/**
 * Create a new event instance.
 *
 * @param array $attributes
 */
public function __construct(array $attributes) {
    $this->companyAttributes = $attributes;
}

}`
and here is the Company model:
`
class Company extends BaseModel {
use SoftDeletes;
protected $fillable = ["name", "domain", "slogan", "phones", "logo", "is_enabled"];
protected $dates = ["deleted_at"];
protected $casts = ["is_enabled" => "bool"];

/**
 * Returns the customer phone numbers as an array
 *
 * @return array
 */
public function getPhonesArray() {
    return explode(",", $this->phones);
}

/**
 * @param array $attributes
 * @return Company
 */
public static function createWithAttributes(array $attributes) {
    event(new CompanyCreatedEvent($attributes));

    return static::domain($attributes["domain"]);
}

public function remove() {
    event(new CompanyDeletedEvent($this->id));
}

/**
 * @param array $attributes
 * @return Company
 */
public static function updateWithAttributes(array $attributes) {
    event(new CompanyUpdatedEvent($attributes));

    return static::find($attributes["id"])->first();
}

/**
 * @param string $domain
 * @return Company
 */
public static function domain(string $domain) {
    return static::where("domain", $domain)->first();
}

}
`

Similar issue when I run from the browser

That exception gets thrown here: https://github.com/spatie/laravel-event-projector/blob/d8c5ebc50e22ac77239f3daad25084b92f23f971/src/Models/StoredEvent.php#L45-L52
Could you maybe add some logging to see the actual exception?

Feel free to open a new issue with additional error logs.