Everything is broken

Recently DiscordJS updated and changed a ton of stuff that was completely unnecessary, and now the library just throws
client.ws.on(discord_js_1.Constants.WSEvents.VOICE_SERVER_UPDATE, (payload) => {
                                                 ^

TypeError: Cannot read properties of undefined (reading 'VOICE_SERVER_UPDATE')

Fun.

Hi @imaperson1060 ,
First of all thank you for reporting the issue.
Because of the new version this bug pops up. I am currently unable to update the DiscordAudio package, but here is a solution:

Install the latest version of @discordjs/voice and @discordjs/opus (npm i<EMAIL_ADDRESS><EMAIL_ADDRESS>Go to the file /node_modules/discordaudio/package.json and set the versions of @discordjs/voice to ^0.11.0 and @discordjs/opus to ^0.8.0
Go to the file /node_modules/discordaudio/src/classes/player.js and change line 156 to adapterCreator: this.channel.guild.voiceAdapterCreator,

Sorry for the inconvenience.
Kind regards,
Luuk

A new version has been released which solves this issue.


does apollo has open some tools for HDMap editor

I want to generate apollo HDMap format xml file based on my slam occupy map, so does apollo has open this kind of tools to us?
System information

Ubuntu 16.04:

Thanks for using Apollo. Apollo does not provide a tool to generate HD map. If you need map service, please contact Baidu<EMAIL_ADDRESS>if you are in China or our partner in the US (e.g. Carmera https://www.carmera.com).


Converter minifier / optimizations overlap

Currently some converter optimizations are always applied through a minifier on the parsed representation that discards duplicate styles from being applied
https://github.com/Aloso/to-html/blob/114efd8e1ba42bfdc35628ae4b084a7e556c0175/crates/ansi-to-html/src/html/mod.rs#L52-L57
While even more are applied through two regexes on the converted text where the first removes empty tags and the second removes the reapplication of the same tag
https://github.com/Aloso/to-html/blob/114efd8e1ba42bfdc35628ae4b084a7e556c0175/crates/ansi-to-html/src/lib.rs#L188-L189

Three different things of note...
If we teach the minifier how to remove empty tags then it should apply all of the optimizations that the regexes apply (technically it could be even better since the regexes only apply once despite being able to optimize further after the first pass)
Well the fact that the minifier currently always applies some optimizations makes Converter::skip_optimize into only a half-truth. Really we should only apply the minifier when optimizations are enabled, but considering that no one has complained maybe it's a good sign to enable optimizations by default or always enable optimizations (removing the toggle)
If the minifer took the place of both of the optimization regexes then ansi-to-html would be down to just one regex usage (ANSI_REGEX)
https://github.com/Aloso/to-html/blob/114efd8e1ba42bfdc35628ae4b084a7e556c0175/crates/ansi-to-html/src/lib.rs#L187
which is normally my hint to re-evaluate if regex is carrying its weight as a dependency or if it can be replaced with some simpler parser instead of the (relatively heavy) regex crate

Fully agree. It would be good if we can remove the regex dependency, and writing a parser for this regex by hand should be fairly simple.

On second thought I think it'd be fine to keep the option to skip optimizations. It's not that hard to thread things through to have it working properly again, and it could prove to be a useful toggle for fuzzing to ensure that that the minified output is semantically equivalent to the full output
Applying optimizations without using regexes I'm still 100% on-board with. It'll just be a bit before I have spare time to work on it


fix(quart): Fix Quart integration

The Quart integration was completely broken prior to this commit, as it caused every request to fail with a 500 error. The reason was that we were using the non-async ensure_integration_enabled decorator on the async sentry_patched_asgi_app function. This commit fixes the issue by removing the use of that decorator, instead replacing it with a manual check for the integration being enabled.
Fixes GH-3040

It is very surprising that our test suite did not detect that this integration was completely broken. Perhaps, this is a limitation of the Quart test_client we use in testing. We should certainly add tests to make sure we do not break in this way again, but that can likely be done later, most important is to quickly fix the broken integration ASAP


New State website is missing old reports

State dropped a ton of old reports when migrating to a new scraper, as detailed in #180. This can be closed when we've determined how to keep the old reports. Ideally, State will finish importing their reports, as they've said they will.

I reran state this morning and it appears that one of the two missing reports is available again.
Report #228987 is now available as #211870 (AUD-SI-13-32).
We are still missing #162347 ("Audit of Department of State Controls Over Bureau of Diplomatic Security Domestic Firearms and Optics (AUD/SI-11-25)"). From what I can tell, the full report was never released and what we had in the past was just a summary. I still have a copy of the summary. I'll ping state again and see if there is any update on the migration, but I'm not optimistic. We may be better off just adding this as a out-of-band report.

We may be better off just adding this as a out-of-band report.

Let's do that. Got any ideas of the best way to track and store out-of-band reports for the project? Internet Archive is handy, but we still would have to track which items in the bucket are out-of-band.

I think we want the reports and metadata to be tracked by git(/hub) to allow contributors to easily add and edit reports. Tracking data in a VCS isn't ideal, but I worry that anything else will increase the barrier to contribution.
It would probably be too messy to add them to this repo so it may be best to create a separate repository and have it mimic the structure of data/. Maybe add a separate config option to admin.yaml (out_of_band_directory) that will scoop them all up and put them in data.
I don't love it, but it is the best idea I have right now.

Another repository sounds just fine. I made a https://github.com/unitedstates/reports repo, and gave you permissions on it.
Want to create an inspectors-general/ directory in there, with the data structure mirrored as you described?
Also, there's https://github.com/unitedstates/documents, which has a gem that's seen barely any use. That repository could be renamed without causing any breakage to clients pulling the gem down from rubygems. Maybe down the line, if we want to.

Cool, I'll do some work.
I was actually just reading your comment on #192. If I get some time, I may pull those and put them in another directory next to inspectors-general.

Great, I have added the remaining report to that repo with https://github.com/unitedstates/reports/commit/1b034c3210880635c3c7e18703a7ff4c3b2540a5
I'm going to close this out in favor of any work on #204


chore: migrte to helm v3

Description

Related issues

Related changes

Checklist

[ ] PR title follows Conventional Commits guidelines
[ ] All relevant PR sections are populated, irrelevant ones are removed

How was the migration? Out of curiosity where you using tillerless helm with v2?

Ah and there is a typo in the commit message

how was the migration? Out of curiosity where you using tillerless helm with v2?
No we were not but we used helm 2to3 plugin that help migrating. This is done automatically in the pipeline :)


carousel_document

What is the change?
Remove this line and add a description
Related issue?
closes: #issue_number
Checklist:
Before you create this PR, confirm all the requirements listed below by checking the checkboxes [x]:

[x ] I have followed the Code of Conduct.
[ x] I have  checked there aren't other open Pull Requests for the same update/change.
[ x] I have you tested the code before submission.
[ x] I have commented my code, particularly in hard-to-understand areas.
[ x] My changes generates no new warnings.
[ ] I'm Hacktoberfest'21 contributor.

Screenshots (if any)

Hey @Koustavjr in order to get checked boxes ticked [x] enter x in between without any spaces

@Koustavjr congratulations PR approved 🔥

@girija0707 thank you and will remember not to put space inside the ticked box.


Documentation fails on CI

This one is a bit weird because everything succeeds if I build the docs locally:

The issue is due to JlrsCore failing to load according to the backtrace. The error message is useless because the result hasn't been rooted.

JlrsCore must be added explicitly, then everything works fine. See f077551f5eca87ad1887b23a65683a603cf96ab4


Request for a giphy

Would like to see a small giphy that shows how this would look like in it's base state in my application in the README
Thanks

Updated pushed!
Added:

Giphy preview (as requested) - with all the supported Toast types - Success, Error, Info & Warning
Codesandbox Environment - Deployed Page to show the package in action + code implementation.


Write Webapp E2E with Cypress: "MM-T2042 Full Name starting blank stays blank"

Summary
This PR adds Webapp E2E test with Cypress for "MM-T2042 Full Name starting blank stays blank"
Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/18824
Release Note
NONE

Hello @sinansonmez,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

E2E tests not automatically triggered, because PR has no approval yet. Please ask a developer to review and then try again to attach the QA label.

Closing this PR because of different commits merged mistakenly. I will open a new one


Unable to download Desolate Era Book

It's been fine downloading the series up until this point, I haven't checked any books beyond this one.
Exception in Tkinter callback Traceback (most recent call last):   File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__in it__.py", line 1699, in __call__     return self.func(*args)   File "wuxiaworld2ebook.py", line 70, in button_press     getify.clean(str(s_chapter) + ".xhtml", raw_info[2] + str(s_chapter), name)   File "C:\Users\User\Desktop\wuxiadl\getify.py", line 51, in clean     chapter_title = chapter_title[chapter_title.index(",") + 1:] ValueError: substring not found

I'd also like to ask if it would be too difficult to add an option to download the entire novel in one go, rather than book-by-book.
Thanks. This script has been very helpful.

Thanks for reporting the error, seems to come from an earlier attempt on reducing the chapter title length of desolate era books. I will take a look into it.
As for the suggested feature, the way that the script is implemented makes it impossible without rewriting a significant portion of the script.


Fix publishing script

This fixes a bug in the publish actions, where only the main package was published. I described it in https://github.com/dotnet/Docker.DotNet/issues/463#issuecomment-1020438376
Merging this fix and making a new release should fix all issues related to mismatched package versions:
https://github.com/dotnet/Docker.DotNet/issues/562
https://github.com/dotnet/Docker.DotNet/issues/482
https://github.com/dotnet/Docker.DotNet/issues/463
https://github.com/dotnet/Docker.DotNet/issues/546

@galvesribeiro
Hello!
Has this change been merged in the master branch? It seems that it hasn't: https://github.com/dotnet/Docker.DotNet/blob/4d313eee6c72bf24d0837f2f9d11c44558f088e5/.github/workflows/publish.yml#L39
Also, the latest published version of Docker.DotNet.X509 is still <IP_ADDRESS>.
Thank you!


script inside jsbin does not import js file anymore

http://jsbin.com/tepezuj/edit?html,js,output
This jsbin worked before but now the library in the script tag does not seem to get imported.
Thanks

solved

How solved?

I fixed imports to be correct
https://jsbin.com/bisuyayesi/1/edit?html,js,output


Improved .gitignore, fixed issue #191, fixed issue #193

Added ignore rules for Linux, and Window common files.
Improved OSX ignore by adding the most common files that may appear in any directory.
Added ignore rules for JetBrains IDEs.

Superseded by changes done in 1.0.0-beta1


Updated alt text for images on the home page

Issue #113
Updated Alt text for images on the home page
Changes

Added alt text to each image

Flags

none

Related Issues

Issue #113
Pull Request N/A

@Alexandria the alt text you added on the homepage looks great, thank you. Very descriptive.
It looks like your PR failed the DCO signoff check.
Ensure you provide a DCO sign-off for your commits using the -s option of git commit. For more information see here
https://github.com/probot/dco#how-it-works

Gotcha! Everything should be good now.

@Alexandria thanks. Did you find any leads about how to add alt text to interior pages such as this one? There must be a way since some of them have alt text.
@jeromesimeon Do you know how alt text is added to images like this?

Thanks again @Alexandria ! If you have any ideas about alt text on interior pages let me know.

Thanks again @Alexandria ! If you have any ideas about alt text on interior pages let me know.

I plan to start working on those next! I should have an update in a day or two.


Doesn't Node DDP work?

First of work, nice work.
Second, I was wondering if I could use the Node DDP client since react native allows npm modules. Is there are a problem using the Node client or is ObjectiveDDP a personal choice?

Thanks @fardeemmunir! Was fun putting this together.

Is there are a problem using the Node client or is ObjectiveDDP a personal choice?

Websockets aren't available in React Native JS runtime (yet)
However, there's been some great progress made to get the websocket Polyfill so it can be used directly. Once that's in place it will be pretty simple to get something like Node DDP working. I'd actually prefer Node DDP or Asteroid since they are more commonly used and are entirely JS.

I'll spin up a new repo once the Polyfill is ready with a similar project. It will be interesting to see if there are any performance differences, and I'm anticipating less code.

Would you recommend using react native and meteor using your approach right now for a production app?

It's a decent solution, but I would recommend waiting. I've generated a PR for the Websocket Polyfill for React Native today - https://github.com/facebook/react-native/pull/890

Hey @fardeemmunir I've got a working example using the WebSocket polyfill which has parity with this project. https://github.com/hharnisc/react-native-meteor-websocket-polyfill


Camera doesn't follow

Hi,
you need to make 2 changes to make the camera be able to follow:
a) line 435 in BetterPerspectiveCamera: add   Follow (followTarget.transform, snap);
b) In the EndFollow Method you are missing a base.lockOnto (null);

Thanks! Updated it! Never looked into it...


add configuration variable: "disablePathToLower" See #557

add configuration variable: "PathToLower" to specify whether to downcase the path/url. See #557

There are some tests failures. Could you check up on that?

All tests passed now.

close it, I make another pull request with one commit.

new pull request: https://github.com/spf13/hugo/pull/1392


[BRUTEFORCE] Fixes editor crash when using it as plugin

Addresses issue https://github.com/rewin123/space_editor/issues/191
Creates necessary filesystem when using space_editor as plugin
obs: My initial idea was to store the content as svg and render the svgs with bevy, but bevy and third parties plugins dont support svg as image, so I kept the initial approach and created a file system based on that

This is a less brute force solution for the problem. However, I seem to be messing the the scheduling of the components https://github.com/rewin123/space_editor/pull/201

I tested on empty project. Had compilation error

Looks that error reaises from moving from bevy_egui to bevy_egui_next. I think we need add to CI pipeline chack that space_editor compilates and runs as plugin

This error is because of the patch, we need to add patch to cargo toml

Editr was compiled after update rust version and add patch in Cargo. But I got infinity loading


Re-land moving tensor->flow passes.

Reverts https://github.com/google/iree/pull/6648, rolling-forward https://github.com/google/iree/pull/6586.
First commit is the pure revert, second is a set of proposed fixes for the performance regression. The single pass (with a true/false option) is now split further:

createConvertTensorOpsPass
createConvertLinalgTensorOpsPass(true)
createConvertLinalgTensorOpsPass(false)

This gets the original change closer to an NFC (but it is still not an NFC).
Before this change:

stage
patterns

buildCommonInputConversionPassPipeline
tensor::CastOp, tensor::FromElementsOp

Flow, before DispatchRegionFormation
tensor::InsertSliceOp, tensor::ExtractSliceOp,  linalg::TensorCollapseShapeOp, linalg::TensorExpandShapeOp

Flow, after DispatchRegionFormation
linalg::FillOp

After this change:

stage
patterns

buildCommonInputConversionPassPipeline
tensor::CastOp, tensor::FromElementsOp, tensor::InsertSliceOp, tensor::ExtractSliceOp

Flow, before DispatchRegionFormation
tensor::CastOp, tensor::FromElementsOp, tensor::InsertSliceOp,  tensor::ExtractSliceOp, linalg::TensorCollapseShapeOp, linalg::TensorExpandShapeOp

Flow, after DispatchRegionFormation
linalg::FillOp

Passes on linalg ops are the same, but the four tensor ops are now converted early on and before dispatch region formation (detensoring will leverage this). The first version of this change had those linalg ops converted during the "common input conversion pipeline".

buildCommonInputConversionPassPipeline
tensor::CastOp, tensor::FromElementsOp,tensor::InsertSliceOp, tensor::ExtractSliceOp

Of the top of my head I dont know if the move of tensor.insert_slice and tensor.extract_slice early on is going to have an impact. If this is  being done from detensoring, you could just use tensor::CastOp and tensor::FromElementsOp in the buildCommonInputConversionPassPipeline and use the ConvertToFlowTensorOpsPass(/*before =*/true) before you run the detonsorization passes?

buildCommonInputConversionPassPipeline
tensor::CastOp, tensor::FromElementsOp,tensor::InsertSliceOp, tensor::ExtractSliceOp

Of the top of my head I dont know if the move of tensor.insert_slice and tensor.extract_slice early on is going to have an impact. If this is being done from detensoring, you could just use tensor::CastOp and tensor::FromElementsOp in the buildCommonInputConversionPassPipeline and use the ConvertToFlowTensorOpsPass(/*before =*/true) before you run the detonsorization passes?

The specific need I have for detensoring is for the tensor::FromElementsOp pattern after detensoring, before dispatch region formation. Beyond that, I'd like to keep the patterns/passes organized and grouped together where possible. Requiring certain patterns run (or not) at specific times for performance (and not correctness) is tricky to maintain without first converting that tribal knowledge into documentation or tests...

Benchmark results look inline with prior commits to me - no regression from this :)

