WIP: Enable BUILD_LIBRARY_FOR_DISTRIBUTION for Release configuration

New Pull Request Checklist

[X] I have read and understood the CONTRIBUTING guide

[X] I have read the Documentation

[X] I have searched for a similar pull request in the project and found none

[X] I have updated this branch with the latest master to avoid conflicts (via merge from master or rebase)

[ ] I have added the required tests to prove the fix/feature I am adding

[ ] I have updated the documentation (if necessary)

[X] I have run the tests and they pass

[X] I have run the lint and it passes (pod lib lint)

Pull Request Description
Hello there,
The problem
Right now, if you will try to reuse CocoaLumberjack built with Swift 5.1 Toolchain with Xcode 11.2 (11.2.1GM) you get an error:
./Badoo/Platform/Foundation/source/logging/BPFLog.swift:6:8:
    Module compiled with Swift 5.1 cannot be imported by the Swift 5.1.2 compiler:
    ./Badoo/ThirdParty/Carthage/Build/iOS/CocoaLumberjackSwift.framework/Modules/CocoaLumberjackSwift.swiftmodule/x86_64-apple-ios-simulator.swiftmodule

Solution
Swift 5.1 is here with Module Stability support, and to be able to reuse CocoaLumberjack binaries between Swift Toolchains >= 5.1 we have to build it with BUILD_LIBRARY_FOR_DISTRIBUTION = YES option. In this pull request, the BUILD_LIBRARY_FOR_DISTRIBUTION option is enabled for the Release configuration.
This is the year when we blame Apple for missing documentation and this is the case. In general, this option does the following:

Ensures that your libraries are built for distribution. For Swift, this enables support for library evolution and generation of a module interface file.

If you want to know more, check "Binary Frameworks in Swift" session from WWDC'19.
We tested the solution, and it works just fine. You can build CocoaLumberjack with Swift 5.1 Toolchain and it will work/link for both Xcode 11.1-11.2 (aka, Swift 5.1 and Swift 5.1.1).
Cheers,
Artem | Badoo

Codecov Report

Merging #1110 into master will decrease coverage by 0.62%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1110      +/-   ##
==========================================
- Coverage   37.54%   36.92%   -0.63%
==========================================
  Files          23       23
  Lines        3870     3870
==========================================
- Hits         1453     1429      -24
- Misses       2417     2441      +24

Impacted Files
Coverage Δ

Sources/CocoaLumberjack/DDOSLogger.m
20.83% <0%> (-50%)
:arrow_down:

Tests/CocoaLumberjackTests/DDAtomicCounterTests.m
98.14% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

@sushichop @dive I'd be careful with this setting. There is a lot that can go wrong when enabling this setting. I think in one of the WWDC Talks (or release notes?) Apple recommends it mainly for binary distributed frameworks (such as the new xcframeworks). For libraries that are open source and ship the source code, it introduces overhead that is not really necessary.
This is mainly because, apart from watching out for source compatibility, we would then also have to check binary compatibility of each new version.
E.g. it becomes difficult to determine what version of the framework is actually used (since Xcode / Carthage / [...] might use a cached binary instead of re-building the sources). Then we might also miss out on fixes in the Swift compiler, because (like in this case) the source code is not re-compiled but instead uses the pre-compiled version (created by an older version of Swift).
So IMHO we should not use this setting (for now).

@ffried
Hmm..., you have a point there🙂

@ffried, I agree, the setting has some side effects. And yes, it is mainly for binary distributions (that's the case for us, we use Carthage). But I am not quite sure about any overheads for cases when the library is used via the source-code. In the case of the source-code distributions, you are more or less safe because the Swift Toolchain is always aligned between dependencies and your code-base (interfaces are stable, etc.).
But, for the users of the binaries, this is important because we do not have to rebuild CocoaLumberjack every time we migrate our internal code-base to the new Xcode version or change the toolchain. The most complicated scenario, for example, is to support two Xcode/Toolchain versions at the same time.
Swift Module Stability is not as stable as we want it to see of course (SR-11704, SR-11466), but I think it is important to support this feature for end-users of this beautiful framework.
@ffried, @sushichop, as an alternative and if you think that it will cost problems, let's try to have a separate branch where BUILD_LIBRARY_FOR_DISTRIBUTION is on for distribution configurations and mention it in the documentation. At least, we will have a chance to test it and gather feedback.

@dive

And yes, it is mainly for binary distributions (that's the case for us, we use Carthage).

In this case, Carthage is the one serving binaries - not us. Also, Carthage would be in the position to add this build setting before building here (maybe with an optional fallback in case the build fails with this setting).

But I am not quite sure about any overheads for cases when the library is used via the source-code. In the case of the source-code distributions, you are more or less safe because the Swift Toolchain is always aligned between dependencies and your code-base (interfaces are stable, etc.).

I'm not sure I understand your point here. If we enable this setting, we give up control over what compiler is used for a given binary. Like in your case, it might be a 5.1 compiler or a 5.1.2 compiler or a 5.1.1 compiler. We simply don't know. We also give up quite a few optimizations.
Also, we cannot guarantee that our library is used via source-code. In the case of Carthage, that might (to some degree) be true.
 In one of the bigger (closed source) projects I'm working, we also used Carthage in the beginning (we then switched to our own dependency management, but that's a different story). But we never let Carthage build any binaries. This way, supporting multiple Xcode/Toolchains is very easy. Since Xcode anyways rebuilds the dependencies, we never ran into any problems.
Adding the fact, that module stability, as you mentioned yourself, is not quite stable yet (from a compiler perspective), we should even more be careful with this setting.
Your idea of creating a branch where this setting is enabled could work for now, but adds the burden of keeping this branch up-to-date. But I could also live with just creating that branch for now and seeing where it leads. 🙃
In general, I think we should look at Apple's strategy here:
They have introduced two methods of integrating 3rd party frameworks in Xcode this year: Swift Package Manager and Binary Frameworks. The former is for open source projects and the latter for closed source projects. So from my point of view, SPM is what we primarily need to support and we added that support not long ago.
Again, Carthage could simply inject that build setting before building and support this for their own purposes - with all the benefits and downsides this setting has.
Also: That's just my opinion on this topic. If the team here decides differently, that's ok as well! 🙂

@dive Heck, let's just create that branch and see where it leads. 🙃
As long as no one requires it to be up-to-date (with master) at all times, this should be fine. I'll see if I can rebase it from time to time.
Here's the branch: binary_frameworks
Please let us know how it works out. 🙂

@dive Heck, let's just create that branch and see where it leads. 🙃

Yap. Any feedback is always welcome🙂

I'm not sure I understand your point here. If we enable this setting, we give up control over what compiler was used for a given binary. Like in your case, it might be a 5.1 compiler or a 5.1.2 compiler or a 5.1.1 compiler. We simply don't know. We also give up quite a few optimizations.
Also, we actually cannot guarantee that our library is used via source-code.

@ffried, yeah, I think we are talking about two different things. I was talking about the fact that there are not much differences and side-effects when you build CocoaLumberjack together with the application you are going to ship.

IMHO, the problem here lies more in the fact, that Carthage is already "faking" binaries...

@ffried, cannot agree more. But this is the current situation, and I believe not many developers care about it in real life.

But we never let Carthage build any binaries. This way, supporting multiple Xcode/Toolchains is very easy. Since Xcode anyways rebuilds the dependencies, we never ran into any problems.

@ffried, this is exactly what we are trying to avoid. Do not rebuild 3rd party binaries during development flows and continuous integration. For big applications, this is an unnecessary overhead.

@dive Heck, let's just create that branch and see where it leads. 🙃
As long as no one requires it to be up-to-date (with master) at all times, this should be fine. I'll see if I can rebase it from time to time.

@ffried, @sushichop, thanks! We are going to switch to the branch and test in the production environment. I will keep you posted about results here, in the comments. If you are curious, we are going to switch Bumble & Badoo applications. They are quite big, so, I hope, the first results will be available very soon.

@dive

I was talking about the fact that there are not much differences and side-effects when you build CocoaLumberjack together with the application you are going to ship.

That was exactly my point. You don't know that this is the case. In your case, Carthage decides whether this is the case or not. E.g. it might actually not re-build CocoaLumberjack when you update to a new version of Xcode.

But this is the current situation, and I believe not many developers care about it in real life.

Unfortunately they don't, yea. Many of them probably have no idea what's even happening under the hood. But that's a different story... 🙃

Do not rebuild 3rd party binaries during development flows and continuous integration. For big applications, this is an unnecessary overhead.

Is it, though? Xcode has become pretty good at deciding whether or not to re-build a certain dependency. At least that's my experience. In our medium-sized (almost pure-swift) 130kLOC project, we have clean builds that take around 7-10mins and incremental builds that take around 10-20s. Our OpenSource dependencies (including CocoaLumberjack) are basically never re-built in incremental builds (unless the environment changes, like with new Xcode versions).
Just out of curiosity: Have you tried letting Xcode decide whether or not to re-build the dependencies? If so, how big's the difference?

thanks! We are going to switch to the branch and test in the production environment. I will keep you posted about results here, in the comments. If you are curious, we are going to switch Bumble & Badoo applications. They are quite big, so, I hope, the first results will be available very soon.

Looking forward to it. 🙂

I've marked this PR as WIP and added the necessary labels so this won't be marked as stale.

Do not rebuild 3rd party binaries during development flows and continuous integration. For big applications, this is an unnecessary overhead.

Is it, though? Xcode has become pretty good at deciding whether or not to re-build a certain dependency. At least that's my experience. In our medium-sized (almost pure-swift) 130kLOC project, we have clean builds that take around 7-10mins and incremental builds that take around 10-20s. Our OpenSource dependencies (including CocoaLumberjack) are basically never re-built in incremental builds (unless the environment changes, like with new Xcode versions).
Just out of curiosity: Have you tried letting Xcode decide whether or not to re-build the dependencies? If so, how big's the difference?

@ffried, we try every two or three months :) But this topic is complicated, at least for us. These are the main issues with have:

We have a lot of 3rd party dependencies and some of them are distributed only as binaries. For us, it is a convenient way to manage all dependencies at once via the same flow;
We use wholemodule compiler optimisation everywhere internally because incremental option still does not play well with mixed code-base (Swift + Objective C) and bridging headers. It is not directly related to the topic, but we have to execute clean builds even during development because sometimes we have strange issues with the module cache and cached artefacts. So, clean builds are unavoidable, and we do not want to multiply the clean compilation time by 3-5x due to 3rd parties;
On CI we use clean builds only, even for unit-tests targets. We try to reuse Derived Data time-to-time and always have problems with flakiness and instabilities. This is too pricy for us to have flaky CI.

So, this is a complex combination of Xcode & xcbuild & Swift Toolchain issues, our code-base, legacy stuff, mistakes made in the past, priorities and weather, but clean builds are part of our flow. At least for now. But, in general, I think there is nothing wrong with using 3rd party modules as binaries (except for the issues with Carthage behaviour you mentioned above, but this is a different story).

@dive Thanks a lot for the insights here! Very interesting to hear about the experiences in other larger scale projects!
On our CI, we also do clean builds every time. But I don't care if the CI takes a few minutes longer. It's a powerful machine that can handle a few parallel builds and I don't need to wait for it.
As for the mixed code-base: this is why we separated our code. All of our frameworks (both 3rd party and our own) are either built with only Swift or only Objective-C (or some other form of C 😛). Hearing your experiences, it seems like this saves us from a lot of trouble 🙂
Again, I never spoke against binary 3rd party dependencies. I just don't like the thought of one dependency being distributed as both, binary and source. If some tool transforms source into binary, that's another thing, but then that tool should be responsible for creating the most reusable binary possible. So maybe you might also open an issue against Carthage and propose that they inject the BUILD_LIBRARY_FOR_DISTRIBUTION build setting when they build their binaries...?

@ffried,

@dive Thanks a lot for the insights here! Very interesting to hear about the experiences in other larger scale projects!

 For me, It is always interesting to hear how it works in other companies too.

On our CI, we also do clean builds every time. But I don't care if the CI takes a few minutes longer. It's a powerful machine that can handle a few parallel builds, and I don't need to wait for it.

It depends on the volume of jobs you have on CI and the size of your team. When you have around 100 jobs to integrate a branch or run all checks multiplied by 30-50 developers that deliver releases every week for 5 applications, then "a few minutes" become "a few hours", etc. So, yeah, there is no silver bullet, all these requirements are specific to the problem you are trying to solve.

As for the mixed code-base: this is why we separated our code. All of our frameworks (both 3rd party and our own) are either built with only Swift or only Objective-C (or some other form of C 😛). Hearing your experiences, it seems like this saves us from a lot of trouble 🙂.

I hope you got a nice bonus for this 😃. It saved you a lot of time and money.

So maybe you might also open an issue against Carthage and propose that they inject the BUILD_LIBRARY_FOR_DISTRIBUTION build setting when they build their binaries...?

I do not want to do it because this is precisely my general complaint about Carthage - they implicitly change build rules without any options to prevent it or be informed about it. There is a nice discussion in the issue I mentioned above about Carthage philosophy.
Also, I think that owners of frameworks have to be aware of such changes. Otherwise, we will have situations when something does not work due to BUILD_LIBRARY_FOR_DISTRIBUTION propagated by Carthage, but the owner is not aware. It would be hard to solve such issues or even convince the owner to take a look (you know, when you have that feeling that you own the code but, in the real-life, some 3rd party tools make unsupported changes you have to fix to).

@dive

So maybe you might also open an issue against Carthage and propose that they inject the BUILD_LIBRARY_FOR_DISTRIBUTION build setting when they build their binaries...?

I do not want to do it because this is precisely my general complaint about Carthage - they implicitly change build rules without any options to prevent it or be informed about it. There is a nice discussion in the issue I mentioned above about Carthage philosophy.
Also, I think that owners of frameworks have to be aware of such changes. Otherwise, we will have situations when something does not work due to BUILD_LIBRARY_FOR_DISTRIBUTION propagated by Carthage, but the owner is not aware. It would be hard to solve such issues or even convince the owner to take a look (you know, when you have that feeling that you own the code but, in the real-life, some 3rd party tools make unsupported changes you have to fix to).

In general, I agree here. But IMHO tools should be allowed to make adjustments to make things work. Cocoapods does so, Carthage does and even SPM does that. The problem with Carthage is, that they chose a different approach than the other two tools:
While Cocoapods and SPM provide defaults that can be overridden / adjusted by a framework owner and/or people who integrate the framework, Carthage started off as a "zero configuration" tool (which is a cool idea!) and then noticed, that they still had to make changes. And instead of introducing a way to configure these changes, they simply baked them into the tool.
Imagine if there was a file (let's call it Cartconf), where we could adjust how Carthage treats our project. In the current case, there could be an opt-out option for BUILD_LIBRARY_FOR_DISTRIBUTION where owners could permanently disable the injection of this flag by Carthage.
But I'm just a dreamer dreaming of a world with usable and clever tools... 😉

Guys, great talk here. I only read it diagonally, but I do like how you've approached it (dedicated branch vs having the setting in our releases). 👍

PS: we can wait and see how other open source frameworks handle this. I did a quick search (https://github.com/search?q=BUILD_LIBRARY_FOR_DISTRIBUTION&type=Code) but didn't see any open source having this on.

Small update about the current state. We released applications with CocoaLumberjack built from binary_framework branch. There are no crashes, misbehaviours or any other issues so far. To make the picture more precise, this is how we use CocoaLumberjack during development and on production:

General: we link CocoaLumberjack as a binary dependency built with Carthage; DDFileLogger is always turned on for all configurations;
Development: we use DDOSLogger by default with the option to log to the file. Did not notice any problems during development, collecting log on CI or from test devices;
Production: we attach the last log in the rotation to our crash-reports as additional information. No regressions or differences with previous versions.

But, there is one important note: CocoaLumberjack was built with Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1<IP_ADDRESS>) and we use the same Swift Toolchain to build our applications for distribution.
So, the next step is to switch our applications to the Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1<IP_ADDRESS>) toolchain but keep the same binary for CocoaLumberjack. After this, we will be able to check the "module stability" feature between toolchains, and, perhaps, this is a proper test for the technology.
I will update the conversation when I have more news.

Hello there,
Quick update.
I think we can postpone this PR for a long time. Just tested with Xcode 11.4 and you still cannot import frameworks with swiftinterface (produced by BUILD_LIBRARY_FOR_DISTRIBUTION) that were built with Swift 5.1 Toolchain.
Let's wait for Swift 6...

Sorry about that @dive. We'll need to wait then

@dive Even if this PR couldn't get merged (yet), I think you could definitely bring value to our project, so we would like to invite you to become a maintainer – no pressure to accept! You can pitch in with what seems comfortable: comment on open issues/PRs, triage, improve documentation, write your own PRs. Let me know if you are interested.

Hello there,
Long time no see! :) I have intermediate good news, I was able to build CocoaLumberjack with BUILD_LIBRARY_FOR_DISTRIBUTION option from the branch and re-use it with both Xcode 11.7 (Swift 5.2) and Xcode 12 (Swift 5.3) with iOS support >= 12. So far, all our tests are passing, release/debug and other configurations work as expected.
I will update the message when Bumble application will be released with CocoaLumberjack in this configuration.
P.S. Thank you, @ffried, for keeping the branch up to date!

@dive Even if this PR couldn't get merged (yet), I think you could definitely bring value to our project, so we would like to invite you to become a maintainer – no pressure to accept! You can pitch in with what seems comfortable: comment on open issues/PRs, triage, improve documentation, write your own PRs. Let me know if you are interested.

Hi, @bpoplauschi! Sorry for the delayed answer. Somehow I missed the message. And thank you for the invitation!
To be honest, I doubt that I will be able to devote any reasonable time to such activities. Anyway, I have switched to the "Be notified of all conversations" mode for the project, let's check what comes of it.

@dive sounds good, just let me know if / when this changes, so I can send you an invite, as you are welcome :)

@dive sounds good, just let me know if / when this changes, so I can send you an invite, as you are welcome :)

Hi guys,
I'm not quite sure if this issue is related to the following one, but just in case, talking about library evolution itself I'm trying to compile my project using Xcode 13 beta 3 and I get the following error:

❌  /.../DerivedData/SourcePackages/checkouts/CocoaLumberjack/Sources/CocoaLumberjackSwift/DDLog+Combine.swift:16:5: failed to build module 'Combine'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.5 (swiftlang-13<IP_ADDRESS> clang-13<IP_ADDRESS>)', while this compiler is 'Apple Swift version 5.5 (swiftlang-13<IP_ADDRESS> clang-13<IP_ADDRESS>)'). Please select a toolchain which matches the SDK.
#if canImport(Combine)

Since I'm consuming the source code of the project through SwiftPM, I'm confused of why I might be getting it. I've even tested (although pointless for this case) with the binary_frameworks branch with the same result. Does it mean that Apple theirselves have the same issue with the Combine library?


feat: add development compile option

Compile FFmpeg and the library with DWARF info for runtime debugging.

Hi @ForeverSc! I've been using these flags to enhance the debugging experience. Rather than seeing ffmpeg and the lib as a black box I can jump into the source code from the devtool, which is always nice.
Running this way also shows some failing assertions. Stream type specific attributes, like pix_fmt are being assigned to invalid strings. It does not cause any noticeable issues as emscripten handles it but could be addressed nonetheless. I can open a PR for the later.


Add cloud and local quick starts

Current dependencies on/for this PR:

#521  👈
main

This stack of pull requests is managed by Graphite.