buildCommonInputConversionPassPipeline
tensor::CastOp, tensor::FromElementsOp,tensor::InsertSliceOp, tensor::ExtractSliceOp

Of the top of my head I dont know if the move of tensor.insert_slice and tensor.extract_slice early on is going to have an impact. If this is being done from detensoring, you could just use tensor::CastOp and tensor::FromElementsOp in the buildCommonInputConversionPassPipeline and use the ConvertToFlowTensorOpsPass(/*before =*/true) before you run the detonsorization passes?

The specific need I have for detensoring is for the tensor::FromElementsOp pattern after detensoring, before dispatch region formation. Beyond that, I'd like to keep the patterns/passes organized and grouped together where possible. Requiring certain patterns run (or not) at specific times for performance (and not correctness) is tricky to maintain without first converting that tribal knowledge into documentation or tests...

Agreed it is tricky to maintain, but is also tricky to write tests. Only realistic way to test these is to use the number of dispatches created as a proxy for this. I cant think of good lit tests you can write for this. These are whole program optimizations.
Documentation is something we can do, but those can get stale quickly. These arent correctness issues. These are performance issues. Tracking via perf regressions is the best test IMO.
In any case, thats orthogonal to what you are trying to do right. I am not against the refactoring here, but putting all patterns in one place is not always beneficial. You want to be deliberate in which patterns apply where. Each of those passes and patterns are for a specific purpose.

Benchmark results look inline with prior commits to me - no regression from this :)

Still would be better to not do tensor.*_slice -> flow.tensor.* that early. In general lowering directly to Flow is problematic. I dont think long term that is going to be the case. So why put more of such conversions on that path.

Benchmark results look inline with prior commits to me - no regression from this :)

Still would be better to not do tensor.*_slice -> flow.tensor.* that early. In general lowering directly to Flow is problematic. I dont think long term that is going to be the case. So why put more of such conversions on that path.

Okay. I'm not totally following the rationale here and in https://github.com/google/iree/issues/6368, but could we just drop the 2-4 patterns from buildCommonInputConversionPassPipeline and handle all 4 entirely during the flow transformation pipeline? Or is there some factoring that you'd propose for pass naming / options?

Okay. I'm not totally following the rationale here and in #6368, but could we just drop the 2-4 patterns from buildCommonInputConversionPassPipeline and handle all 4 entirely during the flow transformation pipeline? Or is there some factoring that you'd propose for pass naming / options?

I think that would be ideal, but its going to be non-trivial. If I understand correctly you can move the tensor.cast to flow.tensor.cast conversion after dispatch region formation (you just need to make sure that the tensor.cast is not within a dispatch region.
The tensor.from_elements is tricky. That, if memory serves me right, is related to how mhlo rerpesents operations related to control flow.
@stellaraccident might help more on that.
I am just saying in the table above make the before and after this change the same. The demarcation of what "tensor" ops are and what "linalg on tensors" ops are is blur. So they dont bucket neatly by dialect.

Looked through this again. I am more convinced that the tensor.insert_slice and tensor.extract_slice conversion to flow.tensor.* ops. needs to happen after all the Linalg fusion passes. One of the things that happens in Linalg fusion is that unit-extent dimensions are dropped. One way that is done is by using the rank-reducing versions of these ops. Converting them to flow. means that this is not going to happen.
The impact might not show up on our benchmarks, but its one of the pieces of the puzzle that helps elementwise fusion.
Ideally no op should be converted to flow ops before linalg fusion, giving it full opportunity to fuse. tensor.from_elements is different in the sense that there is nothing much you can do in terms of fusion there. So if possible all the conversion to flow should be done after linalg fusion.

I removed the common input conversion pass entirely, moving those tensor conversion patterns to after linalg fusion. I also added a test for tensor.cast e2e to verify that https://github.com/google/iree/issues/6368 is still fixed (though without a more complex test model I'm not sure if this overly simplifies the problem).


Task details Download logs Too many logs

Before you start please confirm the following.

[X] Yes, I've searched similar issues on GitHub.
[X] Yes, I've checked whether this issue is covered in the Portainer documentation or knowledge base.

Problem Description
The container I built, when a specific string is printed, generates a large number of additional logs when I try to download the logs from within the container, and the content of these logs is not what I originally printed.
Container Code like this
package main

import (
	"fmt"
	"time"
)

const jsonstr = `

{"time": "2024-08-01T03:07:37.30744","source": {"function": "config.Init"}}
`

func main() {

	fmt.Println(jsonstr)
	fmt.Println(jsonstr)

	for {
		time.Sleep(5 * time.Second)
	}
}

Expected Behavior
The container logs display my original string, like
{"time": "2024-08-01T03:07:37.30744","source": {"function": "planx-server/framework/config.Init"}}

{"time": "2024-08-01T03:07:37.30744","source": {"function": "planx-server/framework/config.Init"}}

Actual Behavior

down logs too many logs

Steps to Reproduce
1.build the code with docker
2.run the docker
3.go to docker container
4.click docker logs
5.down load logs
Portainer logs or screenshots
No response
Portainer version
2.20.3
Portainer Edition
Community Edition (CE)
Platform and Version
Docker 24.0.7
OS and Architecture
centos7
Browser
No response
What command did you use to deploy Portainer?
No response
Additional Information
No response

Hi @molixiaoge Portainer is showing exactly what your docker container logs are showing. So if the logs are not what you expect this would come down to your container image and its build


Tests suddenly became super slow

Something in 07a9eae made each rspec suite slow. Like really slow. Need to find out what it is and fix.

This is fixed now! The problem was that we introduced player passwords, and between every single spec, the database cleaner was running, and then the 'starter objects' were created (which includes a player, with a password). Since bcrypt is intentionally computationally expensive, hashing the password for the new player took some amount of computation time. I lowered the bcrypt 'cost' in https://github.com/tkrajcar/carbonmu/commit/33281cf4f1bd3f1ae9d6418716ed49e36b40a551 and then decided to go a step further and only have the starter objects created when absolutely necessary in https://github.com/tkrajcar/carbonmu/commit/f388c7a278282dd8f54dc9cbec04907008d8384e. Test run on 2.2.2 went from 32.5 seconds to 0.67 seconds.
cc @1337807 @zoevkay


JsonInheritanceConverter Can't Handle Circular References ($ref)

When generating a client using NSwagStudio, the resulting C# client contains a copy of the JsonInheritanceConverter class to handle discriminator values for polymorphic DTOs. The problem is when the DTOs have circular references, using the $id and $ref system, as JsonInheritanceConverter  seems to parse the JObjects before the $ref tokens have been resolved, resulting in errors as the $ref tokens clearly do not contain the discriminator value.
The following lines from ReadJson fail when the jObject only contains a $ref:
            var discriminator = Newtonsoft.Json.Linq.Extensions.Value<string>(jObject.GetValue)_discriminator));             var subtype = GetObjectSubtype(objectType, discriminator);