refactor(linter): remove all old parse_general_jest_fn_call in jest rules

Current dependencies on/for this PR:

main

PR #1208

PR #1225

PR #1226

PR #1228

PR #1229

PR #1231

PR #1232   👈

This stack of pull requests is managed by Graphite.

Merge activity

Nov 12, 5:36 AM: @Boshen started a stack merge that includes this pull request via Graphite.


Make it possible to not log

Right now, it's not possible to not log, when using e.g. vapor/apns (see also issue #38), because the Request.logger or Application.logger is used as a fallback. When the parameter logger is set to nil, the logging should be disabled.
As a workaround for now, I'm passing the SwiftLogNoOpLogHandler (i.e. Logger(label: "no op logger", factory: { _ in SwiftLogNoOpLogHandler() })), but I'd rather pass nil to remove logging.
I'm happy to open a PR, but maybe we can discuss first about it: At first it's the self.logger fallback for the APNSwiftClient, but there is another fallback to self.configuration.logger in the APNSwiftConnection. The second one is not that a huge deal, because we can just pass nil in the configuration. The first one could maybe use some kind of default value instead of nil to fallback to self.logger. What do you think? Or is this behaviour just like intended?
(A small note, why I want to avoid those logs: They are a bit too verbose for me to be logged in log level info. I can achieve almost the same logs from "outside" the library and add some more detail to the logs.)

@code28 great question. In order to not have a major version bump we should make the PR such that existing functionality is retained, and new initializers call the "old" ones.
So basically the default value is the old way, and a new method signature can be adopted by whomever prefers.
Does that answer your question?

Closing in favor of the PR open.


micronaut: 3.7.2 -> 3.7.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/micronaut-projects/micronaut-starter/releases.
meta.description for micronaut is: "Modern, JVM-based, full-stack framework for building microservice applications"
meta.homepage for micronaut is: "https://micronaut.io/"
meta.changelog for micronaut is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.7.4 with grep in /nix/store/5q093d6rd50llm3bhpbhxg93yhk381pb-micronaut-3.7.4
found 3.7.4 in filename of file in /nix/store/5q093d6rd50llm3bhpbhxg93yhk381pb-micronaut-3.7.4

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
micronaut

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/5q093d6rd50llm3bhpbhxg93yhk381pb-micronaut-3.7.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A micronaut https://github.com/r-ryantm/nixpkgs/archive/c7df1174e8621ab88c88f48c00665f2b2c003a75.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/5q093d6rd50llm3bhpbhxg93yhk381pb-micronaut-3.7.4
ls -la /nix/store/5q093d6rd50llm3bhpbhxg93yhk381pb-micronaut-3.7.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

micronaut

Maintainer pings
cc @moaxcp for testing.

LGTM


Look into using WonderXML for XML Parsing

Our home-brewed XML parser has never really come into its own. I've recently become aware of Google's WonderXML, which supports parsing and serializing: http://code.google.com/p/wonderxml/

Looks like this wants to do XML -> property mapping...


Release Google.Cloud.Storage.V1 version 4.3.0

Changes in this release:
New features

Retry Bucket.SetIamPolicy only conditionally. (commit 3c70dd2)

Created release for Google.Cloud.Storage.V1-4.3.0


object mapper returns array with empty object when using transform function

Hi! I'm using object-mapper for simplifying objects and came across a bug(?) or at least an unexpected result. When using the transform function the mapper wil always create a empty object. Check the example below
  const data = {
    id: 123,
    body: 'Hello World',
  }
  const config = {
    'title': {
      key: 'shouldNotExist[].title',
      transform: id => id,
    },
    'body': 'message',
  }
  const result = objectMapper(data, config)
  // Results in
  // {
  //   shouldNotExist: [ {} ],
  //   message: 'Hello World'
  // }

I expected that the result wouldn't return shouldNotExist, because there is no title, but instead object-mapper returns an array with empty object. The example above is a minimal version of the real code, but isn't it possible to just return nothing and don't create an array if there is no data?

I have the same issue

Has someone found a solution for this problem?

Has someone found a solution for this problem?

unfortunately not. Have you found another npm package that solved your issue? Because I'm still looking for a good object to object mapping utility


Update Staked Sol Invictus Metadata

Commit where I added the token: https://github.com/solana-labs/token-list/commit/5e873b60d7c86fd60e6d021c7917ae9f32025e96
Values to be changed:

Update symbol from SIN to sIN (first letter made lowercase)
Update name from Staked Sol Invictus to Staked Sol Invictus (Wrapped)

please link a PR

nvm found it: #10062


ci: release-please action is broken on HEAD

https://github.com/CQCL/hugr/actions/runs/12027372846/job/33528276738

It works after a re-run -.-'
https://github.com/CQCL/hugr/actions/runs/12027372846/job/33531331335


New routes

Codecov Report

Merging #51 into master will increase coverage by 1.33%.
The diff coverage is 67.18%.

@@            Coverage Diff             @@
##           master      #51      +/-   ##
==========================================
+ Coverage    87.2%   88.54%   +1.33%
==========================================
  Files          75       72       -3
  Lines        5956     5777     -179
==========================================
- Hits         5194     5115      -79
+ Misses        518      414     -104
- Partials      244      248       +4

Nice work!


Weather alerts not showing up