I fixed this in the generated client by inserting
            if (jObject.ContainsKey("$ref"))             {                 var reference = jObject["$ref"].ToString();                 return serializer.ReferenceResolver.ResolveReference(serializer, reference);             }
just prior to the above lines.
This fix works for my use case, i do not know if it is a general fix though. Is there any chance of fixing this so i do not have to re-insert the code after every Client generator run?
Is there maybe a more sophisticated way of dealing with this problem, e.g. forcing JSON.NET to resolve references before the converter runs?
Greetings

I created an issue in NJsonSchema as this has to be fixed there...
Can you provide some sample code, or better: A unit test to reproduce this?

Sample code available in the new issue.


RFC: Server Rendering Errors in React 18

In this RFC, we describe a mechanism in React 18 that allows apps to recover from server rendering errors automatically by wrapping parts of the tree into <Suspense> boundaries. Additionally, React does not attempt to "patch up" individual nodes on hydration mismatches and instead relies on the same mechanism to retry rendering a part of the tree on the client.
View the formatted RFC.

Is there any way to make the formatted RFC visible to everyone?

This might be outdated question, but I wonder we don't need using lodable components anymore for using Suspense in SSR?

There is a minor case that is only achievable by using loadable components  (disclose: I am the maintainer of @react-loadable/revised)
With loadable components: we know which CSS files are required and insert them to <head>.
Otherwise, we need to either load all CSS files or lazily load them all.
Because the effect is small, I drop react-loadable completely in my projects and replace with react native methods (lazy, suspense) and load all CSS files in every request regardless of whether they are required or not. Hope that this helps.

Isn't it css code splitting could be acquired without using lodable components?

yes, css code splitting could be acquired without using lodable components

Do you mean importing css file directly in components, not making classes like normal css-in-js, tailwindcss?

That is the case I mentioned. If you use tailwindcss, it is irrelevant.
For css-in-js, I do not have much experiment with SSR + css-in-js.
Previously, when using loadable components, with CSS import, CSS files are included in chunks and I identified which CSS files need for a request.

I guess not only css files, but also all static files might be loaded


Create AccountList component

Figma Reference
https://www.figma.com/file/uEckQY4EaQ5rXwyISg6d1g/Fuel-Wallet?node-id=290%3A16182
Props

items: Account[]

Subcomponent

<AccountList.Loading />

This is just a loading state using our Skeleton

For now we are going to defer the implementation of search bar.

This component already exists, although I'm not sure what commit it was added to master


Add title to Small Multiples overlay

When a user views the small multiples breakdown, they lose the context of what metrics are being compared across groups.
The title structure should be:
[Metric] across all [Breakdown] groups, e.g.:
COVID-19 deaths per 100,000 people in United States across all Race and Ethnicity groups


improve formatting aspect of contribution process

CAUTION!!! RANT! Say you edit a doc right on the github (this is how we recommend it to users), you create a PR with it and you see that the tests failed. You figure out that this is a formatting issue, so you clone your branch in order to fix it. But you have no idea how to fix it, so you go to https://dvc.org/doc/user-guide/contributing/docs , follow through the hell of installing yarn (not that trivial, ruby usually has a lot of issues on my machine) in hope that it will fix it through pre-commit hooks, but it doesn't fix it. So you again lurk through the docs to discover this cryptic command somewhere in the bulk of text(not even in its own code block!):
yarn prettier --write '{static,src}/**/*.{js,jsx,md}'

Ok, I run it, but it now fixes not only my code, but also some bits and pieces that we've merged unfixed previously!
I'm sorry guys, but this is not friendly, even for me. We should try to simplify this. What I suggest:

Bring back yarn format command to be able to just format everything in 1 shot.
Make formatting MANDATORY, so that it is always in-check and contributors are not confused by the prettier fixing someone else's code.
Use restyled #804 (if possible) to automatically reformat, so that you could simply merge its formatted PR without having to ask the user to reformat and without breaking the formatting on the master by merging his incorrectly formatted PR.

Please feel free to correct me if I'm missing anything, I'm not actively involved in the internals. 🙂

You're right but we haven't really seen this problem happen AFAIK. Anyway, as you mentioned, #804 should fix this, so can we close this issue in favor of that one? Perhaps extracting any valuable details from here into there.

Make formatting MANDATORY

It is mandatory, what do you mean?

@jorgeorpinel If it is already mandatory (it checks the whole project, so CI will fail on master if formatting is broke) then ok. CLosing.

We did have an error in our CI checks until a few days ago so it wasn't checking everything but now it definitely is 🙂


[WIP] Upgrade to java 11 using adoptopenjdk

Fails on debian because of https://github.com/gocd/gocd/blob/master/buildSrc/src/main/groovy/com/thoughtworks/go/build/DebPackagingTask.groovy#L36. Since the java cookbook doesn't install multiple versions of java, in order to use 11, the deb pkg's dependency on java 8 should be removed. Which is in 6 months time.

@varshavaradarajan: I'm going to discuss with the team whether we should package an appropriate adoptopenjdk along with the .deb/.rpm packages, and remove the dependency on OS packages altogether.
Obviously, if users want to install via the .zip installers, they'd still need to get it from somewhere.

Closing. Newer versions of gocd will just package an appropriate JRE.
For users wanting to use a custom JRE, they can install it using a different cookbook and provide a config option to point to the appropriate JRE.


announce Gearpump releases via Herald

A lot of scala projects (specs2, shapeless, etc) announce releases via herald to implicit.ly. We could also make our releases known to more using herald,

+1.


Collaborator Projects Fix

Fixes #
Describe the changes you have made in this PR -
Screenshots of the changes (If any) -
Note: Please check Allow edits from maintainers. if you would like us to assist in the PR.

Coverage remained the same at 88.019% when pulling 0d14e3fe257457d9296c6dcc2aa108ab2ae9df57 on fix/collaborator-projects into d266e41d7fe9a85013b742b0c6407a1edb787620 on master.


Data path in SimpleSSD

Running Environment (please complete the following information):

Host OS and Kernel version: [e.g. Ubuntu 16.04 with Linux 4.14]
Compiler version used to build SimpleSSD-FullSystem: [e.g. GCC 4.8.5]
SimpleSSD-FullSystem version: [e.g. v2.0.3 - or commit hash]
SimpleSSD version: [e.g. v2.0.4 - or commit hash]
Guest Kernel version: [e.g. Linux 4.14 compiled with aarch64-linux-gnu-gcc]
Compiler version used to build Guest Kernel binary: [e.g. Linaro GCC 7.2.1]

Execution information

Execution command line of gem5:
[e.g. ./build/ARM/gem5.opt ./configs/common/fs.py --kernel=...]
Execution command line in guest OS (inside of simulation):
[e.g. ./fio --direct=1 --ioengine=libaio ...]

Explain what you want to ask here:
A clear explanation of your question.
Hi,
Thanks for your open-source work.
Im trying to implement or study ECC(error correcting code) in SSD Controlloer data-path with SimpleSSD. In order to do this, I think its necessary to look at the data itself (which i read/write with nvme-cli).
But I wonder where the part that points to the data itself in SimpleSSD code.
Also, i want to know the flow of data in the process of read and write.
thanks.

Hi,
This answer is based on your e-mail.

User data representation in SimpleSSD.

SimpleSSD stores data in raw disk format if you enabled disk image feature in configuration file.
This makes convenient use of existing disk images (like gem5 images) -- you can use such disk images directly with SimpleSSD.
And such file I/O is handled by HIL (namespace).
SipmleSSD does not support physical data serialization/deserialization as this feature is only used for NAND level research.
To access data at specific NAND page, there are two options:

Add feature to read/write data for each NAND page from/to file.
At the PAL, perform reverse address translation to get logical address of current page, and read page from disk image.

Data flow

As written in first section, SimpleSSD only handles data at HIL level.
But, if you want to know which codes/functions handles I/O, just create breakpoint at PAL and check the call stack.
As most part of current SimpleSSD is functional (only HIL is event-driven), you can check all the routines by looking at stack.
Thanks.


minimum read length recommended ?

Hi,
reads " that are over 75 base pairs long"
I have mostly 76bp reads, would you only recommend 100bp+ reads ?
thanks,
Colin

Thanks for your interest. 76 bp reads should work fine.


Update documentation (cp vs mv)

You need to copy this file, otherwise git will complain about a deleted file which might end up in the next pull request.

Indeed!


adding pylint to osohm so we can use it also as a build platform in n…

…ew jenkins

Approved by @joelddiaz in #1789


No way of checking version programmatically or at CLI

There's no way to check what version of qsl you're using. Users should be able to check this.

Closed by https://github.com/faustomorales/qsl/commit/ab1cb27f5f3c730a03830f2b07805bf7230e2dc5


Deprecate implementation of _base_iterator

Fixes #5400
Add a deprecation warning that _base_iterator is going to be made abstract, and copy (with intent to move) the implementation to SimulatorBase.
Once the deprecation timeline has passed we can safely make SimulatesIntermediateState._base_iterator abstract, and remove _create_simulation_state, _create_act_on_args and _core_iterator declarations from SimulatesIntermediateState completely. This makes SimulatesIntermediateState more true to its name, as it should not be concerned with how or where the subclass creates the initial state, even from the interface standpoint.
@95-martin-orion

@95-martin-orion merging?


os: os.Stat says broken symlinks do not exist as checked by os.IsNotExist()

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

$ go version
go version go1.18.3 darwin/arm64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="arm64"
GOBIN=""
GOCACHE="/Users/ishan/Library/Caches/go-build"
GOENV="/Users/ishan/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/ishan/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/ishan/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/opt/homebrew/opt/go/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/opt/homebrew/opt/go/libexec/pkg/tool/darwin_arm64"
GOVCS=""
GOVERSION="go1.18.3"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/_d/8s653yvs3rjcnwqy_dc45wh40000gn/T/go-build2011038208=/tmp/go-build -gno-record-gcc-switches -fno-common"

To reproduce:

Make a file and a symlink pointing to that file
Delete the file
Check if the symlink exists according to os

I made a program that does this: https://go.dev/play/p/pCoJBeM6-rC
Code
package main

import (
	"fmt"
	"os"
)

func main() {
	_, err := os.Create("file")
	check(err)
	err = os.Symlink("file", "symlink")
	check(err)
	err = os.Remove("file")
	check(err)

	_, err = os.Stat("symlink")
	if os.IsNotExist(err) {
		fmt.Println(err) // shouldn't run, because we never deleted the symlink
	}
}

func check(err error) {
	if err != nil {
		panic(err)
	}
}