When the top of the app indicates there is a severe weather alert, tapping on the alert shows a blank popup. For example, today we have a storm (which I don't need the app to see) and I want to tap the severe weather alert to learn how long they estimate the storm will last and what the conditions will be. See image.
Device: Pixel 7 Pro
Android: 13
App version: <IP_ADDRESS>
App source: F-droid

@exstntlmsnthrp thanks a lot I ll fix it very soon!


Fresh Install of Version 3

We have had a difficult time installing this app.  We installed version 1 and tested it out.  We attempted to update to version 2 and had difficulty.  We thought we had deleted everything linked to version 1 and installed version 2, but different staff is seeing different screens.
We are still in testing phase.  Is there a method to COMPLETELY delete in 365 anything related to TEOC and install Version 3 from scratch?
If so can you please detail the method?
Thank you in advance.

@devansinleesburgva , thank you for reporting this issue.
Yes, you can completely clean up everything. Here are instructions to clean up -

Delete the TEOC SharePoint Site from SharePoint Admin center.
Delete Team Sites which you've created from TEOC app from SharePoint Admin center.
Make sure these sites are deleted from Deleted Site Section as well.
Delete Resource group
Then follow this link to deploy TEOC app.

Thank you very much.  I will try this and let you know the results.
David A. Evans
Senior Systems Administrator
Town of Leesburg
703-737-7153 (desk)
571-440-1108 (cell)

From: v-ajaysahu @.>
Sent: Wednesday, April 10, 2024 10:36 AM
To: OfficeDev/microsoft-teams-emergency-operations-center @.>
Cc: David Evans @.>; Mention @.>
Subject: Re: [OfficeDev/microsoft-teams-emergency-operations-center] Fresh Install of Version 3 (Issue #191)
@devansinleesburgvahttps://github.com/devansinleesburgva , thank you for reporting this issue.
Yes, you can completely clean up everything. Here are instructions to clean up -

Delete the TEOC SharePoint Site from SharePoint Admin center.
Delete Team Sites which you've created from TEOC app from SharePoint Admin center.
Make sure these sites are deleted from Deleted Site Section as well.
Delete Resource group
Then follow this linkhttps://github.com/OfficeDev/microsoft-teams-emergency-operations-center/wiki/Deployment-Guide to deploy TEOC app.

—
Reply to this email directly, view it on GitHubhttps://github.com/OfficeDev/microsoft-teams-emergency-operations-center/issues/191#issuecomment-2047731304, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BARQYYINALKJ35INYNKSGXDY4VE6BAVCNFSM6AAAAABF5ADQ22VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBXG4ZTCMZQGQ.
You are receiving this because you were mentioned.Message ID: @.***>

When I attempt to clone the repository locally from here:
https://github.com/OfficeDev/microsoft-teams-emergency-operations-center
I click on code and then choose download zip -- but I get a 505 Internal server error.  Can you provide guidance?

Second question -- should I delete the existing TEOC Teams app before creating from scratch??

@devansinleesburgva ,
Yes, you need to remove existing TEOC Teams app as well.


Resize GitHub logo in footer (Closes #1453)

This PR adjusts the size of the GitHub logo in the footer to match the one from Twitter.
I created a new svg file, only adjusting "github_white" would lead to size errors in other places.

Current
New

Closes #1453

@Ein-Tim Thanks!


cohorte-update does not extract the downloaded distribution

This is seen on a raspberry-pi 2 device.
The new distribution is downloaded but never extracted (with no error messages on the terminal).

the distribution is extracted in working directory, not on COHORTE_HOME folder!
Should only change the path of the tar.extractall('.') method to tar.extractall(cohorte_home)


Fix access bug and typo

What changes are proposed in this pull request?
Fix access bug and typo
Why are the changes needed?
Fix access bug and typo
Does this PR introduce any user facing changes?
No

Codecov Report

Merging #13745 (a1f6fb6) into master (3ec7ef9) will decrease coverage by 26.19%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             master   #13745       +/-   ##
=============================================
- Coverage     43.72%   17.52%   -26.20%
+ Complexity     9074     2661     -6413
=============================================
  Files          1384     1384
  Lines         80313    80313
  Branches       9768     9768
=============================================
- Hits          35114    14072    -21042
- Misses        42269    64999    +22730
+ Partials       2930     1242     -1688

Impacted Files
Coverage Δ

...mon/src/main/java/alluxio/shell/CommandReturn.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...mon/src/main/java/alluxio/util/ExceptionUtils.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...n/src/main/java/alluxio/wire/AlluxioProxyInfo.java
0.00% <0.00%> (-100.00%)
:arrow_down:

.../src/main/java/alluxio/wire/AlluxioMasterInfo.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...src/main/java/alluxio/job/meta/JobIdGenerator.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...n/src/main/java/alluxio/stress/BaseParameters.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...src/main/java/alluxio/client/UnderStorageType.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...main/java/alluxio/underfs/options/ListOptions.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...main/java/alluxio/worker/block/io/BlockReader.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...main/java/alluxio/worker/block/io/BlockWriter.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 658 more

Continue to review full report at Codecov.

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

alluxio-bot, merge this please


Issue: New RequestHandlers are not created with sufficient permissions

Synful API Framework: Issue Report
Synful Version
v2.0.4
Stack Trace
N/A
Reproduce
Provision Synful as root user remotely using Ansible
Other
Running:
chmod 755 /var/www/html/src/Synful/App/RequestHandlers/RequestHandlerName.php
fixes the issue.

Instead of chmod 755, you need to chown www-data:. The web user needs to be able to access the file, since you are creating the RequestHandler using your root user, it is the owner of the file. I suppose an output telling the user to modify the ownership of the file would be useful, but there is no direct way to get Synful to recognize which user is your web master in order to change the permissions.
I will add an output after generating each new file telling you to set the ownership of the file to the web master user on the system.

I've added this as a todo to #157 to consolidate tasks.


Reviews : Need to fix the glitch!

In the "Testimonials" of the "Reviews" Section, the side arrows are auto sliding back to the starting position. Also, neither the last and first-person or their spoken statements are visible.
Thus, it needs to get better.
Therefore, assign me to work on this issue and help me to contribute.

In the "Testimonials" of the "Reviews" Section, the side arrows are auto sliding back to the starting position. Also, neither the last and first-person or their spoken statements are visible. Thus, it needs to get better.
Therefore, assign me to work on this issue and help me to contribute.

@Its-Aman-Yadav Please assign me this so that I can contribute!


Multi-line captions not displaying on two lines (with fix)

[x] Issue does not already exist
[ ] Issue observed on https://plyr.io => (Captions on website are not multi-line)

Expected behaviour
The multi-line captions should appear underneath each other, instead of rendering on one line.
Actual behaviour
All the browsers I tested display the captions on line (except Edge). See the fix below.
Note: Edge has no issues with the multi-line captions and display it perfectly due to rendering  <br> in vtt file.
Also, I noticed that when a caption dissapears or appears and you have scrolled down the page. Your page will go become smaller or larger
See video: https://puu.sh/x0z96/b018f69d54.mp4
Environment

Browsers: Chrome 59+, Firefox 41+, Opera 46.0.2597.57, IE11
Operating System: Windows
Version: 10

Players affected:

[x] HTML5 Video
[ ] HTML5 Audio
[ ] YouTube ==> Not tested
[ ] Vimeo ==> Not tested

Steps to reproduce

Add a multi-line caption file to any browser

Viewable at my site:
https://dojocasts.com/en/lessen/bekijk/sully
Fixing
.plyr__captions span {
    /* ... */
    white-space: pre;
}

Before

After

Relevant links

https://dojocasts.com/en/lessen/bekijk/sully

I had the same problem. This solved it and should be marked as a bug (fixed). Just for styling purposes I also added the following code to make sure there is enough space between the two lines so that the black backgrounds don't overlap.
.plyr__captions span {
    line-height: 180%;
}

There is an issue with this fix. If a line is longer than the width the player, the overflowing part of it won't be displayed.
This is the proper fix:
.plyr__captions span {
    /* ... */
    white-space: pre-wrap;
}```

Needless to say, it should be merged into master ASAP.

I'll add this into V3. Cheers 👍

An additional change is required for this to work with Firefox (tested on v54.0.1), which requires manual caption rendering.
diff --git a/src/js/plyr.js b/src/js/plyr.js
index 352e011..2afd843 100644
--- a/src/js/plyr.js
+++ b/src/js/plyr.js
@@ -1066,7 +1066,12 @@
                                             index = 1;
                                         }

-                                        plyr.captions[r] = [parts[index], parts[index + 1]];
+                                        var captionText = '';
+                                        for (var s = index +1; s < parts.length; s++)
+                                            captionText += parts[s] + lineSeparator;
+
+                                        // plyr.captions[r] = [parts[index], parts[index + 1]];
+                                        plyr.captions[r] = [parts[index], captionText];
                                     }

                                     // Remove first element ('VTT')

Closing this one as I think it's fixed but feel free to re-open if not solved in v3 👍


LOD runs for long times without output

Godot version:
https://github.com/godotengine/godot/commit/b63f9b59615a4a63f1a45564d78243a2929c3c03
OS/device including version:
WIN10 / Fedora Linux
Nvidia rtx 3000 series
Issue description:
Loading takes a very long time.
Update Godot to use fix from upstream
https://github.com/zeux/meshoptimizer/commit/761387ad490bfcc3c74af83c1dc0df487994832d
Steps to reproduce:
Load text project
Minimal reproduction project:
From Hutty.
chevy.zip

meshoptimizer.zip
For Hasa


Add instructions to start Postgresql and Redis servers

I tried to set up the local development environment using the setup instructions. The bin/setup script failed as the database and Redis servers weren't running. This pull request adds the instructions to start those before running the script.
Note: This is my first time contributing to any open source project. Please let me know if I missed something or anything that needs to be corrected.
Pull request checklist

[x] Your code contains tests relevant for code you modified
[x] You have linted and tested the project with bin/check
[x] You have added significant changes and product updates to the changelog

Ahhh, got it! Great catch.
I made one suggestion to the PR. Along with that, can you remove the "Next steps" section at the bottom of bin/setup?

Sounds good, I have made the suggested corrections. Thanks for the feedback.

Look great – thank you for your contribution!


Autosuggest

App: <IP_ADDRESS>9-stable
Chrome: 54.0.2840.71
Platform: Mac OS X (10_12_1)
After the new update, everytime I type a url in the bar, the autosuggest window pops up.  That's fine and all, except it covers the bar where i'm typing, so I can't see at all what I'm doing.  I have to press esc on every keystroke just to see what I'm typing.  Can the suggestion box be moved out of the way?

Hi,
Thank you for tracking this issue. As you can see I already fixed it. I'll update the app in next planned release or with hotfix release (if any occur).


Neither baseHref nor APP_BASE_HREF is working with @angular-devkit/build-angular:browser-esbuild

Which @angular/* package(s) are the source of the bug?
Don't known / other
Is this a regression?
Yes
Description

Using @angular-devkit/build-angular:browser-esbuild as local dev server

$ npm run start
><EMAIL_ADDRESS>start
> ng serve --hmr

The esbuild-based browser application builder ('browser-esbuild') is currently in developer preview and is not yet recommended for production use. For additional information, please see https://angular.io/guide/esbuild
The 'namedChunks' option is not used by this builder and will be ignored.
The 'vendorChunk' option is not used by this builder and will be ignored.

Initial Chunk Files         | Names         |  Raw Size
main.js                     | main          |   5.40 MB |
styles.css                  | styles        | 209.57 kB |
polyfills.js                | polyfills     |  82.84 kB |

                            | Initial Total |   5.69 MB

Lazy Chunk Files            | Names         |  Raw Size
es-CPQ26IB7.js              | -             |   1.62 MB |
sweetalert2.all-WWJX4NJH.js | -             | 123.48 kB |
sweetalert2-J65NCXNT.js     | -             | 102.88 kB |
chunk-XLBCT3LY.js           | -             |   3.02 kB |

Application bundle generation complete. [23.510 seconds]
  ➜  Local:   http://localhost:4200/
Watch mode enabled. Watching for file changes...

open http://localhost:4200/ or http://localhost:4200/admin will be blank page

Also tried APP_BASE_HREF but failed
{
provide: APP_BASE_HREF,
useValue: '/admin'
}

Please provide a link to a minimal reproduction of the bug
No response
Please provide the exception or error you saw
Watch mode enabled. Watching for file changes...
Failed to load url /admin/assets/js/bootstrap.bundle.min.js (resolved id: /admin/assets/js/bootstrap.bundle.min.js). Does the file exist?
Failed to load url /admin/assets/js/bootstrap.bundle.min.js (resolved id: /admin/assets/js/bootstrap.bundle.min.js). Does the file exist? (x2)

Please provide the environment you discovered this bug in (run ng version)
Angular CLI: 16.0.0
Node: 18.16.0
Package Manager: npm 7.17.0
OS: win32 x64

Angular: 16.0.0
... animations, cdk, cli, common, compiler, compiler-cli, core
... forms, material, platform-browser, platform-browser-dynamic
... router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1600.0
@angular-devkit/build-angular   16.0.0
@angular-devkit/core            16.0.0
@angular-devkit/schematics      16.0.0
@schematics/angular             16.0.0
rxjs                            6.6.7
typescript                      5.0.4

Anything else?
No response

Came here to report the same. The assert is served at the root.
main.js is served at /main.js but should be served at /base/main.js.

It's bug, but could be workarounded. If you use baseHref and have something like /base/ try to remove latest '/' and you got working solution. But I confirm it's changed (and confusing)


Change reference domain

Started work on changing quad and hex reference domains from (-1, 1)^d to (0 ,1)^d. Shouldn't take too long.

Everything should be now there.


i18n not taken in account for output date formatting

Whatever the lang you've chosen, it won't be used to format the output date:
$(this).datetimepicker({
    lang: 'fr',
    format: 'd F Y',
    value: 'now'
});
/*
  Current input:  25 June 2015
  Expected input: 25 Juin 2015
*/

These month/day names are hard written in the included "Parse and Format Library", would be nice to use the chosen locale.

Having the same issue with lang:'de'

Hi, It was fixed. But, 'lang' was deprecated. Use last version and $.datetimepicker.setLocale('de');
See https://github.com/xdan/datetimepicker/pull/323

Didn't you need to put jquery-ui as a dependency because datetimepicker uses their localization files?


deprecate quick_collection in favor of more idiomatic geo_types::GeometryCollection::try_from(geojson)?

Our current docs advertise quick_collection as the royal road to getting a geo_types::GeometryCollection from a &GeoJson
//! [...] using the [`quick_collection`](fn.quick_collection.html) function to
//! parse [`GeoJson`](enum.GeoJson.html) objects into
//! a [`geo_types::GeometryCollection`](../geo_types/struct.GeometryCollection.html).

We also have:
impl<T> TryFrom<GeoJson> for geo_types::Geometry<T>

Which is almost but not quite redundant.

it consumes the GeoJson
it deals with Geometry, not GeometryCollection.

Would people support deprecating quick_collection and instead adding and promoting the use of GeometryCollection::try_from, or is there a reason to continue promoting quick_collection?
It's been around for a while and promoted as "the" way to get geo-types from geojson, so if we did deprecate it, we'd probably want to leave it around for a long while.
The advantage of being idiomatic is that hopefully it's something that people with a little rust experience would look for / expect.

I think that when I stole the quick_collection idea from @lelongg we didn't have GeometryCollection::TryFrom, so I'm fine with the change. I was thinking earlier that we slightly re-write the README to address what I think are the most common use cases:

We lead with conversions to / from GeometryCollection and FeatureCollection;
We show the existing examples of the more granular / performant conversion and processing examples;
We detail the structure of the library (also existing).


Added support for Go

Any news about adding go to circle ci? Otherwise, the go tests are not running in CI.

Yes. I am aware of that. I will add the changes for circle ci.


How can record scroll event?

I have some scene which is base on lazy-load to test.

Hi @KevinHu-1024 , there is no recording of scroll events at this moment. I've added it to https://github.com/checkly/puppeteer-recorder/issues/3 because I think it should be part of recording a full web form. Stay tuned for a future release.


Documentation on Data Folders is Very Unclear

Hello, I was drawn to TiddlyServer as a way to get my TiddlyWiki instance loading smoother by separating out the images and media files. Using the default Lazy Load was giving terrible load times for the images, so I hoped TiddlyServer could be the answer.
Going over the documentation it is very unclear:

How to actually setup a "Data Folder"
How to reference those files inside another TiddlyWiki file
How to upload new files

None of the documentation actually says what to do in regards to data files. I only worked out what the features of a data folder was from your comments here, and I only gathered that I need to enable them in the config from your comments on #94. Though I am still lost as to what their intention is or what I should do to reference the files in them, or how to upload a file to an actual data folder.
So what I wanted to achieve in the beginning is to run my normal server TiddlyWiki (called "Personal") inside TiddlyServer, while having a place to put the images separately which can still be seen/used in my Personal wiki. Though a lot of googling and trial and error I have the following:
My Personal Wiki (which works fine) and an Images folder.

Inside that Images folder is a bunch of images I was using to test, however I could not reference them. Then after finding the ability to enable the datafolder in bindInfo/localAddressPermissions from one of your comments I got the button "Data Folder" below, which presumable creates a data folder. So I made one called "Test"

But this "data folder" is just a TiddlyWiki...? When I open it there is a blank TiddlyWiki. Am I supposed to upload images to this "data folder" via the normal TiddlyWiki drag/drop? Will this allow me to reference those images inside my Personal wiki?
Though some more trial and error I have found that simply placing an image into Test/Tiddlers/ allows me to reference and see it inside the Test wiki. Though it has the full path, for some reason. And I cannot reference these inside my Personal wiki.

Summary
So, how can I achieve my goal of linking to images from my Personal file? Have I missed something? Thanks

Good work, you've definitely gotten things figured out. I'm sorry that it is sometimes hard to figure out. I don't always know how to explain things clearly.
You have two folders, images and personal. You also added another data folder called test. The button appeared because you also added the mkdir permission when you added the datafolder permission. The datafolder permission is enabled by default and actually sets whether the user is allowed to access data folders on the server (because they can easily gain access to the file system by creating a server startup module and reloading the wiki). You can find more info on these permissions here: https://arlen22.github.io/tiddlyserver/docs/serverconfig.html#localaddresspermissions-hashmap
If you have files in your images folder you can refer to them in any valid URL format. So /images/Lakes.jpg or ../images/Lakes.jpg.

Though some more trial and error I have found that simply placing an image into Test/Tiddlers/ allows me to reference and see it inside the Test wiki. Though it has the full path, for some reason. And I cannot reference these inside my Personal wiki.

This is because it is loaded from the file system as a tiddler (because it is in the tiddlers folder), and the file path is the default title if there is no meta file next to it. If you want files to remain inside the data folder, you should create a files folder beside the tiddlers folder in the data folder and store files in there. Then you access them via /Personal/files/Lakes.png.
TiddlyServer never serves files inside a data folder. All requests that fall under a datafolder are handed off to that datafolder so they act identical to the Node TiddlyWiki server including any plugins which apply to that data folder.

If you've never used the tiddlywiki --listen command, here is a tiddler which explains it all: https://tiddlywiki.com/#WebServer
Especially take note of the guides at the bottom: https://tiddlywiki.com/#WebServer Guides

Optional parameters may be set on a datafolder property at the top level of the config file (not to be confused with datafolder boolean property on the permissions object). In most cases, however, the defaults work fine. Individual datafolder authentication is disabled in favor of the cookie based login that TiddlyServer provides through authAccounts.
{
  "tree": [],
  "authAccounts": {},
  "datafolder": {}
}

Ahh I've gotten it to work by referencing it as an External file with [img[../Images/black_knives.png]]! I was trying permeations of {{Images/Lakes.png}} :sweat_smile: Thank you very much! :+1:
However this shows I still do not seem to understand something about this structure :thinking: So I can reference any file in my Test folder above simply because I have added that to the Tree in the config. Then what exactly is a "data folder"? Why would I want to create one? The name implies (to me) that is a folder where data can be stored and referenced. Is that wrong?

Test is another data folder, like Personal. Yes, it is an external file because it is not a tiddler, which is what you stated you wanted at the beginning (because lazy load wasn't working well). I prefer external files for most things as well. But everything is either a tiddler or an external file.
You could lookup _canonical_uri. It might let you transclude an external file.

Sorry for the late reply!
Thanks for the help, I have found TiddlyServer to be very useful 👍 a few quick questions though:

What is the purpose of the create "Data folder" button? It will not add items to my settings config, right?
Is it possible to get a list of files inside a folder, from TiddlyWiki? Sometimes I just wish to show all the files, but have to manually do each 😓
Do you have any of your wikis running on TiddlyServer exposed to the web? If so, how do you secure them. I am looking into creating a Nginx gateway (as stated here) but was just wondering if there's an easier way with TiddlyServer.

Thanks for your work, mate.

No, it only creates a new data folder with a prefilled tiddlywiki.info file.
Currently there is not, although the code I use in TiddlyServer would not be hard to adapt.
It does have the capability of running directly facing the web. The code is fairly simple, and yes I think it is secure.  An NGINX HTTPS server is fine as well.


Add lost container preloading info

Information that was on the removed
reference-manual/linux/preloaded-images page that did not migrate to the user-guide page was added.
QA: visually inspected html, checked with linter. No issues spotted.
No associated Ticket/Issue, as this was a quick fix.
PR Template and Checklist
Please complete as much as possible to speed up the reviewing process.
Readiness and adding reviewers as appropriate is required.
All PRs should be reviewed by a technical writer/documentation team and a peer.
If effecting customers—which is a majority of content changes—a member of Customer Success must also review.
Readiness

[x] Merge (pending reviews)
[ ] Merge after date or event
[ ] Draft

Overview
Focus was mostly upon copying the old information and cleaning it up. Open to suggestions if context or content needs additional work. Redirect was also added.
Checklist

[x] Run spelling and grammar check, preferably with linter.
[x] Avoid changing any header associated with a link/reference.
[ ] Step through instructions (or ask someone to do so).
[x] Review for wordiness
[x] Match tone and style of page/section.
[ ] Run make linkcheck.
[x] View HTML in a browser to check rendering.
[x] Use semantic newlines.
[x] follow best practices for commits.

[x] Descriptive title written in the imperative.
[x] Include brief overview of QA steps taken.
[x] Mention any related issues numbers.
[x] End message with sign off/DCO line (-s, --signoff).
[x] Sign commit with your gpg key (-S, --gpg-sign).
[x] Squash commits if needed.

[x] Request PR review by a technical writer and at least one peer.

Comments
Any thing else that a maintainer/reviewer should know.
This could include potential issues, rational for approach, etc.

Docs for 547245d90899072a5df01a0e4ba5289a9556693d are browsable at: https://ci.foundries.io/projects/fio-docs/builds/2646/docs/artifacts/html/index.html

LGTM


Add fee estimator arg to all txn construction calls

Current dependencies on/for this PR:

feature/proof-of-stake

PR #514   👈

This stack of pull requests is managed by Graphite.


Hide permafrost section if there is no permafrost there

STR:

Pick King Salmon (community)
Go to Permafrost
Behold: so boring, no information!

I think in some cases we can detect if permafrost values are all 0 (depth to top, etc) and just remove the section.

x-ref #588


Delay with Animated GIFs not being applied?

I'm using v0.3.0 on OS X w/ (ImageMagick 6.8.6-0 2013-07-09 Q16 via MacPorts).
I am setting the delay property on the SingleImage's in the sequence (checking to make sure it is assigned), but when I save the file, it turns out that it doesn't include a delay at all? (verified w/ "identify -verbose out.gif | grep Delay")
Is there something simple I'm missing or something more I should test with or is this a bug?

Hello, I'll add more test info for this issue.
See this.
>>> from wand.color import Color
>>> from wand.image import Image
>>> red = Color('red')
>>> blue = Color('blue')
>>> green = Color('green')
>>> ri = Image(width=100, height=100, background=red, format='GIF')
>>> bi = Image(width=100, height=100, background=blue, format='GIF')
>>> gi = Image(width=100, height=100, background=green, format='GIF')
>>> ri
<wand.image.Image: d02a8da '' (100x100)>
>>> bi
<wand.image.Image: 201aaeb '' (100x100)>
>>> gi
<wand.image.Image: 18ecdf4 '' (100x100)>
>>> rig = ri.convert('gif')
>>> rig
<wand.image.Image: d02a8da 'GIF' (100x100)>
>>> big = bi.convert('gif')
>>> gig = gi.convert('gif')
>>> container = Image(width=100, height=100)
>>> container.sequence
<wand.sequence.Sequence object at 0x10743be10>
>>> container.sequence.clear()
>>> container.sequence
<wand.sequence.Sequence object at 0x10743be10>
>>> container.sequence.append(rig)
>>> container.sequence[-1].delay = 1000
>>> container.sequence.append(big)
>>> container.sequence[-1].delay = 2000
>>> container.sequence.append(gig)
>>> container.sequence[-1].delay = 3000
>>> container.animation
True
>>> container.save('test.gif')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/item4/.virtualenvs/ugoira/lib/python3.5/site-packages/wand/image.py", line 2693, in save
    '.save(filename={0!r})?'.format(file))
TypeError: file must be a writable file object, but 'test.gif' is a string; did you want .save(filename='test.gif')?
>>> container.save(filename='test.gif')
>>>
>>> for frame in container.sequence:
...   print(frame.delay)
...
1000
2000
3000
>>> reopen = Image(filename='test.gif')
>>> for frame in reopen.sequence:
...   print(frame.delay)
...
0
0
0
>>> container.sequence.clear()
Exception ignored in: <bound method Resource.__del__ of <wand.sequence.SingleImage: 18ecdf4 (100x100)>>
Traceback (most recent call last):
  File "/Users/item4/.virtualenvs/ugoira/lib/python3.5/site-packages/wand/resource.py", line 232, in __del__
    self.destroy()
  File "/Users/item4/.virtualenvs/ugoira/lib/python3.5/site-packages/wand/sequence.py", line 334, in destroy
    with container.sequence.index_context(self.index):

>>> ontainer = Image(width=100, height=100)
>>> container.sequence.clear()
>>> container.sequence.append(rig)
>>> with container.sequence[-1]:
...   container.sequence[-1].delay = 1000
...
>>> container.sequence.append(big)
>>> with container.sequence[-1]:
...   container.sequence[-1].delay = 2000
...
>>> container.sequence.append(gig)
>>> with container.sequence[-1]:
...   container.sequence[-1].delay = 3000
...
>>> for frame in container.sequence:
...   print(frame.delay)
...
1000
2000
3000
>>> container.save(filename='test2.gif')
>>>
>>> reopen = Image(filename='test2.gif')
>>> for frame in reopen.sequence:
...   print(frame.delay)
...
1000
2000
3000

Hi, I'm getting this problem with v0.3.9 on Ubuntu Xenial. Is it fixed in later versions?

It appears wand installed via pip (v0.4.4) also has this bug. Any ETA on a fix?
Cheers


Update versions.gradle

Updated all dependency versions to the latest stable version available in https://mvnrepository.com/

Can you fix the compile error?


The Screen is Black

when i click the start button the showing screen is black.I can't play this game.

just wait
like 10 mins

ru right it doesnt work


Adding error handling so it does not return 200 when cannot talk to r…

…edis.
Description
Sample 1 always returns 200, so I fixed it to handle errors and return 500 instead in those cases - it ends up also handling issue #90 .
Issue reference
We strive to have all PRs being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #90
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[X] The sample code compiles correctly
[X] You've tested new builds of the sample if you changed sample code
[X] You've updated the sample's README if necessary

Thanks, good addition.
cc @ryanvolum

Thanks everyone. I am merging this. Error handling for better status code logic can still be improved. As a hello world example, I think this is much better now since it does not hide server side errors anymore.


Allow calculation from available materials capacity

On top of computing the desired production targets, an option to compute an optimal layout from available materials.
A potential behavior could be:

Every field of the material must be filled to perform the computation.
If a material capacity is unset, assume it has zero transport capacity and skip calculation.
When both material capacity and desired production target are set, material capacity takes priority.

Enabling and disabling features with flags were difficult to work with, should be careful about the implementation.

This feature is implemented in version v2.1.2
Users leave the "transport capacity" fields empty and only partially fill out only some field.


add transform to f32/f64

Use case: I want to know the bits of "-5" in f32 or f64.
Idea: add suffixes _f64 and _f32 and in this cases the input is parsed as double/float
e.g. $ wambo 5_f32 => hex will be 0x40a00000

I think, I'll refrain from that. There is an excellent web version for that.


Homework 7

Drift Video Link:- https://video.drift.com/v/ab0uTYpqkOSDiy3bo6fU9Nkw34CCh8jrae6x0SfNucA/
Screenshots of terminal:-

Metric
Value

alert_status
:white_check_mark: OK

bugs
0

code_smells
2

reliability_rating
A (0 Bugs)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0


Another attempt at more robust macOS test builds

This pull request

updates the database commit-delay test to log debugging information if the test fails,
scales more timeouts in the HTTP mats,
and uses test:receive to report the time elapsed in receive before hitting a clause or timeout.

If these changes look okay, we may want to consider pulling this in ahead of the JSON changes where macOS test failures seem to have caused problems for some of the builds.

Thanks for the quick review. I'm curious as well to see if we learn anything. Hopefully the scaled timeouts make failures less frequent.


Add community notebooks section documentation

Anything is open to discussion.
cc @burtenshaw

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

Closing in favour of #2411


requirements.txt does not reflect reality

File requirements.txt file does not reflect reality. Indeed tox,sphinx,twine seem to not be required, as you can see from setup.py

Setup.py includes the runtime dependencies. Requirements.txt includes the development dependencies. I could add a comment to the file clarifying that, or add -dev to the file name.

Mmh okay. Do you think that the requirements mentioned in the spec file at
https://bugzilla.redhat.com/show_bug.cgi?id=1365782#c4
are okay for django-model-utils being shipped into Fedora repositories?

Sure, though I don't think that pythonX-devel or pythonX-setuptools should actually be required at runtime. Setuptools would be required to run setup.py (and thus to generate the rpm), but setup.py is not used at runtime, and no other part of model-utils imports setuptools or pkg_resources. Not sure why pythonX-devel would be needed, but I'm not very familiar with Fedora packaging.
Django is the only runtime dependency for model-utils.

pythonX-devel and pythonX-setuptools are mandatory to build any Python package.
Thank you for your explanation.
Have a nice day


Improve documentation about --params due to Unregister-ScheduledTask error

Trying to install adobereader:
System Details

Operating System: 6.1.7601.0
Windows PowerShell version: 7.2.8
Chocolatey CLI Version: 2.1.0
Chocolatey Licensed Extension version: no
Chocolatey License type: no
Terminal/Emulator: PowerShell

PS C:\Users> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.2.8
PSEdition                      Core
GitCommitId                    7.2.8
OS                             Microsoft Windows 6.1.7601 Service Pack 1
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0.}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Installed Packages
choco list
Chocolatey v2.1.0
1 packages installed

Related issues

https://github.com/chocolatey/choco/issues/3261

The maintainer refuses to give me a specific command line, instead he said:

You're running Windows 7. Add the package parameter '/UpdateMode:#' where '#' is 2, 3 or 4. See the package description for more information.

So here are the commands according to Chocolatey Parse Package Parameters and Adobe Properties:
PS C:\Users> choco install adobereader --params="'/UpdateMode:0'"
Chocolatey v2.1.0
Installing the following packages:
adobereader
By installing, you accept licenses for the packages.
Progress: Downloading adobereader 2023.003.20215... 100%

adobereader v2023.3.20215 [Approved]
adobereader package files install completed. Performing other installation steps.
WARNING: No registry key found based on  'Adobe Acrobat*'
Configuring manual update checks and installs.
File appears to be downloaded already. Verifying with package checksum to determine if it needs to be redownloaded.
Hashes match.
Hashes match.
File appears to be downloaded already. Verifying with package checksum to determine if it needs to be redownloaded.
Hashes match.
Hashes match.
Installing adobereader (installer)...
adobereader (installer) has been installed.
ERROR: The term 'Unregister-ScheduledTask' is not recognized as the name of a cmdlet, function, script file, or operable
 program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
  adobereader may be able to be automatically uninstalled.
The install of adobereader was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\adobereader\tools\chocolateyinstall.ps1'.
 See log for details.

Chocolatey installed 0/1 packages. 1 packages failed.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Failures
 - adobereader (exited -1) - Error while running 'C:\ProgramData\chocolatey\lib\adobereader\tools\chocolateyinstall.ps1'
.
 See log for details.

According to chocolatey, not installed:
PS C:\Users> choco list
Chocolatey v2.1.0
1 packages installed.

But Adobe Reader did install onto the system (of course not installed before):
PS C:\Users> Get-WmiObject -Class Win32_Product

IdentifyingNumber : {AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}
Name              : Adobe Acrobat Reader MUI
Vendor            : Adobe Systems Incorporated
Version           : 23.003.20215
Caption           : Adobe Acrobat Reader MUI

IdentifyingNumber : {FD5BDBA8-9E14-4531-8614-DF839F7DA1C6}
Name              : Chocolatey GUI
Vendor            : Chocolatey
Version           : <IP_ADDRESS>
Caption           : Chocolatey GUI

I'm following the steps indicated by the maintainer, yet there are install errors. Could somebody improve the documentation so explains this particular case? Why the params thing is not working?

@superbonaci TRhat quote does not say this was a Chocolatey CLI issue. I provided you with a workaround for the issue over the weekend. Please read the email and follow the instructions I provided becuase that is where the issue lies.
We, and I, are spending quite a bit of time at the moment on issues that you are raising. Please ensure that you raising issues only when necessary, that you have checked the repositories for similar issues and that you are raising them in the correct place.
Please also remember you are running an unsupported operating system.
I'm going to go ahead and lock this issue.


Add function to sort pokemon collection by capture time.

This should do what #43 wants, adding the function from there.
Credit to @paoloalby, practicing these pull requests if thats fine :)

Great, thanks.


Add HybridCamera

Video and photo camera for iOS
Project URL
https://github.com/eonist/HybridCamera
Category
Camera
Description
Video and photo camera for iOS, similar to the SnapChat camera. More info see the projects ReadMe.md
Why it should be included to awesome-ios (mandatory)

Similar frameworks exist, but in complicated objc.
Tutorials for making such a framework exit, but lacks support for both video and photo camera in one framework
Gets A 3.42/4.00 GPA at CodeBeat
Has awesome gif animation in readme

Checklist

[x] Only one project/change is in this pull request
[x] Has unit tests, integration tests or UI tests
[x] Addition in chronological order (bottom of category)
[x] Supports iOS 9 / tvOS 10 or later
[x] Supports Swift 4 or later
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          1 Warning

:warning:
Found 3 link issues, a project collaborator will take care of these, thanks :)

Link issues by awesome_bot

Line
Status
Link

206
403
https://www.udemy.com/arkit-beginner-to-professional/?couponCode=CREATORS

1370
504
http://www.catapush.com/

1498
301
https://github.com/mobilefirstinc/MFCard redirects tohttps://github.com/RC7770/MFCard

  Generated by :no_entry_sign: Danger

Hey @eonist, thanks for contributing 👍


Save File in IE9

Hey guys, I love this library, has been amazing to work with.
I noticed that the FileSaver.js doesn't support IE 9 and below because IE9 can't make blobs.
Is there a way to use the Base64 that XLSX.write() returns and create a .xlsx file to upload to a server without using blobs or TypeArrays? Or does it have to be parsed in s2ab().
Thanks

@jamessimo XLSX.write can generate base64 by setting type:'base64' in the options argument.
There are two ways to send the data if you don't want to generate a blob:

If you can modify the server process, you can then upload the base64 directly to a server and have it converted on the server side.

If you can't change the server, you can recover the binary string with atob or use a Base64 library to decode.  Then you can send the binary string via XHR


Terraform Provider

Hello,
Not really a feature request per-say, but I intend on building a terraform provider for those who wish to manage uptime kuma using terraform (IaC) which some may know is a popular tool when it comes to automation in the cloud / DevOps space.
This is of course dependant on an API is available - #118 and I hope that the terraform provider will closely follow any new feature added to the uptime kuma API.
I just wanted to let it be known my intentions and also to get an idea on if this will be of interest to others so I can priorise accordingly, please feel free to discuss / give a thumbs up if of interest to you !
Many thanks for a great product!

Hi Pete, this is something that I would be very interested in seeing.

I’ve created many Terraform providers, so I can help with it.

Sounds great. Don’t think API support has been added yet until sometime in the 2.x.x lifecycle. Really to rock when that does happen though.

Any news on this one? It would be fantastic to be able to install services in kubernetes and register them in uptime kuma for monitoring.

Any news on this one? It would be fantastic to be able to install services in kubernetes and register them in uptime kuma for monitoring.

Without API available, it's tricky :)

I'll try to create a PoC with that

@ondrejsika maybe we can make one with the un-official API as metnioned above: https://github.com/MedAziz11/Uptime-Kuma-Web-API
Potentially we need a little confirmation for @MedAziz11 that he wants to keep it up to that if kuma revisits his structures or introduces breaking changes

Indeed, I am amenable to accommodating changes and fostering the project's ongoing development. However, I must express that I cannot commit to a high level of active engagement at this juncture due to my current constraints on available time. @vanhoutenbos

I’ve created many Terraform providers, so I can help with it.

Happy to help with this!

I'm game to help as well, I've made a provider before as well

See #3854 for the PR that the official REST API (which people above have said is a requirement for this instead of the semi-official python wrapper for the socket.io API)
We are currently working on #4500 which is a requirement befor this can happen. (If people want to get there quicker, please see this issue)
Maybe this can help: https://github.com/BigBoot/AutoKuma

First thing when evaluating should I start using uptime Kuma was finding out if it has tf provider. Very interested in this.

Any updates on this? I am possibly available to help with this as well, written go before (what is recommended for TF providers). Love uptime kuma!

I believe we are getting closer to an official API - I think this is penned 2.1.0 following the 2.0.0 beta release recently.
I have started to do some early work with a Terraform Provider based upon the following until official API lands:
e a https://github.com/MedAziz11/Uptime-Kuma-Web-API

Hello all! I'd love to lend a hand on developing the provider as a long-time user. Is the re a repo setup that I can contribute to?

i've created one here with some working code: https://github.com/TheodoreHerzfeld/kuma-provider
lots of work to do, but it's a start

ok - i've got a few data sources working. Should be a good place to start at least. I'll keep plugging away at this when I have time

I am taking a different approach with this and using speakeasy to generate the provider based on the openAPI spec available from Uptime-Kuma-Web-API.
This should do a lot of the leg work and also uses the terraform provider plugin framework.

I've made some progress on using easyspeak to generate a provider based on the aforementioned API
https://github.com/pete-leese/terraform-provider-uptime-kuma-wapi
Now I am getting a little more familiar with the concepts, hopefully will be able to addmore functionality

did some experimentation with speakeasy and i think I'm going to go a different direction - it's being quite wonky and buggy, and the documentation is less than stellar. HC provides some code-generation tools that will do most of that work for us: https://developer.hashicorp.com/terraform/plugin/code-generation
@pete-leese  Thoughts on joining forces on this?


Clean up UDPClient.

@davidsh, @stephentoub PTAL

LGTM

LGTM

A few code style comments.
LGTM otherwise.


Coalesce chrony appliance checks

Remove check for linux os in favor of check for appliance
@Fryguy

Sorry...I thought I replied here, but I don't see my reply.  So, my only concern is that previously, none of the ntp_reload code was run because the clause was early.  Should the clause be at the beginning of ntp_reload, or is it ok if the beginning of the ntp_reload code runs?

I think it would be fine either way, but would probably be simpler if we just returned at the start. The only thing we would be missing is the caching here, but that is only used in this method anyway.

:clap: very nice


Do image captions have any effect during training?

During training do image captions have any importance?
Do prompts have any importance?
Or the training is done solely based on training dataset and no captions prompts other text are used at all?
How the training is utilizing the existing knowledge base of the used base model?

@rinongal @tmuskal @ryanrussell @0x2b3bfa0
Why I am asking? Because I am making tutorial guides videos for Stable Diffusion
My latest video is about Textual Inversion
I am also trying to give as much as possibly technical correct information
All of the current tutorials are incorrect if no image captions are utilized at all during the training
I also read the paper used a lot info from there but couldnt figure out this part
my latest video : How To Do Stable Diffusion Textual Inversion (TI) / Text Embeddings By Automatic1111 Web UI Tutorial

Captions are definitely used during training (as long as your templates contain [filewords])
They allow you to describe what you don't want the embedding to learn from the training image. And they create relationships between the embedding and prompts.
1.You can consider the caption (a.k.a. training prompt) to be the formula of the training image. I.e. what do I need to write in the prompt to get this image back.
Now, the prompt will contain your TI embedding, that is flexible. The other words are fixed.  When you do training, you change the embedding to better match the outcome.
When you have a picture of a person wearing a sombrero in front of a palm tree, you could think of the prompt as "person + sombrero + palm tree = training image"
If you're trying to train the person, then your prompt would be "[name] + sombrero + palm tree = training image"
If you solve for name: [name] = training image - sombrero - palm tree (i.e. your embedding would be of the image, but ignore the things you described.
Another way to look at it: since you've already described the other objects in the prompt, leaving out the embedding would already draw the tree and sombrero. So adding it, it would have no reason to learn it too. The drawing of those objects has been delegated to the prompt.
2.It creates relationships.
If you train a person with sometimes glasses, sometimes not, one picture with blue hair, 3 pictures with their eyes closed,  it's may learn a blend of everything, leading to weird half closed eyes with weird outlines (from the glasses)
Describing the things that are unusual for this person can separate the concepts and serve as relationships for later.
If you've trained with captions and later you generate a drawing "person with blue hair wearing glasses" it can reference what it learned during training.

You can try some experiments if you want.
Caption all pictures from the left as "[name] wearing a hat" or some other silly nonsense.
All pictures from the right leave uncaptioned.
I wonder if you can consistently generate the person shown from the left by reusing that caption as prompt.
I honestly don't know, I'm curious about it

Captions are definitely used during training (as long as your templates contain [filewords])
They allow you to describe what you don't want the embedding to learn from the training image. And they create relationships between the embedding and prompts.
1.You can consider the caption (a.k.a. training prompt) to be the formula of the training image. I.e. what do I need to write in the prompt to get this image back.
Now, the prompt will contain your TI embedding, that is flexible. The other words are fixed. When you do training, you change the embedding to better match the outcome.
When you have a picture of a person wearing a sombrero in front of a palm tree, you could think of the prompt as "person + sombrero + palm tree = training image" If you're trying to train the person, then your prompt would be "[name] + sombrero + palm tree = training image" If you solve for name: [name] = training image - sombrero - palm tree (i.e. your embedding would be of the image, but ignore the things you described.
Another way to look at it: since you've already described the other objects in the prompt, leaving out the embedding would already draw the tree and sombrero. So adding it, it would have no reason to learn it too. The drawing of those objects has been delegated to the prompt.
2.It creates relationships. If you train a person with sometimes glasses, sometimes not, one picture with blue hair, 3 pictures with their eyes closed, it's may learn a blend of everything, leading to weird half closed eyes with weird outlines (from the glasses) Describing the things that are unusual for this person can separate the concepts and serve as relationships for later. If you've trained with captions and later you generate a drawing "person with blue hair wearing glasses" it can reference what it learned during training.

actually this is what i also assumed and explained in the video
however from discord Hackmans#6743 said the otherwise
i explained in the video as, vectors of those prompt tokens are used to reach your target subject image. therefore, lets say you used eyeglasses as token, the model will not be have to learn your eyeglasses since already using a helper vector for that
this is a good explanation right?

Yes that a good explanation.  (Although I would say that the embedding is learning, not the model)

Yes that a good explanation. (Although I would say that the embedding is learning, not the model)

ye I think i said that way not the model :D thank you for clarification

Sorry for the late response. @Shondoit 's answer is more or less spot on.
The templates are indeed used in training, and you can use them to help direct the network towards what you want to learn by describing irrelevant parts of the image.
Maybe one thing I'll add here is that they also help ensure that the model knows the new embeddings should 'play nicely' with many different prompts and when the word is inserted in different indices in the text.

Sorry for the late response. @Shondoit 's answer is more or less spot on.
The templates are indeed used in training, and you can use them to help direct the network towards what you want to learn by describing irrelevant parts of the image.
Maybe one thing I'll add here is that they also help ensure that the model knows the new embeddings should 'play nicely' with many different prompts and when the word is inserted in different indices in the text.

great info. i made a tutorial on this and explained this way
i will make a pull request to add the readme. i hope you accept it
tutorial link : https://youtu.be/dNOpWt-epdQ
we even provided example training dataset

If I have a picture of a robot and I only want it to learn the robot then in all the caption post BliP I go in and remove the reference to the robot?  I tried this for a dismal failure.  Matter of a fact I despise captions so I try NOT to use them.
A simple example was I went in and cut out the only person in each of the photos.  What was left was a black silhouette of a man (to make sure I used CLIP V2).  GREAT, makes it easy as I need only caption it as that YET it learned that and screwed everything up to the point I have to question if it even works.

Can we caption just by running main.py?


[BUG] Read-only admin can access VM consoles

Describe the bug
Even when logged in as read-only admin (with allowed only list* actions in the role), you're still able to access VM consoles (VMs, system VMs, virtual router VMs ....) which might be dangerous.
To Reproduce
Steps to reproduce the behavior:

Login as read-only admin user (admin role with only list* actions allowed).

Expected behavior
I think read-only admin should not be allowed to interact with the consoles.
Screenshots

Desktop (please complete the following information):

OS: Ubuntu 18.04 LTS
Browser: Chrome
Version: 83.0.4103.61 (Official Build) (64-bit)

Additional context
None.

@vladimirpetrov the console access is given; could be debated whether console access should be granted or not; this is not controlled by roles feature but if resource has any access for the logged in account.

I raised this issue to start a discussion - @DaanHoogland also agreed with me that this doesn't look good from a security point of view.

@vladimirpetrov @borisstoyanov please discuss on dev ML, this is really a backend issue. Once backend has fix this, the frontend can follow (depending on listCapabilities or some other API response to show/hide console access).


[backport 2.0.x] Recommend setting flux Content-Type when query request body fails to parse as JSON

Backport the fix for #16941 to the 2.0 branch

Closing as a "won't do"


Introduce chainer.exporter namespace

We have two exporter PR #3631 and #3572 .
How about introducing namespace? For example chainer.exporter.

Sounds good. The name should be in a plural form like chainer.exporters.

Thanks. I will introduce chainer.exporters.


Support metadata class name resolution in ResolveTargetDocumentListener

Feature Request

Q
A

New Feature
yes

RFC
no

BC Break
yes

Summary
The ResolveTargetEntityListener in ORM not only supports changing the targetEntity attribute for associations but also doing a secondary ClassMetadata lookup in case the original class was not found. This secondary behaviour is not supported in the ResolveTargetDocumentListener yet because of the missing onClassMetadataNotFound event handling.
This functionality should be added to ODM as well, but it requires several changes:

Introduce the onClassMetadataNotFound event along with its object
Add support for the onClassMetadataNotFound event in ResolveTargetDocumentListener
Change ResolveTargetDocumentListener to be an event subscriber instead of an event listener (BC break)

Hi @alcaeus just made the changes here:

ResolveTargetDocumentListener has an event subscriber in this branch here
Introducing class onClassMetadataNotFound in this branch here

I also update the DoctrineMongoDBBundle to register the service as an event_subscriber here

I will made Pull Requests about this 3 modifications

Hi @alcaeus however I think there is something I missed, I cannot figured out why the getSubscribedEvents() method is not triggered.
Here is the cache result for the service after updating the ODM bundle:
<service id="doctrine_mongodb.odm.listeners.resolve_target_document" class="Doctrine\ODM\MongoDB\Tools\ResolveTargetDocumentListener" public="false">
      <tag name="doctrine.event_subscriber"/>
      <call method="addResolveTargetDocument">
        <argument>Symfony\Component\Security\Core\User\UserInterface</argument>
        <argument>App\Document\User</argument>
        <argument type="collection"/>
      </call>
    </service>

When debugging the event manager, no listeners are registered. Cannot figured out why.
If you got some times to check that?

Never mind, I figured out my issue

Sorry for the delay, the past couple of days have been extremely stressful. Please create pull requests for the respective branches and I'll review them either tonight or in the next couple of days. Thank you!

Both PRs have been merged with support in the bundle coming soon. Closing here.


Create temporary GitHub repos for exercises?

Some students prefer to clone a GitHub repo rather than downloading a JAR with included source code. Lesson learned from #48. Could create separate repositories with the processed source code for each exercise, to be deleted when the term is over.
Requires updates of the tutorial and the exercise descriptions, because there are two options to get at the source code. Does it require an Ant build file as well? Additional explanations for generating a runnable JAR? IDE-specific adjustments? The exercise description is not in Markdown format, so it isn't automatically rendered with the GitHub repo.

I'd rather not depend upon an online connection during my lectures.


Fix default parameters to batch scoring pipeline

This PR removes the default model name/version inputs, since this will cause an issue if they are not set in the environment variables. Instead, we pass model name/version when we run the batch scoring pipeline.

Should address #316.

Also fixes #315 , #314 , and #312

@cmayomsft I've also included some small doc fixes to resolve some of the issues with the getting started page. If it looks good to you, please approve and I'll merge this. Thanks!


Test in Eigen

From the top of my head we mainly need to adjust the hostnames in Eigen so that the right pages are hijacked correctly.

This can be done on any beta, there are admin settings for this

Quickly configured the web views to point to merged.artsy.net and things seem to be working at first glance. I'll close this and let granular issues get logged.


Redesign sidebar

Remove side navigation bar.
Top nav bar which is sticky in the main page but hides in other view on scroll down and reappears on scroll up.
User Menu on top nav bar.
Article listing cards new design with side bar color indicating category and comments/likes.
Add Manshar terms of usage and rules.

Other than those comments this looks awesome! :+1: Well done and great job! :dancer:


Fix vulnerabilities in dep

:tada: This PR is included in version 1.2.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Framework for CLI testing

Feature or problem description
When testing we often use number of combinations to test commands.
We need to start documenting those cases as part of PR to see if we breaking something without knowing and also provide out of the box verification instruction for developers.
However we would not be able to perform some advanced aserts without testing framework.
There are many testing frameworks out there with different level of features and support:
https://www.cdevn.com/shrun-a-modern-cli-testing-framework/
https://github.com/cucumber/aruba
https://github.com/emilkarlen/exactly
Alternatively we can go with golang code and unit tests like here:
https://g14a.dev/posts/Testing-Cobra-Subcommands/
that will be very verbose and would not fit to the purpose of documenting tests cases

See #1213
I would qualify this as smoke tests that developer runs on their machine that checks for various things like missing keys and other issues. It have been proven to be valuable for me and I have been building those every time but never shared it.
Idea is that when we build verification steps we should probably also build those bash scripts to help with automation and detection of errors (especially that we doing a lot of verifications and 2-3 pass is never that accurate as first one (verification fatigue is real)


Unify HTTP channels implementations: pkg/channel/http and pkg/channel/external

The package pkg/channel/external contained a lot of duplication with pkg/channel/http, and the two had already started to drift apart (mea culpa).
This PR makes pkg/channel/http be usable for both internal and external invocation, reducing duplicate code.
Also fixes a bug:

Setting -app-protocol h2c would have previously caused the external HTTP channel to use H2C too, which would have likely caused failures

/test-sdk-all

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test


0.28 (+.28.1 & .28.2) missing fanart Kodi

After upgrading to .28 (and upward) I have missing fanart for the Kodi plugin.
Also see forum post: https://community.home-assistant.io/t/did-0-28-break-kodi/3827/2

The issue with the fanart is that when using a username:password, the img url needs to be formatted as<EMAIL_ADDRESS>Fanart actually has never worked for me while using a username & password.
As a quick "hack" I added this with a hard coded user:pass @ line 78
self._img_url = url.replace("http://", "http://MYUSER:MYPASS@")

Then modified the _get_image_url function, changing self._url to self._img_url.
return '{}/image/{}'.format(
                self._img_url,
                urllib.parse.quote_plus(self._item['thumbnail']))

Like i said, this was just a quick fix until I had time to really try and play with a proper fix as my python is still at the novice level.
It would be great if somebody that actually knew python could come up with a proper fix. :)

I can can confirm that this indeed happens only if you have password/username actually set. After removing fanart was back.


Standardize base-quote behaviour for all exchanges

For example Wex works differently when compared to Poloniex. With Poloniex base pair (BTC) goes first when you call the API and market pair comes second (XRP).
Implement a wrapper which would standardize this and make it all the same to library user.

Will be implemented through normalization classes.


[ BUG ]

I'm trying to merge the giveaway with my bot but it shows error in ./utils/message.js
even I've created the file already

You need to check your file structure and add the filepath appropriately, not a bug.