What did you expect to see?
That os says the symlink exists (even if the file it points to doesn't).
What did you see instead?
An error that the symlink does not exist.

I think you want to use https://pkg.go.dev/os#Lstat in this case.

That fixes it, but I don't see why os.Stat should say the symlink does not exist when it does exist.

That's how os.Stat works: it reports information about the target of the symlink.  If the target does not exist, that is what it reports.  If you want information about the symlink itself, you have to use os.Lstat, as @ZekeLu suggests.
This is consistent with the C functions stat and `lstat.
Closing because there is anything to do here.

Ah, thanks


Use unique ID for workers

I found that it wasn't possible to have multiple workers defined as per the docs, IE:
config :together,
  workers: [
    [name: "throttled", delay: 5_000, type: :throttle],
    [name: "debounced", delay: 5_000, type: :debounce]
  ]

This errors out with:
** (Mix) Could not start application test_app: TestApp.start(:normal, []) returned an error: shutdown: failed to start child: Together.Supervisor
    ** (EXIT) an exception was raised:
        ** (ArgumentError) duplicated id Together.Proxy found in the supervisor specification, please explicitly pass the :id option when defining this worker/supervisor
            (elixir) lib/supervisor/spec.ex:175: Supervisor.Spec.assert_unique_ids/1
            (elixir) lib/supervisor/spec.ex:169: Supervisor.Spec.supervise/2
            (stdlib) supervisor.erl:294: :supervisor.init/1
            (stdlib) gen_server.erl:328: :gen_server.init_it/6
            (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3

This change uses Kernel.make_ref() to make a unique ID for each worker so that multiple workers can be defined in an application.
Not sure how to test this properly, any advice there would be very welcome if you'd prefer a PR with a test!
Thanks.

Thank you very much for the PR!

Made a patch release for this.

I'll explore how to test this properly and get back to you if you are interested :)

Awesome, that would be great, thanks!

I added a supervisor test in https://github.com/princemaple/together/commit/560f4408c148b640f46250e548ff16b4fcec3d6a
Let me know if you find anything smelly :)


Bug / ZMQ server gets stuck on Exception

The zmq-server, when encountering an exception, gets stuck forever in the while loop, and prevents any subsequent requests from beind handled.
A potential solution si defining some sort of protocol, for letting the clients know there was a problem with their request.

I'll work on this. I'll also provide some form of documentation.

Epic!


Task DwC Importer - Find/replace per column

As a curator I would like a modal to replace all values of X with Y in one column

A preview of the number of records should be shown prior to clicking Update

Done


ci(workflow): add JoeyDjr as reviewer and assignee

This PR adds @JoeyDjr as reviewer and assignee for dependabot PR's.
It also removes @amimart from npm reviews to avoid unnecessary pollution.

Codecov Report

Merging #436 (a93a182) into main (0c16258) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #436   +/-   ##
=======================================
  Coverage   97.90%   97.90%
=======================================
  Files          61       61
  Lines         668      668
  Branches      106      106
=======================================
  Hits          654      654
  Misses         12       12
  Partials        2        2

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

:tada: This PR is included in version 1.12.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Update Diffuse

Recently updated the app to version 2, so here's a new screenshot ☺

Oh sorry about that, had the retina thing on. Should be good now.


Button should be enhanced with download attribute

Button should be enhanced with download attribute.

Prop types need to be improved, so Typescript takes props from element passed as polymorphic component ("as").
This could be tricky considering linkTo prop.
Useful resource: https://react-typescript-cheatsheet.netlify.app/docs/advanced/patterns_by_usecase#polymorphic-components-eg-with-as-props

Resolved in #641


Division by 0

steps to reproduce:

create an empty terraform project
add infracost-gh-actions on github actions
before cost is 0 and after cost is 0. 0/0% = NAN%

Tomorrow I will create an empty repository with the reproducer.
Logs:
 $ infracost --no-color --usage-file infracost-usage.yml
time="2021-01-27T17:12:46Z" level=info msg="starting: Running terraform init"
time="2021-01-27T17:12:46Z" level=info msg="Running command: /usr/bin/terraform init -input=false -no-color"
time="2021-01-27T17:12:52Z" level=info msg="starting: Running terraform plan"
time="2021-01-27T17:12:52Z" level=info msg="Running command: /usr/bin/terraform plan -input=false -lock=false -no-color -out=/tmp/tfplan546450212"
time="2021-01-27T17:12:53Z" level=info msg="starting: Running terraform show"
time="2021-01-27T17:12:53Z" level=info msg="Running command: /usr/bin/terraform show -no-color -json /tmp/tfplan546450212"
time="2021-01-27T17:12:54Z" level=info msg="starting: Calculating cost estimate"
bc: divide by zero

@mercuriete thanks for reporting this! No need for a reproducer repo, the repro steps were clear - will fix it.

@mercuriete thanks for reporting this! No need for a reproducer repo, the repro steps were clear - will fix it.

@mercuriete I added a fix in v0.7.16 of infracost (the GH Action uses the diff.sh script in the docker image).

@mercuriete I added a fix in v0.7.16 of infracost (the GH Action uses the diff.sh script in the docker image).

Thanks!
Your product is awesome, keep going!
:+1:


(PY-R1000) Function with cyclomatic complexity higher than threshold

Description
A function with high cyclomatic complexity can be hard to understand and maintain. Cyclomatic complexity is a software metric that measures the number of independent paths through a function. A higher cyclomatic complexity indicates that the function has more decision points and is more complex.
Occurrences
There are 3 occurrences of this issue in the repository.
See all occurrences on DeepSource → app.deepsource.com/gh/EDM115/unzip-bot/issue/PY-R1000/occurrences/

https://chat.openai.com/share/e6166e61-bfca-44e1-8c24-065b6df09b2e

related to #159 :
from mutagen.easyid3 import EasyID3
from mutagen.mp3 import MP3

# ... [Your existing code] ...

async def send_file(unzip_bot, c_id, doc_f, query, full_path, log_msg, split):
    # ... [Your existing code] ...
    try:
        # ... [Your existing code] ...

        # Attempt to extract audio metadata
        audio_meta = {}
        try:
            audio = MP3(doc_f, ID3=EasyID3)
            audio_meta['duration'] = int(audio.info.length)  # Duration in seconds
            audio_meta['performer'] = audio.get('artist', [None])[0]  # Performer name
            audio_meta['title'] = audio.get('title', [None])[0]  # Track name
        except Exception as e:
            LOGGER.error(f"Error extracting metadata: {e}")

        # ... [Your existing code for upmsg and thumbornot] ...

        if ul_mode == "media" and fext in extentions_list["audio"]:
            send_kwargs = {
                'chat_id': c_id,
                'audio': doc_f,
                'caption': Messages.EXT_CAPTION.format(fname),
                'disable_notification': True,
                'progress': progress_for_pyrogram,
                'progress_args': (
                    Messages.TRY_UP.format(fname),
                    upmsg,
                    time(),
                    unzip_bot,
                ),
                'duration': audio_meta.get('duration'),
                'performer': audio_meta.get('performer'),
                'title': audio_meta.get('title'),
            }

            if thumbornot:
                send_kwargs['thumb'] = Config.THUMB_LOCATION + "/" + str(c_id) + ".jpg"

            await unzip_bot.send_audio(**send_kwargs)

    # ... [Your existing code] ...

using kwargs might not be a bad idea

DESCRIPTION
A function with high cyclomatic complexity can be hard to understand and maintain. Cyclomatic complexity is a software metric that measures the number of independent paths through a function. A higher cyclomatic complexity indicates that the function has more decision points and is more complex.
Functions with high cyclomatic complexity are more likely to have bugs and be harder to test. They may lead to reduced code maintainability and increased development time.
To reduce the cyclomatic complexity of a function, you can:

Break the function into smaller, more manageable functions.
Refactor complex logic into separate functions or classes.
Avoid multiple return paths and deeply nested control expressions.

Risk category
Cyclomatic complexity range
Recommended action

low
1-5
No action needed.

medium
6-15
Review and monitor.

high
16-25
Review and refactor. Recommended to add comments if the function is absolutely needed to be kept as it is.

very-high
26-50
Refactor to reduce the complexity.

critical
>50
Must refactor this. This can make the code untestable and very difficult to understand.

Occurrences

unzipper/modules/commands.py
add_vip has a cyclomatic complexity of 16 with "high" risk
unzipper/modules/ext_script/metadata_helper.py
get_audio_metadata has a cyclomatic complexity of 20 with "high" risk
unzipper/modules/ext_script/up_helper.py
send_file has a cyclomatic complexity of 27 with "very-high" risk
unzipper/modules/callbacks.py
unzipper_cb has a cyclomatic complexity of 169 with "critical" risk


Libraria PixiJS

[ x] I have read freeCodeCamp's contribution guidelines.
[x ] My pull request has a descriptive title (not a vague title like Update index.md)
[x ] My pull request targets the master branch of freeCodeCamp.
[x ] None of my changes are plagiarized from another source without proper attribution.
[x ] My article does not contain shortened URLs or affiliate links.

@nuno-miranda I made the changes suggested by camperBot on your behalf.

Still needs to be reviewed by one of our translators.

Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 🎉


Textual changes: level => Level

-Make it Level in all places. With a capital L.

-No full stop

-Verified these changes in dev app v1.5.0(260)


ACUS: Put hotel booking code, booking link, booking last date in settings

Still need to update the actual hotel page to use them.

It also would be nice to segment the configuration settings by role, e.g. allow Liz prices, Joe hotel settings, Kit game min/max and such settings.


Update documentation with start_sequence information

Issue (#250): No documentation regarding start_sequence in Clio config file
Fix: Update documentation regarding optional start_sequence parameter

@godexsoft left as additional comments under README.md since it's not possible to have pure comments in JSON files (data only). Could do a representation as a .toml file instead, but figured putting them in the documentation is a cleaner solution


Add ineffective assignment checker

This is a check like lint/vet that fails CI if there are dead stores in the code.

That's really good one, sometimes it reveals bad bugs. It has some false positives in docker, but we can use because our project is simpler.

Good to know. I have not seen false positives so far. If we encounter some we should be able to work around them.

LGTM

LGTM


Seo enhancement

Is your feature request related to a problem? Please describe.

According to Online Seo site checkers.

if <title> tag is too long. search engines doesn't like it.
No H1 tag in blog post pages.
search engines likes hreflang in html rather sitemap.xml.

Describe the solution you'd like

for any pages truncate title to 60 chars. if page is blog post then don't add site brand to title.
add H1 tag to blog post pages.
enable hreflang in main.yml and disable in sitemap.xml

Describe alternatives you've considered

none
Additional context

none

added in PR #76


PNG with XMP metadata

When using .metadata() on a png it loses the iptc attribute.
imgBuffer below is an arrayBuffer than contains the image itself.
sharp(imgBuffer)
    .metadata()
    .then((metadata) => {
      console.log(metadata)
    });

Is this expect behaviour, as it does not lose the iptc attribute with a jpeg?

Hello, are you able to share an example PNG image that both contains IPTC metadata and exhibits this behaviour?

Hi, thanks for getting back to me so quickly.
Yes here is a PNG with IPTC and when we run the code snippet above with it we don't seem to not see any of the IPTC.
Also if we crop it and use .withMetadata() we also seem to lose IPTC on the output. (We also lose TIFF)
https://s3-eu-west-1.amazonaws.com/guy-cropping-test/cropped-images/strawberries.png

Thank you, what IPTC metadata are you expecting from this example image?

This is the IPTC that is on the PNG - https://s3-eu-west-1.amazonaws.com/guy-cropping-test/cropped-images/Screen+Shot+2018-12-05+at+00.26.15.png
Also this is the TIFF data that also disappears - https://s3-eu-west-1.amazonaws.com/guy-cropping-test/cropped-images/Screen+Shot+2018-12-05+at+00.26.31.png

The metadata in the sample PNG image is XMP rather than IPTC.
libvips only recently added support for reading XMP metadata from PNG images - see https://github.com/libvips/libvips/issues/1073 - it will need to be compiled from source for this to work right now.

Okay great, thanks for identifying the issue.
Is this something Sharp will be doing soon or something I need to do on my end?

This will be included in libvips v8.8.0, which a future version of sharp will bundle in its precompiled binaries.

Great thanks for all your help

sharp v0.23.0 / libvips v8.8.1 is now available.


cjdns: 18 -> 19.1

Motivation for this change
v18 is outdated as of 21.2.2017. Also https://github.com/cjdelisle/cjdns/pull/1017 is already merged so there's no need for additional patching.
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

cc @ehmry

Darwin build fails but that appears to have already been the case.

Thank you :)


Add evil bees projects

https://github.com/Evil-Bees/Alertit/issues?q=is%3Aissue+is%3Aopen+label%3A"good+first+issue"

Hey @nikolap994 - Thanks for creating the PR.
To ensure quality and standard, we require at least 10 contributors to add your repository to Good First Issue.
You can check the criteria here.


[BUG] Missing playlists in the "Outlook" subcategory

Describe the bug
The Outlook sub-category includes 11 playlists.  Those playlists have the "Technology" field set as either "Outlook" or "Outlook for iOS and Android".  I needed to have a playlist about managing Distribution Groups, so I created it and set the "Technology" field "Outlook". All of the assets in the playlist also use the Outlook technology as well.  To my surprise, the new playlist never showed up for use in the web part.  I then changed the web part filter from playlist to Subcategory and select Outlook.  Only 4 of the now 12 playlists showed up, the ones with technology set to "Outlook for iOS and Android".  I then changed my custom playlist to blank out the technology and it started showing up as expected.
To Reproduce
Create a custom playlist with the technology set as "Outlook"
Expected behavior
All playlists (custom and included) with Outlook as the technology should be available in the webpart
Screenshots
Expected Playlists

Actual Playlists

Learning Pathways version number
3.0.4
Additional context
I upgraded from v2 something last week, everything else looks fine so I don't think there were any issues with the schema changes.  I also see this behavior with playlists using the "OneDrive" and "OneDrive for Business" technology options.

Can you please validate on the Technology list that you haven't (accidentally or on purpose) hidden any of the technologies?

I didn't realize there was an option to hide a technology group.  I did find that setting and Outlook was set hidden.  After changing that setting everything works as expected.  You can also disregard the OneDrive comment.  I think there was a caching issue on my quick edit test.  A fresh browser has cleared that out.  Thanks for pointing me in the right direction.


[joy-ui] Add Upload component

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Summary 💡
Upload the file by selecting or dragging
When you need to upload one or more files.
When you need to show the process of uploading.
When you need to upload files by dragging and dropping.
Avatars  component for uploading avatar image
Examples 🌈
No response
Motivation 🔦
No response

Heya @mohammad19974, thanks for the suggestion! Added the "waiting for 👍" to gauge the community's interest in having this component — it help us prioritize! :)

hello,
I think adding an upload component would be a great idea.
It would be really helpful especially when creating forms. Also, It could simply for all of us the implementation of file uploads.


[Doc Issue][Update task module title]

updated TOC and title for Create and send task modules.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/TOC.yml
99
10
link
:white_check_mark:

msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md
94
25
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/TOC.yml
99
2
link
:white_check_mark:

msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md
94
8
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.


httpd_1  |          80:09:dc:e8:0d:d7:6d:24:de:d0:97:e6:47:a9:72:dd:7c:5b:
httpd_1  |          3d:fc:28:b9:32:50:03:58:e3:4e:c9:36:61:1a:13:08:2e:4d:
httpd_1  |          29:cb:59:4d:cc:d5:26:46:28:a0:0c:01:3b:36:ef:1b:eb:3a:
httpd_1  |          96:b6:7e:85:71:30:d4:f3:1a:cf:04:60:ce:23:c0:c7:b2:a3:
httpd_1  |          95:9d:8c:c9:4f:83:4c:3e:60:c3:ae:e2:1c:06:ce:8c:71:42:
httpd_1  |          b7:7e:3e:95:5a:23:5d:2f:50:3f:8b:f4:c0:5b:31:35:66:4b:
httpd_1  |          10:55:8a:2a
httpd_1  | /etc/httpd/cert/main/localhost.crt: OK
httpd_1  | [INFO] Starting supervisord: 3.0
httpd_1  | 2018-05-08 13:36:28,759 CRIT Set uid to user 0
httpd_1  | 2018-05-08 13:36:28,777 INFO supervisord started with pid 1
httpd_1  | 2018-05-08 13:36:29,780 INFO spawned: 'httpd' with pid 208
httpd_1  | 2018-05-08 13:36:29,784 INFO spawned: 'watcherd' with pid 209
httpd_1  | watcherd: [2018-05-08 13:36:29] Starting daemon.
httpd_1  | watcherd: [2018-05-08 13:36:29] Using bash loop to watch for changes.
httpd_1  | [Tue May 08 13:36:30.554114 2018] [mpm_event:notice] [pid 208:tid<PHONE_NUMBER>47616] AH00489: Apache/2.4.33 (Unix) OpenSSL/1.0.2l configured -- resuming normal operations
httpd_1  | [Tue May 08 13:36:30.554780 2018] [core:notice] [pid 208:tid<PHONE_NUMBER>47616] AH00094: Command line: 'httpd -D FOREGROUND'
httpd_1  | 2018-05-08 13:36:31,556 INFO success: httpd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
httpd_1  | 2018-05-08 13:36:31,556 INFO success: watcherd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
mysql_1  | [INFO] Setting docker timezone to: Europe/Berlin
mysql_1  | root $ rm /etc/localtime
mysql_1  | root $ ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
mysql_1  | [INFO] Docker date set to: Tue May  8 13:37:59 CEST 2018
mysql_1  | [INFO] Setting MySQL: [mysqld] general-log=0
redis_1  | 1:C 08 May 11:37:59.551 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis_1  | 1:C 08 May 11:37:59.556 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=1, just started
redis_1  | 1:C 08 May 11:37:59.556 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
mysql_1  | root $ sed -i'' 's|\[mysqld\]|\[mysqld\]
mysql_1  | general-log = 0|g' /etc/my.cnf.d/logging.cnf
redis_1  | 1:M 08 May 11:37:59.666 * Running mode=standalone, port=6379.
redis_1  | 1:M 08 May 11:37:59.666 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
redis_1  | 1:M 08 May 11:37:59.666 # Server initialized
redis_1  | 1:M 08 May 11:37:59.666 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis_1  | 1:M 08 May 11:37:59.666 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
mysql_1  | [INFO] Setting MySQL: [client] socket=/tmp/mysql/mysqld.sock
redis_1  | 1:M 08 May 11:37:59.883 * DB loaded from disk: 0.216 seconds
redis_1  | 1:M 08 May 11:37:59.883 * Ready to accept connections
mysql_1  | root $ sed -i'' 's|\[client\]|\[client\]
mysql_1  | socket = /tmp/mysql/mysqld.sock|g' /etc/my.cnf.d/socket.cnf
mysql_1  | [INFO] Setting MySQL: [mysql] socket=/tmp/mysql/mysqld.sock
mysql_1  | root $ sed -i'' 's|\[mysql\]|\[mysql\]
mysql_1  | socket = /tmp/mysql/mysqld.sock|g' /etc/my.cnf.d/socket.cnf
mysql_1  | [INFO] Setting MySQL: [mysqld] socket=/tmp/mysql/mysqld.sock
mysql_1  | root $ sed -i'' 's|\[mysqld\]|\[mysqld\]
mysql_1  | socket = /tmp/mysql/mysqld.sock|g' /etc/my.cnf.d/socket.cnf
mysql_1  | root $ chown mysql:mysql /tmp/mysql
mysql_1  | root $ chmod 0777 /tmp/mysql
pgsql_1  | The files belonging to this database system will be owned by user "postgres".
pgsql_1  | This user must also own the server process.
pgsql_1  |
pgsql_1  | The database cluster will be initialized with locale "en_US.utf8".
pgsql_1  | The default database encoding has accordingly been set to "UTF8".
pgsql_1  | The default text search configuration will be set to "english".
pgsql_1  |
pgsql_1  | Data page checksums are disabled.
pgsql_1  |
pgsql_1  | fixing permissions on existing directory /var/lib/postgresql/data/pgdata ... ok
pgsql_1  | creating subdirectories ... ok
pgsql_1  | selecting default max_connections ... 100
pgsql_1  | selecting default shared_buffers ... 128MB
pgsql_1  | selecting dynamic shared memory implementation ... posix
mongo_1  | 2018-05-08T11:38:04.312+0000 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
mysql_1  | root $ touch /var/log/mysql/query.log
mysql_1  | root $ touch /var/log/mysql/slow.log
mysql_1  | root $ touch /var/log/mysql/error.log
mysql_1  | root $ chown -R mysql:mysql /var/lib/mysql/
mongo_1  | 2018-05-08T11:38:04.656+0000 I CONTROL  [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=a9abbbf34f5a
mongo_1  | 2018-05-08T11:38:04.657+0000 I CONTROL  [initandlisten] db version v3.7.9
mongo_1  | 2018-05-08T11:38:04.658+0000 I CONTROL  [initandlisten] git version: 681d1e0bf8d45c366848678811bad6f1a471f20c
mongo_1  | 2018-05-08T11:38:04.659+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1t  3 May 2016
mongo_1  | 2018-05-08T11:38:04.659+0000 I CONTROL  [initandlisten] allocator: tcmalloc
mongo_1  | 2018-05-08T11:38:04.660+0000 I CONTROL  [initandlisten] modules: none
mongo_1  | 2018-05-08T11:38:04.661+0000 I CONTROL  [initandlisten] build environment:
mongo_1  | 2018-05-08T11:38:04.662+0000 I CONTROL  [initandlisten]     distmod: debian81
mongo_1  | 2018-05-08T11:38:04.662+0000 I CONTROL  [initandlisten]     distarch: x86_64
mongo_1  | 2018-05-08T11:38:04.663+0000 I CONTROL  [initandlisten]     target_arch: x86_64
mongo_1  | 2018-05-08T11:38:04.664+0000 I CONTROL  [initandlisten] options: { net: { bindIpAll: true } }
mongo_1  | 2018-05-08T11:38:04.676+0000 I STORAGE  [initandlisten]
mongo_1  | 2018-05-08T11:38:04.678+0000 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
mongo_1  | 2018-05-08T11:38:04.679+0000 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
mysql_1  | root $ chown -R mysql:mysql /var/lib/mysql
mongo_1  | 2018-05-08T11:38:04.681+0000 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1430M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress),
mysql_1  | root $ chown -R mysql:mysql /var/log/mysql
mysql_1  | root $ chown -R mysql:mysql /var/run/mysqld
mysql_1  | root $ chown -R mysql:mysql /var/sock/mysqld
mysql_1  | root $ chmod 0775 /var/lib/mysql/
mysql_1  | root $ chmod 0775 /var/lib/mysql
mysql_1  | root $ chmod 0775 /var/log/mysql
mysql_1  | root $ chmod 0775 /var/run/mysqld
mysql_1  | root $ chmod 0775 /var/sock/mysqld
mysql_1  | root $ find /var/log/mysql/ -type f -exec chmod 0664 {} \;
mysql_1  | [INFO] No existing MySQL data directory found. Setting up MySQL for the first time.
mysql_1  | root $ mysql_install_db --datadir=/var/lib/mysql/ --user=mysql
mysql_1  | Installing MariaDB/MySQL system tables in '/var/lib/mysql/' ...
pgsql_1  | creating configuration files ... ok
mysql_1  | 2018-05-08 13:38:05<PHONE_NUMBER>61408 [Note] /usr/sbin/mysqld (mysqld 10.1.31-MariaDB) starting as process 121 ...
pgsql_1  | running bootstrap script ... ok
mongo_1  | 2018-05-08T11:38:11.815+0000 I STORAGE  [initandlisten] WiredTiger message [1525779491:815640][1:0x7f05012a7a00], txn-recover: Set global recovery timestamp: 0
mongo_1  | 2018-05-08T11:38:12.540+0000 I RECOVERY [initandlisten] WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)
pgsql_1  | performing post-bootstrap initialization ... ok
mongo_1  | 2018-05-08T11:38:15.137+0000 I CONTROL  [initandlisten]
mongo_1  | 2018-05-08T11:38:15.137+0000 I CONTROL  [initandlisten] ** NOTE: This is a development version (3.7.9) of MongoDB.
mongo_1  | 2018-05-08T11:38:15.137+0000 I CONTROL  [initandlisten] **       Not recommended for production.
mongo_1  | 2018-05-08T11:38:15.137+0000 I CONTROL  [initandlisten]
mongo_1  | 2018-05-08T11:38:15.137+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
mongo_1  | 2018-05-08T11:38:15.137+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
mongo_1  | 2018-05-08T11:38:15.137+0000 I CONTROL  [initandlisten]
mongo_1  | 2018-05-08T11:38:15.815+0000 I STORAGE  [initandlisten] createCollection: admin.system.version with provided UUID: 6b90c4f2-436d-45bb-98e3-0f251644cf08
mongo_1  | 2018-05-08T11:38:16.443+0000 I COMMAND  [initandlisten] setting featureCompatibilityVersion to 4.0
mongo_1  | 2018-05-08T11:38:16.766+0000 I STORAGE  [initandlisten] createCollection: local.startup_log with generated UUID: 4e5adbb2-066a-48c8-b5ed-d70e5cdf79a4
mongo_1  | 2018-05-08T11:38:17.489+0000 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
mongo_1  | 2018-05-08T11:38:17.757+0000 I NETWORK  [initandlisten] waiting for connections on port 27017
pgsql_1  | syncing data to disk ...
pgsql_1  | WARNING: enabling "trust" authentication for local connections
pgsql_1  | You can change this by editing pg_hba.conf or using the option -A, or
pgsql_1  | --auth-local and --auth-host, the next time you run initdb.
pgsql_1  | ok
pgsql_1  |
pgsql_1  | Success. You can now start the database server using:
pgsql_1  |
pgsql_1  |     pg_ctl -D /var/lib/postgresql/data/pgdata -l logfile start
pgsql_1  |
pgsql_1  | ****************************************************
pgsql_1  | WARNING: No password has been set for the database.
pgsql_1  |          This will allow anyone with access to the
pgsql_1  |          Postgres port to access your database. In
pgsql_1  |          Docker's default configuration, this is
pgsql_1  |          effectively any other container on the same
pgsql_1  |          system.
pgsql_1  |
pgsql_1  |          Use "-e POSTGRES_PASSWORD=password" to set
pgsql_1  |          it in "docker run".
pgsql_1  | ****************************************************
pgsql_1  | waiting for server to start....LOG:  database system was shut down at 2018-05-08 11:38:14 UTC
pgsql_1  | LOG:  MultiXact member wraparound protections are now enabled
pgsql_1  | LOG:  database system is ready to accept connections
pgsql_1  | LOG:  autovacuum launcher started
pgsql_1  |  done
pgsql_1  | server started
pgsql_1  | ALTER ROLE
pgsql_1  |
pgsql_1  |
pgsql_1  | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
pgsql_1  |
pgsql_1  | LOG:  received fast shutdown request
pgsql_1  | LOG:  aborting any active transactions
pgsql_1  | LOG:  autovacuum launcher shutting down
pgsql_1  | waiting for server to shut down....LOG:  shutting down
pgsql_1  | LOG:  database system is shut down
pgsql_1  |  done
pgsql_1  | server stopped
pgsql_1  |
pgsql_1  | PostgreSQL init process complete; ready for start up.
pgsql_1  |
mysql_1  | OK
mysql_1  | Filling help tables...
pgsql_1  | LOG:  database system was shut down at 2018-05-08 11:38:22 UTC
mysql_1  | 2018-05-08 13:38:23<PHONE_NUMBER>31072 [Note] /usr/sbin/mysqld (mysqld 10.1.31-MariaDB) starting as process 151 ...
pgsql_1  | LOG:  MultiXact member wraparound protections are now enabled
pgsql_1  | LOG:  autovacuum launcher started
pgsql_1  | LOG:  database system is ready to accept connections
mysql_1  | OK
mysql_1  | Creating OpenGIS required SP-s...
mysql_1  | 2018-05-08 13:38:26<PHONE_NUMBER>06944 [Note] /usr/sbin/mysqld (mysqld 10.1.31-MariaDB) starting as process 180 ...
mysql_1  | OK
mysql_1  |
mysql_1  | To start mysqld at boot time you have to copy
mysql_1  | support-files/mysql.server to the right place for your system
mysql_1  |
mysql_1  | PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
mysql_1  | To do so, start the server, then issue the following commands:
mysql_1  |
mysql_1  | '/usr/bin/mysqladmin' -u root password 'new-password'
mysql_1  | '/usr/bin/mysqladmin' -u root -h <IP_ADDRESS> password 'new-password'
mysql_1  |
mysql_1  | Alternatively you can run:
mysql_1  | '/usr/bin/mysql_secure_installation'
mysql_1  |
mysql_1  | which will also give you the option of removing the test
mysql_1  | databases and anonymous user created by default.  This is
mysql_1  | strongly recommended for production servers.
mysql_1  |
mysql_1  | See the MariaDB Knowledgebase at http://mariadb.com/kb or the
mysql_1  | MySQL manual for more instructions.
mysql_1  |
mysql_1  | You can start the MariaDB daemon with:
mysql_1  | cd '/usr' ; /usr/bin/mysqld_safe --datadir='/var/lib/mysql/'
mysql_1  |
mysql_1  | You can test the MariaDB daemon with mysql-test-run.pl
mysql_1  | cd '/usr/mysql-test' ; perl mysql-test-run.pl
mysql_1  |
mysql_1  | Please report any problems at http://mariadb.org/jira
mysql_1  |
mysql_1  | The latest information about MariaDB is available at http://mariadb.org/.
mysql_1  | You can find additional information about the MySQL part at:
mysql_1  | http://dev.mysql.com
mysql_1  | Consider joining MariaDB's strong and vibrant community:
mysql_1  | https://mariadb.org/get-involved/
mysql_1  |
mysql_1  | root $ mysqld --skip-networking &
mysql_1  | 2018-05-08 13:38:30<PHONE_NUMBER>32384 [Note] mysqld (mysqld 10.1.31-MariaDB) starting as process 210 ...
mysql_1  | [INFO] Initializing ...
mysql_1  | [INFO] Setting up root user permissions.
mysql_1  | [INFO] Shutting down MySQL.
mysql_1  | root $ kill -s TERM 210
mysql_1  | [INFO] MySQL successfully installed.
mysql_1  | [INFO] Starting mysqld  Ver 10.1.31-MariaDB for Linux on x86_64 (MariaDB Server)
mysql_1  | 2018-05-08 13:38:33<PHONE_NUMBER>04096 [Note] mysqld (mysqld 10.1.31-MariaDB) starting as process 1 ...
mongo_1  | 2018-05-08T11:38:48.567+0000 I NETWORK  [listener] connection accepted from <IP_ADDRESS>:49978 #1 (1 connection now open)
mongo_1  | 2018-05-08T11:38:48.568+0000 I NETWORK  [conn1] received client metadata from <IP_ADDRESS>:49978 conn1: { driver: { name: "mongoc / ext-mongodb:PHP", version: "1.9.4 / 1.4.3" }, os: { type: "Linux", name: "Debian GNU/Linux", version: "9", architecture: "x86_64" }, platform: "cfg=0x156b8e9 posix=200809 stdc=201112 CC=GCC 6.3.0 20170516 CFLAGS="-g -O2" LDFLAGS="" / PHP 7.2.5" }
mongo_1  | 2018-05-08T11:38:48.652+0000 I NETWORK  [listener] connection accepted from <IP_ADDRESS>:50018 #2 (2 connections now open)
mongo_1  | 2018-05-08T11:38:48.654+0000 I NETWORK  [conn2] received client metadata from <IP_ADDRESS>:50018 conn2: { driver: { name: "mongoc / ext-mongodb:PHP", version: "1.9.4 / 1.4.3" }, os: { type: "Linux", name: "Debian GNU/Linux", version: "9", architecture: "x86_64" }, platform: "cfg=0x156b8e9 posix=200809 stdc=201112 CC=GCC 6.3.0 20170516 CFLAGS="-g -O2" LDFLAGS="" / PHP 7.2.5" }
mongo_1  | 2018-05-08T11:38:48.658+0000 I NETWORK  [listener] connection accepted from <IP_ADDRESS>:50022 #3 (3 connections now open)
mongo_1  | 2018-05-08T11:38:48.659+0000 I NETWORK  [conn3] received client metadata from <IP_ADDRESS>:50022 conn3: { driver: { name: "mongoc / ext-mongodb:PHP", version: "1.9.4 / 1.4.3" }, os: { type: "Linux", name: "Debian GNU/Linux", version: "9", architecture: "x86_64" }, platform: "cfg=0x156b8e9 posix=200809 stdc=201112 CC=GCC 6.3.0 20170516 CFLAGS="-g -O2" LDFLAGS="" / PHP 7.2.5" }
mongo_1  | 2018-05-08T11:39:04.476+0000 I NETWORK  [listener] connection accepted from <IP_ADDRESS>:50072 #4 (4 connections now open)
mongo_1  | 2018-05-08T11:39:04.478+0000 I NETWORK  [conn4] received client metadata from <IP_ADDRESS>:50072 conn4: { driver: { name: "mongoc / ext-mongodb:PHP", version: "1.9.4 / 1.4.3" }, os: { type: "Linux", name: "Debian GNU/Linux", version: "9", architecture: "x86_64" }, platform: "cfg=0x156b8e9 posix=200809 stdc=201112 CC=GCC 6.3.0 20170516 CFLAGS="-g -O2" LDFLAGS="" / PHP 7.2.5" }
mongo_1  | 2018-05-08T11:39:04.536+0000 I NETWORK  [listener] connection accepted from <IP_ADDRESS>:50112 #5 (5 connections now open)
mongo_1  | 2018-05-08T11:39:04.537+0000 I NETWORK  [conn5] received client metadata from <IP_ADDRESS>:50112 conn5: { driver: { name: "mongoc / ext-mongodb:PHP", version: "1.9.4 / 1.4.3" }, os: { type: "Linux", name: "Debian GNU/Linux", version: "9", architecture: "x86_64" }, platform: "cfg=0x156b8e9 posix=200809 stdc=201112 CC=GCC 6.3.0 20170516 CFLAGS="-g -O2" LDFLAGS="" / PHP 7.2.5" }
mongo_1  | 2018-05-08T11:39:04.542+0000 I NETWORK  [listener] connection accepted from <IP_ADDRESS>:50116 #6 (6 connections now open)
mongo_1  | 2018-05-08T11:39:04.542+0000 I NETWORK  [conn6] received client metadata from <IP_ADDRESS>:50116 conn6: { driver: { name: "mongoc / ext-mongodb:PHP", version: "1.9.4 / 1.4.3" }, os: { type: "Linux", name: "Debian GNU/Linux", version: "9", architecture: "x86_64" }, platform: "cfg=0x156b8e9 posix=200809 stdc=201112 CC=GCC 6.3.0 20170516 CFLAGS="-g -O2" LDFLAGS="" / PHP 7.2.5" }
^CGracefully stopping... (press Ctrl+C again to force)
Stopping devilbox_redis_1 ... done
Stopping devilbox_pgsql_1 ... done
Stopping devilbox_mysql_1 ... done
Stopping devilbox_mongo_1 ... done
Stopping devilbox_memcd_1 ... done
Stopping devilbox_httpd_1 ... done
Stopping devilbox_php_1   ... done
Stopping devilbox_bind_1  ... done
[kus@localhost devilbox]$

OK, then it is a permission issue with SE Linux. Unfortunately I have never used it myself and have no idea how that works. For now I can only make a note in the documentation. If you want to dig into SE Linux and find something, please let me know.

This article talks about how to audit selinux security for an application:
http://robinbowes.com/article.php/20060206181015320

what is the output of ausearch -m avc -ts recent?

If the compose is volume mounting content into the container, then make sure you are either lableing the content correctly by adding a :Z or :z to the volume mount.    If you need to share content on the host which will be used both outsize and inside the container, you can disable SELinux container separation with the --security-opt label:disable option.

I would mount the volumes for the containers as described at @rhatdan for php-fpm I would enable httpd_network_connect 1 using setsebool -P httpd_network_connect 1

Thank you, I used setsebool -P httpd_can_network_connect 1 and blindly applied :z everywhere I could and devilbox loads fine now.
Is it ok to add :z or :ro,z everywhere? Adding z shouldn't break anything, right?
Here's my full paste
https://paste.fedoraproject.org/paste/cLK8uW3uwaxzBz5oz7gDRQ/raw
Thank you!

Thank you @rhatdan
Specifically, is there a reason to not add z to the volumes here? I am thinking about submitting a pull request once I get it running...

@rhatdan thanks for clearing things up, I had a similar issue on a KVM guest and that boolean worked, once again thanks again for the clarification @rhatdan


[Event Request] Codeunit 392 Reminder-Make - OnLoopCurrencyBeforeMakeReminder

Please add a new publisher event to the function Code like this:
[External] Code() RetVal : Boolean
.
.
  CustLedgEntry.COPYFILTERS(CustLedgEntry2);
  RetVal := TRUE;
  IF Currency.FINDSET THEN
    REPEAT
//>> Start event publisher
      OnLoopCurrencyBeforeMakeReminder(Currency, ReminderHeader, RetVal, IsHandled);
      IF NOT IsHandled THEN
//>> End event publisher
        IF NOT MakeReminder(Currency.Code) THEN
          RetVal := FALSE;
    UNTIL Currency.NEXT = 0;
END;
.
.

New Publisher Event:
LOCAL [IntegrationEvent] OnLoopCurrencyBeforeMakeReminder(Currency : Record Currency;VAR ReminderHeader : Record "Reminder Header";VAR RetVal : Boolean;VAR IsHandled : Boolean)

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Setting creation_date and modification_date of entries programatically is buggy

When committing entries:

$entry->set('creation_date', $date) will only work if setDataFromPost is used in dry-run mode.
$entry->set('modification_date', $date) doesn't work at all.

@brendo already has a test scenario (that I created for #2398).

Thanks Michael!

Looking at the code this is by design when using $simulate (dry-run).
When creating an Entry, it's desirable to use Entry->assignEntryId() which will create an initial row in the database and set the resulting auto_increment value as the Entry ID. Note that this function will set the creation_date and modification_date, but it doesn't set them onto the Entry object (bug).
Now, if this function is not run, it's ok, because the Entry->setDataFromPost function will automatically call it if the current Entry object does not have an id. This works as long as $simulate is false however in the test case provided for #2398 the $simulate flag is set to true, so the assignEntryId function is never called.
Now the date settings can be set programmatically ($entry->set('creation_date', date-here)), and this would work... but then there's another twist in the tale. The Entry->commit() function is used to actually persist the data to the database. This in turn calls Entry->findDefaultData(), which will override the modification_date value and set the creation_date if it's omitted (which it will be in a simulate scenario - unless it's added programmatically).
Now if the id is never set for the Entry, EntryManager::add() is called, passing the Entry object. add() will insert the entry data into tbl_entries, essentially just how assignEntryId() works, but it will not set any default values.
So to circle back:

setting modification_date programmatically is ignored, as it's always overridden
assignEntryId() creates the initial row, but doesn't set the creation date, modification date or author ID on the Entry object
there's some duplication going on between Entry and EntryManager classes which could be tidied up

@michael-e Can you clarify "doesn't work"? I'd expect that the modification date set programmatically would be ignored, but if creation date was set, that should be persisted the database.

$entry->set('modification_date', $date) doesn't work at all.

I meant that it is ignored, no matter if dry-run mode is used or not. It is always ignored.

$entry->set('creation_date', $date) will only work if setDataFromPost is used in dry-run mode.

Was supposed to say: Using dry-run mode I can set it programatically. Without dry-run mode it is ignored.
Can you confirm this?

I meant that it is ignored, no matter if dry-run mode is used or not. It is always ignored.

Yep, it will always be ignored because Entry->findDefaultData() will override it. Confirmed.

Was supposed to say: Using dry-run mode I can set it programatically. Without dry-run mode it is ignored.

I can't confirm this, setting $simulate to true or false still allows the test case to programmatically set the creation_date.

In the test case we have:
$entry->set('creation_date', DateTimeObj::get('Y-m-d H:i:s', '2000-01-01 00:00:00'));
$entry->set('creation_date_gmt', DateTimeObj::getGMT('Y-m-d H:i:s', '2000-01-01 00:00:00'));

In my environment, both definitely get ignored (and the current date will be used) when I do
$entry->setDataFromPost($fields, $errors, false)

(in line 87 of the test case). Can you double-check?

Inability to set the modification date programatically:
Looking at these lines I wonder if this is indeed intended behaviour. @brendo: Should we change this? (It would be pretty simple.)

Setting the creation date only works if setDataFromPost is used in dry-run mode:
For new entries, assignEntryId will be called — but only when $simulate == false. The latter will always set the creation date and the author ID. Hmmm, I don't really understand the intention behind that, if feels more like a bug to me.

Yes, we can change this one pretty easily to not set the modification_date if it's already been set (similar to values below it)

assignEntryId is only called when $simulate = false, and there is not an existing id set on the entry. That's correct behaviour to me?

OK, should I send a pull request to the 2.6.x branch? Or will you care?

You mentioned that running an importer script, for example, can be problematic for certain fields if $simulate = true. But currently the ability to set a creation date for entries depends on $simulate. I am not sure if this is logical. I mean, how will a developer who builds an importer (or any other script creating entries) know this? (Still, I can live with that if you say that this is the right approach. We are probably talking about edge cases here.)

Yep that's fine!

The $simulate should only be used, (eg. set to true) if you want to simulate the data being added into Symphony. If you actually want the data to be persisted to the database, it should be set to false (which it is by default?)

Yeah, but then you can't set the entry's creation date. :-(

This  is why I used true. Data was saved anyway, by commiting the entry (which might be a bit hard to understand).

Re: 1. Pull request sent—tested, of course. It is now possible to set the modification date of an entry programmatically.
Re: 2. I am OK with leaving it as it is.
 Assumed that, in an extension or a background process, I fetch a Symphony entry in order to manipulate one of the fields, the re-commit the entry: Should I call checkPostData and setDataFromPost in this case? Or is it enough to commit()? (As you see, I don't really understand the meaning of these two funtions...)

@michael-e  @brendo I would be interested in the answer myself ;)

This is why I used true. Data was saved anyway, by commiting the entry (which might be a bit hard to understand).

The simulation is only specific to the setDataFromPost function. If commit() is called afterwards, it doesn't have any concept of what was sent to setDataFromPost and so it'll continue with it's job of persistence.

Yeah, but then you can't set the entry's creation date. :-(

Well yes, at the moment, the creation date is when the entry was persisted to the database. We can solve this by removing these lines and adding the author check to the findDefaultData function. findDefaultData already handles the setting of the creation/modification dates, and supports not overriding them if they have been set. This would a be 3.x change though.

Should I call checkPostData and setDataFromPost in this case? Or is it enough to commit()? (As you see, I don't really understand the meaning of these two functions...)

checkPostData is the validation step. It takes the data and asks all the fields to validate that it meets the requirements dictated by the field settings such as if it's required, meets the regular expression pattern etc.
setDataFromPost works on the assumption that the data is now correct because it's been validated. It pairs up with the field's processRawFieldData function to transform the data that was submitted via POST (or anywhere), into a format that matches the field's database tables.
So if you look at it like that, checkPostData is validation, setDataFromPost is transformation and commit is persistence.
Hope that helps!

So if you look at it like that, checkPostData is validation, setDataFromPost is transformation and commit is persistence.

+1 Thanks for the clarification !

Yep, thanks a lot, @brendo!

Well yes, at the moment, the creation date is when the entry was persisted to the database. We can solve this by removing these lines and adding the author check to the findDefaultData function. findDefaultData already handles the setting of the creation/modification dates, and supports not overriding them if they have been set. This would a be 3.x change though.

Should we leave this issue open then? Or should we rather say "there's no real need for that"? I won't insist, because I also see the logic behind the current concept.

We have a problem.
My fix which has been pulled leads to a very strange situation. When an entry is saved in the backend, the modification_date_gmt will be updated, but the modification_date will not.
 But there is one more thing that really bothers me: How the hell can it be that the system behaves so strange?

var_dumping an entry object immediately before the lines in question shows some interesting inconsistency:
object(Entry)#60 (3) {
  ["_fields":protected]=>
  array(5) {
    ["id"]=>
    string(6) "512436"
    ["author_id"]=>
    string(1) "1"
    ["section_id"]=>
    string(1) "3"
    ["creation_date"]=>
    string(25) "2015-05-01T18:48:14+02:00"
    ["modification_date"]=>
    string(25) "2015-05-01T18:48:14+02:00"
  }
  ["_data":protected]=>
  array(7) {
    [10]=>
    array(2) {
      ["value"]=>
      string(10) "Ted Tester"
      ["handle"]=>
      string(10) "ted-tester"
    }
    [11]=>
    array(1) {
      ["relation_id"]=>
      int(512411)
    }
  }
  ["creationDate"]=>
  string(25) "2015-05-01T18:48:14+02:00"
}

The entry doesn't have any modification_date_gmt property. Nor does it have a creation_date_gmt, nevertheless the function attempts to set this.

At least the above explains the behaviour with my "fix" (which should be reverted). There is a modification_date, so that will remain unchanged. The modification_date_gmt, however, will be set to the current date.
But the process of saving entries in Symphony is over my head.

@michael-e I think we need, again, @brendo to give us some insights...

I am also OK with giving up on this, I can use a custom field to achieve what I need. I pass the decision to @brendo.

Yes, in hindsight that fix doesn't work at all because it can't determine between the initial modification_date is not set for entry creation, and an edit scenario. In an edit, there's nothing to let us know if the modificaiton_date is 'dirty' or not. Interesting

At the moment — working hard to get a project up and running — I have a real talent to open Pandora's box(es). But as I said, we might just quickly close this box, at least for now. I have implemented a custom field that gives me greater flexibility anyway.

I've reverted the fix for the meantime, but yes, you have a knack of discovering some deep flaws in our architecture! From experience, this problem seems to be something that I've seen handled by the concept of 'dirty' objects. Angular and Laravel (I'm sure others as well) maintain a state of the object, and then are able to different the properties to see if anything has changed.
I believe if we could do this, we could do 'if modification date is dirty, don't set it, otherwise set it to be the current time', which would solve our problem and have the code work in both scenarios (programmatically or via the UI).

@brendo I'd love to have a dirty state. But those things are hard to get right. I'd would love to review any code related to this :)

Agree. My initial thoughts were to overload the Entry->set/setData functionality. Anytime that is used, the property is added to a dirty heap. On further investigation I don't believe this will won't because we actually use those setters internally to build the entries from within the EntryManager. This leads to a more complex 'dirty' check, where secondary calls to the setters are compared to existing data to determine the state. This may be able to be achieved simply by hashing the data and if the hashes don't match, flag that property as dirty. Maybe? What do you think?

I really like the hash idea. But, from experience, the best dirty system I've build required dev to manually set the dirty bits. One could want to change the entries in memory but not persist the change.
Also, I would try to see if a global dirty bit would be enough. Or maybe per field dirty bit...
I do not know if comparing array is faster than hashing. Is easier to code tho.

Kepp cool. Apart from a performing a programming exercise, what would we win? We'd make a "naturally grown" architecture even more knotted. I'd suggest to revisit this issue when the time comes to re-write this architecture anyway.
(I am not even sure that setting these dates programatically is indeed desirable. It was just, well, I tried it…)

LOL. Having this kind of system would enable perf optimisation. But hey, it's not a requirement...

This is fixed in 3.0.0


Integration

Fixes for NVMX integration branch.
PR is only for testing on Jenkins, no review please.

bors try

bors try

bors try


Add tinty config subcommand to add config related information

tinty config with the relevant flags --config-path and --data-path can be useful when debugging to make sure that the expected config is applied and the expected config and data directories are being used by Tinty.
https://github.com/tinted-theming/tinty/issues/21

looks good to me
maybe a --config-file could be even more useful for a user to directly edit the file
vi $(tinty config --config-file)

There are sets of functionality with this:

tinty config - prints the config.yml file
tinty config --config-path - prints the path to config.yml, so you could vi $(tinty config --config-path)
tinty config --data-path - prints the path to the data dir, which on linux is ~/.local/share/tinted-theming/tinty

Yes, I think I'll change --data-path to --data-dir-path to contrast with --config-path to remove ambiguity of --config-path returning a directory. Thanks for bringing that up!


react 18 support?

Describe the bug
seems to require react v17 somewhere?
peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>but I can't see this in the 'engines' spec.
To Reproduce
➜  battle-traits git:(main) ✗ npm i react-metamask-avatar
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/react
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/react-metamask-avatar
npm ERR!   react-metamask-avatar@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:
npm ERR! /Users/dc/.npm/_logs/2023-09-04T23_32_50_523Z-eresolve-report.txt

npm ERR!      /Users/dc/.npm/_logs/2023-09-04T23_32_50_523Z-debug-0.log

forked and changed the peer deps but still complaining;
 ✗ npm i https://github.com/dcsan/react-metamask-avatar
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package<EMAIL_ADDRESS>npm WARN EBADENGINE   required: { node: '>= 16.17.0', yarn: '>= 1.22.0', npm: 'please-use-yarn' },
npm WARN EBADENGINE   current: { node: 'v18.16.1', npm: '9.5.1' }
npm WARN EBADENGINE }

oh hey @dcsan! Sorry I have turned off notifications from Github it seems. Let me have a look today and see what can be done!

@dcsan can you check if version 1.3.0 of the library works for you?


Stripe elements

Starting to integrate Stripe elements

This PR is ready for review.  Would love a second pair of eyes on a bit of testing/looking at the code.

To run locally, open two terminals and run npm start in both the join-form-js/ and signup-worker/ directories

@stephenmcmurtry I'd like to get this into QA so we can have some real users run through and turn up any blocking issues.  The  README says to talk to you about that :-)

@jonahbron @stephenmcmurtry ping for status

Rollout plan

[ ] Capture rollback point

[ ] Capture current signup worker version: current
[ ] Capture current join form: current

[ ] Deploy latest version

[ ] Deploy latest signup worker with wrangler deploy
[ ] Deploy latest join form with wrangler deploy

[ ] Verify update

[ ] Run through signup in production

[ ] Rollback or merge

If a blocking issue is encountered, switch to old version captured above and rollback
If no blocking issues are found, merge this PR
File issues in Github for any non-blocking issues

Testing observations:

Server key needs to have rak_setup_intent_read permission
User is told everything about their bank information goes to stripe; might be good to tell the user we don't receive or use any of that info, only use it to charge them
Using incorrect credit card information allowed the flow to progress but with no payment method attached.

Couple of additional notes:

One hiccup was needing to update the Webflow site to add the stripe payment container div
ACHv2 means that if you go through the bank account flow, you also receive an email address with confirmation of addition (so the mandate, I guess?). Very fancy! Also confirmed that with ACHv2 configured, the billing portal does indeed allow self-update of payment method. Yay!
The $5 init fee is now rolled into the first monthly dues charge, Matt is going to separately check whether the onboarding python script needs any updates to support this (maybe taking out one of the stripe checks)

Thanks so much Jonah!

Additional observations:

To get the new form code working on the live AWU site, we needed to add an additional

 inside of the <awu-signup> element.
The Plaid API key and plaid-token-worker are no longer needed, and can be removed.
We should verify that the code to automatically enable the dues subscription during onboarding works with the new subscription setup.
We still need a way for members on ACHv1 to delete their old payment methods before adding a new one via the Stripe customer portal.


Allow to check if block-area should be shown

I've added a method which make it possible to check if the block_area-div should be visible.
This is the case if blocks are available or the block_preview flag is set.
(Further the area preview should not work if user cannot edit the page ...)
I din't updated the template, because of backward compatibility, but it should look like this:
<% if $HasBlockArea %>
<div class="block_area block_area_$AreaID.LowerCase" data-areaid="$AreaID">
<% loop $BlockArea %>
	$BlockHTML
<% end_loop %>
</div>
<% end_if %>

Secondly the forTemplate()-method now use the Controller object instead of the bare Block-object for rendering. This is the same behaviour as for normal Pages; That is necessary for Forms for example.

@beerbohmdo FYI I've just reverted part of this because it caused an issue #66. I'm not sure why the failover isn't working but you're welcome to look into it to get your change back into the code base if you have time :)

I know this issue. It appears if no custom controller is defined.