How do I get a &[u8] from a RandomAccessStream?

I want to use the windows::media::capture APIs to capture an image to memory, and I want to be able to read that image data into a &[u8] so that I can use it with other crates, but all of the windows::streams types seem completely opaque to me.

I'm trying to use the #[implement] macro to implement my own IRandomAccessStream that would expose a byte array, but I'm having trouble with that too, probably because I don't fully understand how the macro works.
Why does the #[implement] macro not cause my struct to implement windows::Interface?
use bytes::BytesMut;
use ::windows::{implement, IntoParam};
use bindings::windows;
use bindings::windows::{
    foundation::{IAsyncOperation, IAsyncOperationWithProgress},
    storage::streams::{
        IBuffer, IInputStream, IOutputStream, IRandomAccessStream, InputStreamOptions,
    },
};

#[implement(windows::storage::streams::{IRandomAccessStream, IInputStream, IOutputStream})]
pub struct BytesRandomAccessStream {
    buf: BytesMut,
    pos: usize,
}

impl BytesRandomAccessStream {
    pub fn size(&self) -> ::windows::Result<u64> {
        Ok(self.buf.len() as u64)
    }

    pub fn set_size(&mut self, value: u64) -> ::windows::Result<()> {
        self.buf.truncate(value as usize);
        Ok(())
    }

    pub fn get_input_stream_at(&mut self, position: u64) -> ::windows::Result<IInputStream> {
        // i'd like to use windows::Interface::cast(&self) here, but this type doesn't implement windows::Interface??
        unimplemented!()
    }

    pub fn get_output_stream_at(&self, position: u64) -> ::windows::Result<IOutputStream> {
        // ditto
        unimplemented!()
    }

    pub fn position(&self) -> ::windows::Result<u64> {
        Ok(self.pos as u64)
    }

    pub fn seek(&mut self, position: u64) -> ::windows::Result<()> {
        self.pos = position as usize;
        Ok(())
    }

    pub fn clone_stream(&self) -> ::windows::Result<IRandomAccessStream> {
        // Ok(self.clone().into())
        unimplemented!()
    }

    pub fn can_read(&self) -> ::windows::Result<bool> {
        Ok(true)
    }

    pub fn can_write(&self) -> ::windows::Result<bool> {
        Ok(true)
    }

    pub fn close(&self) -> ::windows::Result<()> {
        unimplemented!()
    }

    pub fn read_async<'a, TBuf: IntoParam<'a, IBuffer>>(
        &self,
        buffer: TBuf,
        count: u32,
        options: InputStreamOptions,
    ) -> ::windows::Result<IAsyncOperationWithProgress<IBuffer, u32>>
    {
        // how do I put data into an IBuffer?
    }

    pub fn write_async<'a, TBuf: IntoParam<'a, IBuffer>>(
        &self,
        buffer: TBuf,
    ) -> ::windows::Result<IAsyncOperationWithProgress<u32, u32>>
    {
        // how do I read data from an IBuffer?
    }

    pub fn flush_async(&self) -> ::windows::Result<IAsyncOperation<bool>> {
        unimplemented!()
    }
}

Never mind, I discovered the IByteBufferAccess interface.

Glad you got it working! One thing to note, if you're trying to record the screen, we have a newer API for that. You can find it in the windows::graphics::capture namespace. You can find a demo of that here. Please excuse the old version of the windows crate in that sample, I need to update it...


LeaveRequest changes.

Reworking this a bit

Send leave whenever the signal channel is closed to induce a resume.
Use a getter to get regions rather than setting.

@davidzhao Addressing your feedback. There was a point about getting regions in controller. Feels like it is better to get it on media node rather than intercepting LeaveRequest in controller and adding region settings. So, using a getter method.

Feels like it is better to get it on media node rather than intercepting LeaveRequest in controller and adding region settings. So, using a getter method.

Sorry, I used the wrong terminology unintentionally.. I think I used controller to mean the "process which decides the participant should be disconnected/migrated"

Feels like it is better to get it on media node rather than intercepting LeaveRequest in controller and adding region settings. So, using a getter method.

Sorry, I used the wrong terminology unintentionally.. I think I used controller to mean the "process which decides the participant should be disconnected/migrated"

Ah, got it. Using a getter so that ParticipantImpl can get it as needed. ParticipantImpl needs it because it can autonomously decide to issue full reconnect like in the case of negotiation failure, etc. If we want to issue all LeaveRequest from outside (for example, the room), will have to rework this more.


block pkg: add GetHash method

This PR adds a forHash bool parameter to the SerializeHeader method and thus generate the serialized block header buffer according to our need (for "reading" or for "hash")

it lets to return the block's ID using the Header.GetHash method.
tested in hash_hash.go (with Liquid & Nigiri block)

@tiero @sekulicd please review

Wouldn't be better, API wise, to have two separated methods, each with a specific purpose explicit in the name, instead of a boolean parameter


Bugfix to work in python 3.x

in python3 you can't union multiple dicts with the + operand.  Using dict.copy and dict.update it works both in python 2 and python 3
http://stackoverflow.com/questions/13361510/typeerror-unsupported-operand-types-for-dict-items-and-dict-items
Cheers,
Jason

Thanks, @jwieland !


Upgrade pybitcointools to latest

[Current coverage][cc-pull] is 55.87%

Merging [#36][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master        #36   diff @@
==========================================
  Files             7          7
  Lines           315        315
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            176        176
  Misses          139        139
  Partials          0          0

Powered by Codecov. Last updated by [5a1940e...2308e11][cc-compare]
[cc-base-branch]: https://codecov.io/gh/ascribe/transactions/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/ascribe/transactions/compare/5a1940ef6551c378be2ad4d3485acede31537b08...2308e119ba5b9c59ba211202398fe47b5b45919b
[cc-pull]: https://codecov.io/gh/ascribe/transactions/pull/36?src=pr


Specify "hectare" as unit of measurement in agricultural land holdings statistics

The unit of measurement for land holdings is the hectare, but we do not specify what unit we are using. We should update the display so that it states that the units is the hectare.
Current view for land holdings:

Sample with unit specified in old NepalMap (for a different statistic):

Solved by #70


Allow client to support brave/zipkin distributed tracing in a non-intrusive way

Based on #50 and the discussion in #57 . Not polished - wanted to discuss whether the architecture makes sense first.
Generalise the LoggingContext that's returned from ProcessorContextImpl to a TracingContext.
Allow it to be customised by a TracingContextFactory.
Define a brave-specific implementation that reads the zipkin trace information from the Kafka record headers in a separate brave module.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for the PR!
I've looked the patch briefly and it looks good overall (as you correctly reflected my options at  #57  as you mentioned :) ).
One major point I'd like to discuss before start looking into the detail is the scope of tracing application.
Currently the tracing context is instantiated just before the DecatonProcessor#process starts, which should tell us the time taken between produce to right before the process, and time taken to complete processing.
However as I write in #57 I think when investigating a process latency issue we typically wants to know the exact time that the record is delivered to the consumer to distinguish latency among kafka message delivery (matter of kafka clients and broker), decaton internal (queuing and waiting for preceding tasks's complete) and processing time.
So I think we should support a bit more higher granularity for measurement. At last once at the time of consume, (Consumer returns the record) and right before the process.
For that, I think the tracing should be configured for SubscriptionBuilder and not for ProcessorsBuilders.
Also, some users for implements DecatonProcessor in async way (using DeferredCompletion) may want to measure the time they "complete" the task which seems to be not possible in current usage of brave.
Can you consider this point?

So I think we should support a bit more higher granularity for measurement. At last once at the time of consume, (Consumer returns the record) and right before the process.

Makes sense. In that case we also need to propagate the context from the ProcessorSubscription's polling thread to the ProcessorUnits executor. I'm not sure how decoupled this will actually be, but I'll try to make an interface that makes sense.

Also, some users for implements DecatonProcessor in async way (using DeferredCompletion) may want to measure the time they "complete" the task which seems to be not possible in current usage of brave.

The processor implementation can start its own spans, which will have the current span as a parent (since it's in context on the current thread). So I don't think we need to do anything at the decaton level here (and indeed I think we don't need to start a span around the process call either - if the processor wants this to be a separate span it can start one itself). That said I do think it makes more sense to close the span when the processresult is completed rather than when the call to push returns though.
Will rework.

it makes more sense to close the span when the processresult is completed rather than when the call to push returns though.

Indeed. Decaton already has two concept for tracking task's processing duration - process time and complete time, as they're exposed independently in metrics. Process time corresponds to the time that the process method took till it returns and complete time corresponds to the time the task's offset is marked as completed, so complete time includes process time. I think spans can follow the same structure for this. The span measuring task's complete time (starts right before process call, finish when the process result's marked as completed) and it has one or more children where's the first one is "process time" - the duration of process method call.
As you said users can add one or more child span under the "complete time" span or under the "process time" span depending on whether its executed synchronously in process method or not, so they're likely get the view on zipkin UI with no gap between spans if they design their own spans correctly.

I think spans can follow the same structure for this. The span measuring task's complete time (starts right before process call, finish when the process result's marked as completed) and it has one or more children where's the first one is "process time" - the duration of process method call.

As you said users can add one or more child span under the "complete time" span or under the "process time" span depending on whether its executed synchronously in process method or not, so they're likely get the view on zipkin UI with no gap between spans if they design their own spans correctly.

I can see that many users will want that kind of structure, but I think for some users two separate spans might be more complex than necessary. So I don't think we actually need to provide the "process time" span at decaton framework level - if a user wants a span that covers the execution of their process method, they can define a process method that starts a (child) span at the start and closes it just before returning (or some more complex structure of child spans, some or all of which may be async). But if the user prefers to see a single span per record for simplicity then I'd like to support that use case as well.

if a user wants a span that covers the execution of their process method, they can define a process method that starts a (child) span at the start and closes it just before returning (or some more complex structure of child spans, some or all of which may be async)

Yeah, that's true. At the same time one of the key benefits that a library provides is a good default that helps many users from needing to write same boilerplates.
As you said, especially for sync process implementations having two parts - process time and complete time  - is almost pointless since they both shows exactly the same durations (I guess two same bars up and down on zipkin UI?)
At the same time, we saw many users use deferred completion (async process) with relatively lightweight synchronous work in process method, which in case they want to add another span for measuring synchronous part in process I guess.
So a good default depends on how harmful it is to have both process and complete measurements for sync type process users.

I can see that many users will want that kind of structure, but I think for some users two separate spans might be more complex than necessary.

Can you explain bit more about how is it bad for users to have 2 spans? Is it about two, overlapping bars on UI?

Can you explain bit more about how is it bad for users to have 2 spans? Is it about two, overlapping bars on UI?

Yes, and also increasing the storage volume (which in our case has been a significant concern). Maybe an annotation within the span would be the right way to represent this in Zipkin.

At the same time, we saw many users use deferred completion (async process) with relatively lightweight synchronous work in process method, which in case they want to add another span for measuring synchronous part in process I guess.

At least in the zipkin case, such a user already has to add some boilerplate to propagate the context onto that async task, so I don't think it's any more overhead for them to start a new span at the same time.
I had wondered about implementing a parent class (TracedDecatonProcessor or some such) that starts the spans in the right places. But I think that would only be worthwhile for tracing implementations that automatically propagate the context across async calls, of which the only one I know about is Kamon.

At least in the zipkin case, such a user already has to add some boilerplate to propagate the context onto that async task, so I don't think it's any more overhead for them to start a new span at the same time.

Okay. Let's go with single span for process (complete) part for now. We can easily add one another if we got demands for it :)

Except those minor points now this looks good overall to me.
Please check comments once again since there are some comments folded by github and still aren't addressed (like unused import)

Hi,
I don't understand the Travis build failure. Since I couldn't reproduce it locally I've rebased the branch to the minimum change that causes the failure. It looks like just adding the trace ID header in ProcessorTestSuite causes these two test failures. Are either of you able to reproduce them? Or is there any way to see what's happening on Travis in more detail?
Many thanks,
Mickey

should be #56 ...
it shouldn't keep failing forever though.
6733994 got it passed apparently.
Once you finalize your PR, please just check the test results. If it's difficult to make it pass with 1 or 2 retries (due to those flaky ones) we'll just proceed to merge it disregarding them for now.

should be #56 ...
it shouldn't keep failing forever though.
6733994 got it passed apparently.
Once you finalize your PR, please just check the test results. If it's difficult to make it pass with 1 or 2 retries (due to those flaky ones) we'll just proceed to merge it disregarding them for now.

Ah, I see. Thanks.
I'm happy with the PR (and I think I've addressed all your and @ocadaruma 's comments?).
It looks like I can't re-run the Travis test myself since I don't have write access to this repository?


Upgrade to go1.21

Upgrade hcsshim/main to golang 1.21

cc @helsaawy @anmaxvl

failures are not related

cc @akhilerm

Shouldn't the version be changed in the foilowing workflows also

https://github.com/microsoft/hcsshim/blob/7458e588af85def50ec522a8930ab604af4fd9d4/.github/workflows/release.yml#L8
https://github.com/microsoft/hcsshim/blob/7458e588af85def50ec522a8930ab604af4fd9d4/.github/workflows/ci.yml#L7

made the changes

LGTM
There are a few static check failures on unchanged files. But that can be taken up in a separate PR, or should we make the CI green before merge?

I'd like to fix them before checking in the changes. Will look into them asap


Fix 406 user exceptions

Overview
This PR introduces new exceptions which can be raised from the process code.
Unlike to common exceptions, a message send using the new ProcessError exception will be returned to the user (wps client) via an OGC exception. The message text is validated before sending (not too long, no suspicious chars). If the message is not valid then a default message will be used.
This ProcessError exception is intentionally used to provide some "meaningful" information to the user of what went wrong. Otherwise we always get the message "sorry, something went wrong, please check the logs", which is of not much help to end-users.
This PR fixes #406.
Related Issue / Discussion
#406.
Additional Information
See an example in Emu:
https://github.com/bird-house/emu/blob/758563fdee2f468c0e94392192475e3d3ca5037e/emu/processes/wps_error.py#L38
Contribution Agreement
(as per https://github.com/geopython/pywps/blob/master/CONTRIBUTING.rst#contributions-and-licensing)

[x ] I'd like to contribute [feature X|bugfix Y|docs|something else] to PyWPS. I confirm that my contributions to PyWPS will be compatible with the PyWPS license guidelines at the time of contribution.
[x ] I have already previously agreed to the PyWPS Contributions and Licensing Guidelines

@huard Please have a look at it again.
I need to add some documentation to this PR. But first, I would like to know if you accept the implementation.

Coverage increased (+0.6%) to 74.298% when pulling ce1ad8a38aa61bac9bdc847b32622ee7c077cde7 on bird-house:fix-406-user-exceptions into 28be7cf4b8e6e3ba931a545c7db46fa1e34816a8 on geopython:master.

Coverage increased (+0.6%) to 74.298% when pulling ce1ad8a38aa61bac9bdc847b32622ee7c077cde7 on bird-house:fix-406-user-exceptions into 28be7cf4b8e6e3ba931a545c7db46fa1e34816a8 on geopython:master.

updated the docs and added an example.

@tomkralidis merged. Thanks for review :)


broadcastAll throw a error

Is there any problem with this place？

Hi, Did u solved this ?

I'm having an issue here too. I have the dogecoin.conf and .env set correctly. I am wondering if it could be because I have no cli access to dogecoin. I'm on mac and have the gui running but dogecoin-qt command is not found.

This worked fine for me, i can give you solution. Contact me in discord EinsteinTheory#0119


"No Tracking" zones with geofencing

Feature description
I would like to define my flat as a "no tracking" zone to avoid matches with neighbors I never meet in reality. Feature could be optional because location tracking with the help of mobile and wifi networks would be necessary. Or I just install some beacons in my flat ;-).
Problem and motivation
The problem is a bit related to Wishlist issue 233. I got from one day to another 10 matches and I rarely leave the house, do not meet any people and do not stay anywhere longer except a couple of minutes. I keep social distancing very strict and 10 matches do not fit at all to the reality of my behaviour. So I guess one of my neighbors got positive tested. With the help of Beacon-Scope I can detect quite many beacons inside my flat.
Is this something you're interested in working on
No

Maybe could become difficult if the tracking can't be turned off through the API and the only option would be to turn off bluetooth.

This topic came into my mind today and I think it is actually very important one! Let me explain:
I have quite a few friend that work as medical health staff and some of them also treat COVID-positive people. These friends don't use the app 😱 Why? Well, because it would be red constantly. But: In my opinion it is essential for all people in hospital that they use them. Imagine a nurse uses the app but it always reports high risk because she treats COVID-positive patients.  Now when she has a real risky encounter in non-wok life they would not recognize it since their app is already red! This is a big problem since they bring the infection to the hospital.
This all means we must work towards encouraging hospital staff to use the app, which means in turn we have to enable them to disable exposure tracking, automatically using geofencing, in the hospital area.
I hope the responsible people read this!
Is this something you're interested in working on
Why not 🙃

@Blackjacx
See #108

@Blackjacx you might also want to check out https://github.com/corona-warn-app/cwa-wishlist/issues/251 which is about this distinction problem for healthcare workers 🙂.

@Ein-Tim issue #108 is a specialization of this one. This issue treats the topic generically which I consider as much better than adding special features for multiple employee groups. I went through all open issues and this is the most generic one dealing with this issue. I even opt closing the other ones and reference on this one.

What about guests to your house? Turning it off will increase the probability that you will forget to turn the geofencing off when you get a guest. Also, AFAIK Apple doesn't allow apps to use any geolocation APIs for Corona Apps.
The neighbor issue should be solved already by the distance calculation algorithm, the wall should be helpful here.

Apple and Google is not allowing ENF Apps to use any GPS Location


x/tools/gopls: migrate gopls.mod functionality to go.work

If we intend for people to check these files in, the paths should be relative.

This is going to be deprecated by the go.work proposal. Renaming appropriately.

This is essentially done now. We have other issues for go.work support.


fix: use plugin on linux and macOsX

Have you tested this? Can you share the test results?

how do you test ""test": "echo "Error: no test specified" && exit 1"" in  package.json
are you a process to test ?


Not able to run test.c

I am trying to compile as mentioned in example:
gcc -I/usr/local/include/ -L/usr/local/lib  -o test test.c -linfluxdb -lcurl
not errors
But when I run ./test
error while loading shared libraries: libinfluxdb.so.0: cannot open shared object file: No such file or directory

Hi,
Please try with below:
export LD_LIBRARY_PATH=/usr/local/lib


📖 Docs: Add examples for certain features

Is your feature request related to a problem? Please describe.
Not per se an issue, but I was thinking that maybe it could be useful for others to provide some example "scenarios" in the documentation. For example:

setting up comments via Giscus or a similar service
setting up contact forms (via Netlify, for example)

Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
Since these are more like "extensions" to the theme, they are not really required on your side to document, so they could reasonably be left out.
Additional context
I am working on implementing a contact form via cloud functions for my blog. Maybe this is something you would be interested in having documented on the blowfish docs or added as a feature to the theme?
I am personally using netlify, but I was thinking of using firebase cloud functions to send the email since we already have the firebase integration for views and likes.

This one I am not sure about. 1) I don't use any of those of my personal homepage so I would need to research in order to do it. 2) not sure if those specific ones would get traction from the current user-base (or potential). Would you be able to help on these?

For the giscus comments I can provide a setup guide as I have implemented it on my website.
For the contact form via cloud functions, it is currently on my todo list for my website as well, so once I get that sorted out, I can provide a guide for it too.
Not sure if these are common use-cases, so do let me know if you don't consider them necessary to be included. I was just thinking that if I had these requirements, maybe others do/did too.

Nah I think it's great. My only question is where to place them. Samples? A new section (e.g. recipes/guides)?
And thanks for all the help @mirceanton really appreciate it

Yes, i was thinking a new "recipes" section would be the place. We can put some guides there on how to accomplish things with this theme via the help of some 3rd party tools, as opposed to the core docs which focus only on first party functionality

I feel like we need a PoC of that as a place for people to contribute if they want to... I also have some initial guides I was planning to write myself.

Hmm, maybe we could set up another repo to host the recipes, so we don't crowd this one too much? I feel like cloning it takes long enough as is :laughing:

not worth it at this stage
Wrapped up this feature which should help with organizing docs, samples, recipes, etc
https://github.com/nunocoracao/blowfish/pull/377

Changed the title of this to create the initial recipe session even if empty. I'll try to create a template for people to make it easier to submit new recipes. we can add them later via PRs directly no need for tickets.

Created the recipe section and added a template have a look in the next release

@nunocoracao great! Thank you very much! You've been moving so fast with these feature requests, it's crazy! 🥇


Does not get git user.email value if defined within an includeif gitconfig file

rye already initialises the project directory as a git repository - great. I don't know the order in which it does this but could it use a user's git name and email settings and include those in the pyproject.toml it creates?

rye using git config user and email, or you can set author in config.toml file(which describes in document)

rye using git config user and email

Right you are but not in all cases it seems. See below. I've changed the issue title accordingly.

can you show the output git config --get-regexp "^user.(name|email)$"

That seems to work.

I can't reproduce, can you show the steps of reproduce?

Of course. So firstly, my git config is as follows such that any repository in the "github" directory will use the github associated user.email.

Steps to reproduce:

Create a directory for a rye managed python project
cd into this directory
Execute rye init which initialises the project directory as a git repository - great
Check user.email setting in this repository which should be set according to my git config - it is
Check email setting in the pyproject.toml expecting it to match user.email setting - it does not

Thanks, I reproduce.
In my test, currently includeIf only work at an exists git repository.
When create new project, rye init  firstly generate pyproject.toml,  then try execute git init; so git command cannot get the  content of includeIf at the steps of generating pyproject.toml.

When create new project, rye init firstly generate pyproject.toml, then try execute git init; so git command cannot get the content of includeIf at the steps of generating pyproject.toml.

OK, so it could only work if rye init produces the pyproject.toml last. Is that a possibility? I would think many people use different emails with git and so don't set at the global level.

I have try fix this problem includeif not work, but not sure this is a better.

@mitsuhiko thanks I hadn't but I removed my binary install and installed the latest version via cargo. However, your suggested command does not work. It returns unrecognized subcommand error which tallies with update not being a current subcommand of the latest version of rye or at least not the version I installed via cargo. Did you perhaps mean:
rye self update --rev e7d070402b5fdb2a73e92d3e1f09e530841fec8b

I went ahead an tried that in any case and it finished with the following output which I take means it is now at this commit.

Testing this commit I can state it is doing as I would like in using the user.email setting from an includeif git config file within the pyproject.toml. I hope the re-ordering of the steps performed by rye init to allow this don't have any unforeseen consequences as I think this is a small but very helpful feature that users that use different emails with git would appreciate. I personally would be very happy to see this commit merged into main. Thanks for looking into this and providing a solution @CharlesChen0823.


Consider building GHC with Haskell libraries linked in statically

GHC in nixpkgs is currently built with DYNAMIC_GHC_PROGRAMS=YES. This links Haskell libraries dynamically into GHC, and makes GHC's startup slow.
That in turn makes GHC a bit of a drag to use with nix, because even a simple --version call is unnecessarily slow (e.g. when used from scripts or in interactive feedback loops).
Here's a table of the startup time we're giving away:

startup time (s)
--version time (s)

DYNAMIC_GHC_PROGRAMS=YES
0.30
0.12

DYNAMIC_GHC_PROGRAMS=NO
0.20
0.03

speedup factor
1.5x
4x

Finally, DYNAMIC_GHC_PROGRAMS=YES also makes the nix package larger: 435 MB vs 411 MB for static.
Click here to expand data:

# time /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/bin/ghc
ghc: no input files
Usage: For basic information, try the `--help' option.
/nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/bin/ghc  0.28s user 0.02s system 98% cpu 0.302 total

# time /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/bin/ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.10.4
/nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/bin/ghc --version  0.11s user 0.01s system 99% cpu 0.122 total

# ldd /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/ghc
        linux-vdso.so.1 (0x00007fff371f5000)
        libHShaskeline-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../haskeline-<IP_ADDRESS>/libHShaskeline-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7bc68b000)
        libHSghc-8.10.4-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../ghc-8.10.4/libHSghc-8.10.4-ghc8.10.4.so (0x00007fe7b8e6c000)
        libHSterminfo-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../terminfo-<IP_ADDRESS>/libHSterminfo-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b8e3d000)
        libHSprocess-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../process-<IP_ADDRESS>/libHSprocess-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b8e00000)
        libHShpc-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../hpc-<IP_ADDRESS>/libHShpc-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b8dca000)
        libHSghci-8.10.4-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../ghci-8.10.4/libHSghci-8.10.4-ghc8.10.4.so (0x00007fe7b8c3a000)
        libHSghc-heap-8.10.4-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../ghc-heap-8.10.4/libHSghc-heap-8.10.4-ghc8.10.4.so (0x00007fe7b8bd0000)
        libHSghc-boot-8.10.4-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../ghc-boot-8.10.4/libHSghc-boot-8.10.4-ghc8.10.4.so (0x00007fe7b8b2b000)
        libHSbinary-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../binary-<IP_ADDRESS>/libHSbinary-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b8aa1000)
        libHSexceptions-0.10.4-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../exceptions-0.10.4/libHSexceptions-0.10.4-ghc8.10.4.so (0x00007fe7b8a69000)
        libHStemplate-haskell-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../template-haskell-<IP_ADDRESS>/libHStemplate-haskell-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b885e000)
        libHSpretty-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../pretty-<IP_ADDRESS>/libHSpretty-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b8800000)
        libHSghc-boot-th-8.10.4-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../ghc-boot-th-8.10.4/libHSghc-boot-th-8.10.4-ghc8.10.4.so (0x00007fe7b87d0000)
        libHSstm-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../stm-<IP_ADDRESS>/libHSstm-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b87a9000)
        libHSmtl-2.2.2-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../mtl-2.2.2/libHSmtl-2.2.2-ghc8.10.4.so (0x00007fe7b8779000)
        libHStransformers-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../transformers-<IP_ADDRESS>/libHStransformers-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b86a3000)
        libHSdirectory-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../directory-<IP_ADDRESS>/libHSdirectory-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b8659000)
        libHSunix-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../unix-<IP_ADDRESS>/libHSunix-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b8571000)
        libHStime-1.9.3-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../time-1.9.3/libHStime-1.9.3-ghc8.10.4.so (0x00007fe7b8487000)
        libHSfilepath-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../filepath-<IP_ADDRESS>/libHSfilepath-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b8457000)
        libHScontainers-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../containers-<IP_ADDRESS>/libHScontainers-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b815d000)
        libHSbytestring-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../bytestring-<IP_ADDRESS>/libHSbytestring-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b803a000)
        libHSdeepseq-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../deepseq-<IP_ADDRESS>/libHSdeepseq-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b801f000)
        libHSarray-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../array-<IP_ADDRESS>/libHSarray-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b7f54000)
        libHSbase-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../base-<IP_ADDRESS>/libHSbase-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b7634000)
        libHSinteger-gmp-<IP_ADDRESS>-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../integer-gmp-<IP_ADDRESS>/libHSinteger-gmp-<IP_ADDRESS>-ghc8.10.4.so (0x00007fe7b75f2000)
        libHSghc-prim-0.6.1-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../ghc-prim-0.6.1/libHSghc-prim-0.6.1-ghc8.10.4.so (0x00007fe7b7148000)
        libHSrts_thr-ghc8.10.4.so => /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/lib/ghc-8.10.4/bin/../rts/libHSrts_thr-ghc8.10.4.so (0x00007fe7b70b7000)
        libncursesw.so.6 => /nix/store/s5xpnmnhibl76a47wd65cwrwgjclzrnc-ncurses-6.2/lib/libncursesw.so.6 (0x00007fe7b7046000)
        libgmp.so.10 => /nix/store/157hv8qvfn8wgqjvrbkj69wa72b0if7n-gmp-6.2.1/lib/libgmp.so.10 (0x00007fe7b6fa4000)
        libc.so => /nix/store/dlvw7qab3m24m88f0iwc8zzal06ab92p-musl-1.2.2/lib/libc.so (0x00007fe7b6ef1000)
        libffi.so.7 => /nix/store/c1wiqgajygl66z3n1jl9m9baiykxwp1k-libffi-3.3/lib/libffi.so.7 (0x00007fe7b6ee4000)

# time /nix/store/fh1wc8s9ja3vi9zxgazkp9rp48c4nx7d-ghc-8.10.4/bin/ghc
ghc: no input files
Usage: For basic information, try the `--help' option.
/nix/store/fh1wc8s9ja3vi9zxgazkp9rp48c4nx7d-ghc-8.10.4/bin/ghc  0.18s user 0.01s system 95% cpu 0.204 total

# time /nix/store/fh1wc8s9ja3vi9zxgazkp9rp48c4nx7d-ghc-8.10.4/bin/ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.10.4
/nix/store/fh1wc8s9ja3vi9zxgazkp9rp48c4nx7d-ghc-8.10.4/bin/ghc --version  0.02s user 0.01s system 89% cpu 0.034 total

# ldd /nix/store/fh1wc8s9ja3vi9zxgazkp9rp48c4nx7d-ghc-8.10.4/lib/ghc-8.10.4/bin/ghc
        linux-vdso.so.1 (0x00007fffc5f99000)
        libncursesw.so.6 => /nix/store/s5xpnmnhibl76a47wd65cwrwgjclzrnc-ncurses-6.2/lib/libncursesw.so.6 (0x00007f50f4a13000)
        libgmp.so.10 => /nix/store/157hv8qvfn8wgqjvrbkj69wa72b0if7n-gmp-6.2.1/lib/libgmp.so.10 (0x00007f50f4973000)
        libc.so => /nix/store/dlvw7qab3m24m88f0iwc8zzal06ab92p-musl-1.2.2/lib/libc.so (0x00007f50f48c0000)
        libffi.so.7 => /nix/store/c1wiqgajygl66z3n1jl9m9baiykxwp1k-libffi-3.3/lib/libffi.so.7 (0x00007f50f48b3000)

 # du -sh /nix/store/fh1wc8s9ja3vi9zxgazkp9rp48c4nx7d-ghc-8.10.4/lib/ghc-8.10.4
411M    /nix/store/fh1wc8s9ja3vi9zxgazkp9rp48c4nx7d-ghc-8.10.4/lib/ghc-8.10.4

# du -sh /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/
435M    /nix/store/ipdnx5ajcdplxvsff6lw55pdwsm8qpn6-ghc-8.10.4/

In nixpkgs there is no benefit in linking Haskell libraries dynamically into programs. This is why the haskell-modules/generic-builder.nix defaults to enableSharedExecutables ? false for nix-built Haskell programs. We should do the same for GHC.
CC @NixOS/haskell @domenkozar

Edit: We should not do that for now, see https://github.com/NixOS/nixpkgs/issues/129245#issuecomment-874241200.
Instead, new closing criteria for this issue:

[ ] Find an authorative resource or technical explanation of why exactly this would create problems, and put that in a comment on enableShared it in the GHC Nix derivation files.

Sounds good to me.

I asked on #ghc chat and got suggestions that this is probably not a good idea:
@mpickering says:

There are a lot of issues with the linker built into GHC, so TH will not work with nixpkgs provided GHC for some cases.
If you need to dynamically load certain libraries, just look at the HLS issue tracker.

@adamse concurs:

I agree with mpickering that it will cause pain for TH and sometimes ghci.

My original question was:

I'm planning to switch the nixpkgs GHC buidls from defaulting to DYNAMIC_GHC_PROGRAMS=YES to NO, to get 4x faster-starting GHCs. Will this prevent the creation of .so files entirely, thus making dynamic linking impossible, or will -dynamic-too still be active?

the latter part of which @adamse explained:

You can still build .so's (with or w/o -dynamic-too), but [concerns quoted above]

@mpickering explained that haskell-language-server distributes GHCs with Haskell libraries statically-linked in, and that this creates many problems for them. It is currently unclear to me why haskell-language-server does that then, as it seems that they could just as well provide a DYNAMIC_GHC_PROGRAMS=YES for download for e.g. VSCode users. I'll ask that upstream.

I don't really understand why linking e.g. libHSfilepath-* statically into the ghc binary affects TemplateHaskell at all. If anybody could find a resource that we could link to from the GHC nix derivations, we could close this ticket as something we don't want to do.

I don't really understand why linking e.g. libHSfilepath-* statically into the ghc binary affects TemplateHaskell at all. If anybody could find a resource that we could link to from the GHC nix derivations, we could close this ticket as something we don't want to do.

@mpickering / @adamse / @bgamari If you have time, could you help us out with a good explanation or upstream GHC ticket to link to?

I think the main issue is linking the RTS statically, this currently causes GHCi and TemplateHaskell to use the home grown runtime linker to load other haskell packages object code. I don't quite remember all the details here though.

Definitely not stale.


missing field keys...

After login on the SSO page (so from the redirect):
May 15 07:05:34 matrix mas-cli[175]: 2024-05-15T07:05:34.183556Z ERROR http.server.request{otel.kind="server" otel.name="GET /upstream/callback/:provider_id" network.protocol.name="http" network.protocol.version="1.1" http.request.method="GET" url.path="/upstream/callback/01HFRQFT5QFMJFGF01P7JAV2ME" url.scheme="http" http.route="/upstream/callback/:provider_id" url.query="code=62cec9xxxxx4bc7b6a00d762933a757&state=im6xxxxs8wsRTg" user_agent.original="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36"}:handlers.upstream_oauth2.callback.get{upstream_oauth_provider.id=xxxx}: mas_handlers::upstream_oauth2::callback: error=missing field "keys" at line 1 column 2
config:
database:
  host: postgresql.example.com
  username: mas
  password: pass
  database: mas

secrets:
  encryption: xxx
  keys:
  - kid: xxx
    key: |
      -----BEGIN RSA PRIVATE KEY-----
      xxxx
      -----END RSA PRIVATE KEY-----
  - kid: kmURjfc5ev
    key: |
      -----BEGIN EC PRIVATE KEY-----
      xxxx
      -----END EC PRIVATE KEY-----
  - kid: Tzh02OYJ5f
    key: |
      -----BEGIN EC PRIVATE KEY-----
     xxxx
      -----END EC PRIVATE KEY-----
  - kid: xxxx
    key: |
      -----BEGIN EC PRIVATE KEY-----
      xxxx
      -----END EC PRIVATE KEY-----

matrix:
  homeserver: example.com
  secret: xxxxx
  endpoint: http://localhost:8008/

clients:
  - client_id:<PHONE_NUMBER>000000000SYNAPSE
    client_auth_method: client_secret_basic
    client_secret: "xxxx"

upstream_oauth2:
  providers:
  - id: xxxxx
    human_name: xxxx
    issuer: "https://sso.example.com/application/o/mas/"
    client_id: "xxxx"
    client_secret: "xxxx"
    scope: "openid profile email"
    claims_imports:
      localpart:
        action: require
        template: "{{ user.preferred_username }}"
      displayname:
        action: suggest
        template: "{{ user.name }}"
      email:
        action: suggest
        template: "{{ user.email }}"
        set_email_verification: always
    token_endpoint_auth_method: client_secret_post

http:
  listeners:
  - name: web
    resources:
    - name: discovery
    - name: human
    - name: oauth
    - name: compat
    - name: graphql
      playground: true
    - name: assets
    binds:
    - address: '<IP_ADDRESS>:8080'
    proxy_protocol: false
  trusted_proxies:
  - <IP_ADDRESS>/24
  public_base: https://auth.matrix.example.com/
  issuer: https://example.com/

passwords:
  enabled: false

Authentik is my upstream provider.

This feels like MAS can't fetch the JWKS from Authentik. Can you check that:

you can retrieve the OpenID Connect Discovery Document, in this case at https://sso.example.com/application/o/mas/.well-known/openid-configuration
there is a jwks_uri field
you can retrieve this jwks_uri and this document has a "keys" field

I can retrieve the jwks url but it's empty: {}

I added a signing key, now I get: `wrong signature alg
I see ES256 alg in the jkws response.

I had to use Authemtik's self-signed cert with RS256.
I can login now, thanks!

Glad it now works! MAS does support ES256 keys, you just need to set in the upstream provider config:
token_endpoint_auth_signing_alg: ES256

There is an existing documentation for Authentik here: https://matrix-org.github.io/matrix-authentication-service/setup/sso.html#authentik
If something is not accurate here, could you please open a PR to fix the instructions there?


Lock node version + file watcher

There are two main changes here:

Lock down the node version 20, remove unused ts-node

For those developers who use nvm (https://github.com/nvm-sh/nvm) (like me! 🙂), having an .nvmrc file is useful to make sure they use the right node version of the project.
I don't think ts-node was used. Correct me if I'm wrong!

Add a watcher that can prettify and combine JSON files on each source file edit. Make this run in combination with next dev, which already has its own file watcher.

The goal is to not have to restart next dev every time you edit a JSON source file.
In this script, I also included npm prettify after each JSON file change (save), which is maybe down to personal preference. I'm not sure if it could mess up a file when it is saved with invalid JSON. Probably this should still be tested!
I also made this the default for npm run dev, which is also down to preference. It could also be another script.

Hey, that's interesting. This project was initially generated with the outdated Create React App and then migrated to Next.js. I have no idea why I had ts-node there :)
I think running prettify automatically is nice as long as it doesn't mess with invalid JSON. But even if it will break it, the script can be updated not to do this!
Thank you for the PR!

I have no idea why I had ts-node there

I was actually intrigued by the node --import tsx syntax, I hadn't seen it before. I've used ts-node and vite-node in other projects, but usually experienced problems with those.
I also had to look up what the difference with tsx was. I'm still not sure entirely which node version started supporting what exactly natively (I first successfully ran this project on Node 18), but it all seems to work without ts-node.

I think running prettify automatically is nice as long as it doesn't mess with invalid JSON. But even if it will break it, the script can be updated not to do this!

Good point. If it detects invalid JSON, it should probably stop and not write anything (if it doesn't do that already). I'd also like to update the prettify script to be able to prettify one JSON file at at time, so it can work together with the file watcher more efficiently.

Thank you! Found some TypeScript tricks that I didn't know about 😊

@th0rgall I found out why I had ts-node. It is required for jest to support configs in TypeScript.
https://jestjs.io/docs/configuration


removing price list from rate field while creating invoices removes applied discount value also

Common feature
applicable all item related vouchers. @zahidmuhammed


Izpack 1408: Fix for multiline regex matches

The boundaries ^ and $ did not work as supposed

Thanks for contributing.


Fix for https://github.com/apexcharts/apexcharts.js/pull/4760 did not make it into 3.54.1

Description

Steps to Reproduce

Look at the code in src/common/bar/Helper.js line 254 - fix exists in master/mainline branch.
Look at PR https://github.com/apexcharts/apexcharts.js/pull/4760
Code is merged into mainline with 3.54.1 build/releasee label
3.54.1 package release does not contain the fix (see screenshot).

Expected Behavior
Code in 3.54.1 has the fix
Actual Behavior
Code in 3.54.1 does NOT have the fix
Screenshots

Reproduction Link

https://codepen.io/apexcharts/pen/bxzgZJ - no codepen necessary

Released v4.0.0 which should have the fix.

@junedchhipa Thank you!


fix vec3d::GetMagnitude etc naming conventions

Should be snake case like vec2d.

Fixed in https://github.com/MarkOates/allegro_flare/commit/ac4f4525ca6376bb439fbb4552081acb926202a8 and https://github.com/MarkOates/allegro_flare/commit/70b60e2114b8964dad602dd51061775d52466542


How specify button type in QModelToolBar

Description
Is it possible to specify button type (e.g., qtpy.QtWidgets.QRadioButton, napari._qt.widgets.qt_mode_buttons.QtModeRadioButton etc) for actions inside a QModelToolBar?
Looking at Action it seems that the fields are fairly menu specific?
Context:
We are looking at migrating the viewer buttons and layer controls in napari to app-model.

cc @dragadoncila

Looking at Action it seems that the fields are fairly menu specific?

A QToolbar is really very similar to a menu, except that instead of text items in a dropdown, you have QToolButton items in a layout.

Is it possible to specify button type (e.g., qtpy.QtWidgets.QRadioButton, napari._qt.widgets.qt_mode_buttons.QtModeRadioButton etc) for actions inside a QModelToolBar?

While it's true that you can add any generic widgets (in the case where a QToolButton isn't appropriate), I would definitely encourage you to take this opportunity to reconsider whether things like napari._qt.widgets.qt_mode_buttons.QtModeRadioButton were really the best way to design those layer controls (or whether it was just the "first" way it was designed 😄)
At the moment, being largely declarative, app-model doesn't provide an Action-based API for declaring a specific widget instance that would be passed to QToolbar.addWidget, so you would have to do that by just directly accessing the QModelToolBar and calling addWidget on it.
An alternative would be to stick with QToolButtons and action that, when triggered, sets the mode in some context.  And then all of the buttons would have their toggled field set as an expression that evaluated to true when their mode was active.  (The benefit of that approach, by the way, is that those buttons would respond to a much broader variety of ways to change the mode.  For example: they would more naturally respond to keybindings that set the mode, or any general programmatic thing that updates that mode in the context somehow).  If possible (and I'm not sure up front whether it is), I'd see if you can design away this whole module: https://github.com/napari/napari/blob/2e9b117a80a43af144457c83f599ffa5bae684a7/napari/_qt/widgets/qt_mode_buttons.py
I would try to play with some examples of QToolBar and QToolButton (with layer mode buttons in mind) and see if you can get a behavior you like.  I suspect the current pattern was used mostly without knowing about the existence of QToolButton

Thanks for your input. Did not want to make any potentially controversial changes to napari layout but will look into your suggestions.
I'll close this issue.


Error "path attribute should be defined"

"external-path" in the red underlined text is the problem here.
Android lint: Android resources validation error in provider_paths.xml
the path attribute should be defined is the error description.

Would you like to work on this issue?
Yes, I want to work on this issue.

@gupta1anubhav can you provide some details on how you plan to fix the above.
Moreover please detail where the above code is being used. :)

As per by screenshot logs.txt file is stored in external directory + CommonsApp
Hence path is added as "CommonsApp" for name="logs".
I have created a pr for this issue.


fix(form-control): fix label line-height

Изменила текстовые стили и позиционирование Label

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.364%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
5046

Relevant Lines:
5693

💛  - Coveralls


:rocket: Try compatible fork Niquests

This PR showcases how Locust could evolve outside of Requests.
Niquests is supposed to be a (mostly) compatible fork of Requests.
Here are the biggest pros of this:

OS truststore by default, no more certifi!
Fully type-annotated!
HTTP/3 over QUIC.
HTTP/2 by default.
Exit Python http.client! in favor of h11.
Timeout by default.
Inspect peer certificate, HTTP version, TLS version, cipher, and so on via hook/callback before a request is sent.
All the features you expose are available in all three protocols.
Python 3.7+, no sacrifice needed.

I took the time to verify that it works properly as-is.
A minimal patch was required but no feature was tampered with or broken in the process.
Also, there is room for adding features, like spawning requests per protocols (1.1, 2, and 3) could be interesting.
This PR is a "solid" proof of concept, if you want to, we can make this work/distributable.
Finally, I plan to land full support for multiplexed requests in HTTP/2 and HTTP/3 soon! Probably going to be useful here.
https://github.com/jawah/niquests

Well it looks… ok. But I dont see it replacing Requests for the default HttpUser. Maybe it could fit in locust-plugins. I’m curious though: have you encountered a specific limitation running Requests in Locust, or is it more of a nice to have/personal preference?

Maybe it could fit in locust-plugins.

Noted. You went a bit too fast, right now it is not about moving forward with this, as per the "Try" in the title.
We are collecting intelligence on this as we speak and seek feedback from various concerned actors.

have you encountered a specific limitation running Requests in Locust, or is it more of a nice to have/personal preference?

Well, the bullet points should be a starter. I used Locust in various cases and it is easily criticized in some aspects like (but not limited to) lack of h2, and h3 (as per modern browsers), and does not dismiss and/or separate connect/handshake delays, ..
Locust is more seen as "a quick preview / rough estimate" but not accurate enough for high-stakes analysis. Unfortunately.
Nice tool nonetheless.

👍 As an option, niquests may make sense, but not as the default.


Fixes DF-1677 - scopes multi-line list styles.

Till the multi-line link list pattern is fleshed out completely this PR
scopes the styles for that in cf-enhancements so it doesn’t conflict
with un-migrated styles on the press resources page.
Changes

Scopes multi-line list styles.
Additionally, adds a class wrapper for the procurement history page
so styles can be targeted there as well.

Testing

visit /budget/financial-report/,  /newsroom/press-resources/, and /doing-business-with-us/past-awards/ and all should look okay in the icon lists.

Review

@jimmynotjim
@sebworks

Notes

This is a patch and will need to be re-worked to allow the multi-line icon lists to handle when the classes for them are added directly in the markup instead of in pure CSS.

:+1:


make generate_yaml command broken for TAGs with of type int

Describe the bug
from the release-1.1 branch:
add set -x to start of /install/updateVersion.sh script
run ./install/updateVersion.sh -a "gihanson,111618"
/Users/gihanson/go/out/darwin_amd64/release/helm template --set global.tag=1116 \
		--name=istio \
		--namespace=istio-system \
		--set global.hub=gihanson \
		--set global.proxy.enableCoreDump=false \
		--set istio_cni.enabled=false \
		 \
		--values install/kubernetes/helm/istio/values-istio.yaml \
		install/kubernetes/helm/istio >> install/kubernetes/istio.yaml
Error: render error in "istio/charts/security/templates/create-custom-resources-job.yaml": template: istio/charts/security/templates/create-custom-resources-job.yaml:58:66: executing "istio/charts/security/templates/create-custom-resources-job.yaml" at <32>: wrong type for value; expected string; got float64
make: *** [istio.yaml] Error 1

the following line in the yaml does not work for int TAG's
name: istio-security-post-install-{{ .Values.global.tag | trunc 32 }}
Following lines cause problems:
https://github.com/istio/istio/blame/release-1.1/install/kubernetes/helm/subcharts/security/templates/create-custom-resources-job.yaml#L58
https://github.com/istio/istio/blob/release-1.1/install/kubernetes/helm/subcharts/security/templates/cleanup-secrets.yaml#L68
Broken by PR https://github.com/istio/istio/pull/9971

FWIW, the issue seems to be pretty narrow to specific TAG formats.  I noticed no problems with the following tags:
TAG=release-1.1-latest-daily
TAG=master-latest-daily
TAG=f9d12c36c87dfa46187641711a1953ed467d3ea8
TAG=f9d12c36c

if the TAG is interpreted as string, everything is fine

resolved by #10021


add quantization config example including measure of output tensors

by default the habana-quantization-toolkit exclude output tensor scale measurements for quantization
added a json config example of how to enable the measurements of the output tensors.

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.


Expose types from the root

Problem:
I tried to import ParsedCountry type and it worked well on my machine, however it broke build on deployment, because by that time there was already a new version release with the 'build' folder renamed into 'dist'.
Describe the solution you'd like
Ideally types should be to be exposed from the root folder

:tada: This issue has been resolved in version 4.2.5 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

@oleseaciumac Types export is updated in v4.2.5.
Please check that all the types you need are exported from root. Feel free reopen this ticket if anything is missing 🙏


One Plus 9 fingerprint unlock (Not fixed)

Unfortunately #305 does not appear to be fixed when I'm importing the new version of the library.
I've dived into the code to try and work out why it was working on your APK build and the difference is as follows:
I believe you sent me a debug build and because of this the isExperimentalFeaturesEnabled flag was set to true.
This results in the following code being executed (in BiometricPrompApi28Impl):
            if (builder.isExperimentalFeaturesEnabled() && builder.getPrimaryAvailableTypes().size == 1 && builder.getPrimaryAvailableTypes()
                    .toMutableList()[0] == BiometricType.BIOMETRIC_FINGERPRINT
            ) {
                forceToFingerprint = true
            }

and the forceToFingerprint is set to true.
I am able to get it working by setting the experimental features to true when I'm calling.

@jamiehiggins can we close the issue?

@sergeykomlach Yep all seems good now. Thanks again for the quick fix.


[WIP] Minimal changes necessary for Spock integration

Encompasses the minimal amount of changes needed to integrate Spock.
Unit tests adjusted for all changes. 100% pass.
The only fundamental change to the API is that TreeBandit parameters are specified (as of sklearn>=1.0.2) instead of being an empty Dict. This is due to the nature of Spock type checking where the underlying type of a dictionary value cannot be typing.Any as isinstance raises an exception on these types (as it is not really a type per say). Thus the configuration for TreeBandit is now:
class _DTCCriterion(Enum):
    squared_error = "squared_error"
    friedman_mse = "friedman_mse"
    absolute_error = "absolute_error"
    poisson = "poisson"

class _DTCSplitter(Enum):
    best = "best"
    random = "random"

@spock
class TreeBandit:
    """TreeBandit Neighborhood Policy.
    This policy fits a decision tree for each arm using context history.
    It uses the leaves of these trees to partition the context space into regions
    and keeps a list of rewards for each leaf.
    To predict, it receives a context vector and goes to the corresponding
    leaf at each arm's tree and applies the given context-free MAB learning policy
    to predict expectations and choose an arm.
    The TreeBandit neighborhood policy is compatible with the following
    context-free learning policies only: EpsilonGreedy, ThompsonSampling and UCB1.
    The TreeBandit neighborhood policy is a modified version of
    the TreeHeuristic algorithm presented in:
    Adam N. Elmachtoub, Ryan McNellis, Sechan Oh, Marek Petrik
    A Practical Method for Solving Contextual Bandit Problems Using Decision Trees, UAI 2017
    Attributes
    ----------
    tree_parameters: Dict, **kwarg
        Parameters of the decision tree.
        The keys must match the parameters of sklearn.tree.DecisionTreeClassifier.
        When a parameter is not given, the default parameters from
        sklearn.tree.DecisionTreeClassifier will be chosen.
        Default value is an empty dictionary.
    Example
    -------
        >>> from mabwiser.mab import MAB, LearningPolicy, NeighborhoodPolicy
        >>> list_of_arms = ['Arm1', 'Arm2']
        >>> decisions = ['Arm1', 'Arm1', 'Arm2', 'Arm1']
        >>> rewards = [20, 17, 25, 9]
        >>> contexts = [[0, 1, 2, 3], [1, 2, 3, 0], [2, 3, 1, 0], [3, 2, 1, 0]]
        >>> mab = MAB(list_of_arms, LearningPolicy.EpsilonGreedy(epsilon=0), NeighborhoodPolicy.TreeBandit())
        >>> mab.fit(decisions, rewards, contexts)
        >>> mab.predict([[3, 2, 0, 1]])
        'Arm2'
    """

    criterion: Optional[_DTCCriterion] = _DTCCriterion.squared_error
    splitter: Optional[_DTCSplitter] = _DTCSplitter.best
    max_depth: Optional[int] = None
    min_samples_split: int = 2
    min_samples_leaf: int = 1
    min_weight_fraction_leaf: float = 0.0
    max_features: Optional[int] = None
    random_state: Optional[int] = None
    max_leaf_nodes: Optional[int] = None
    min_impurity_decrease: float = 0.0
    ccp_alpha: float = 0.0

    def __post_hook__(self):
        try:
            if self.ccp_alpha is not None:
                ge(self.ccp_alpha, bound=0.0)
        except Exception as e:
            raise ValueError(
                f"`{self.__class__.__name__}` could not be instantiated -- spock message: {e}"
            )

Notable Fixes

Fixed failing examples (Random, CustomizedMAB, ParallelMAB)
Fixed incorrect definitions of TreeBandit parameters -- implementation uses DecisionTreeRegressor while configuration was using DecisionTreeClassifier which have different parameters
Fixed all NoReturn types which are incorrect type hints

@bkleyn @skadio
This is the minimal set of changes needed for Spock integration without heavily refactoring the backend and/or front-end API

Closing this one due to over-time (many thanks to @ncilfone!)


Set the program name in skyconv

Without setting the name, the tool crashes when you run it with no arguments.

Thank you for this! We have fixed this crash in a different way; the fix will be released with the next refresh.


Feature request: Cloudant package, changes feed: add filtering parameters

Why
I was trying to listen to changes of a cloudant feed and then send an email using sendgrid, when one flag 'process' was set to true.
For this I needed to implement one openwhisk action to filter out whether 'process' was set to true and 'mailsend' set to false.
Suggestion
Looking at the documentation of cloudant I saw that you can add add filter and doc_ids to a changefeed. It would be very awesome to add these parameters, so that filtering can already be taken care of at the change feed instead of the user created action.
Bonus
I also saw that you can pass oldDoc as a parameter. This could be helpful if you want to compare what exactly changed in an action.

Hi @bseyb I started looking into the design on providing a way to filter changes for the cloudant trigger.
Looking at the spec of the changes API
It looks like a filter and docs_id is doable, a filter will be a filter function on a design document.
What I didn't find was oldDoc during my testing the changes feed only provide the id and deleted=true and the new revision marked as deleted.
I was not able to find a reference to oldDoc in the changes API params.
Could share a bit more where you saw this reference?

Hi @csantanapr I must have misread it, I cannot find oldDoc in the correct context either.
Having that Filter function available would help a whole lot.

@csantanapr move this to openwhisk-catalog-cloudant? FYI @johnsolm @dubeejw.

Issue moved to openwhisk/openwhisk-package-cloudant #68 via ZenHub


[SCB-356] update metrics write file samples : add status code to file name

Signed-off-by: zhengyangyong<EMAIL_ADDRESS>Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a JIRA issue filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
[x] Each commit in the pull request should have a meaningful subject line and body.
[x] Format the pull request title like [SCB-XXX] Fixes bug in ApproximateQuantiles, where you replace SCB-XXX with the appropriate JIRA issue.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Run mvn clean install to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Add status code to metrics output file name for better effect
before :
mwf.mwf-log4j-springboot.mwf-log4j-springboot.demoServiceEndpoint.fun.producer.execution.latency.dat
now :
mwf.mwf-log4j-springboot.mwf-log4j-springboot.demoServiceEndpoint.fun.producer.execution.latency.(status code like 200).dat

Coverage decreased (-0.02%) to 87.185% when pulling a2705e6dbaac47e4c8e237f78a01256670590bd6 on zhengyangyong:SCB-356 into b09a6c2fe54e543e2aa113bc569abfc648a20265 on apache:master.


Additional Module and Theme directories (squashed commit)

This is yet another variant of PR , #5604
Relative to current 1.9.x, squashed (http://makandracards.com/makandra/527-squash-several-git-commits-into-a-single-commit)

This is really nice, but please, pretty please, make a PR out of dev, not 1.9.x ;) Didn't I mention it in the previous one?


Need a way to ignore an error of a Type

Do you want to request a feature or report a bug?
Feature
What is the current behavior?
Unable to ignore an error of type NS_ERROR_NOT_CONNECTED.
This is eating away our events budget.
What is the expected behavior?
Take in options something like:
ignoreErrorTypes: [
  'NS_ERROR_NOT_CONNECTED'
]

Which versions of Raven.js, and which browser and OS are affected by this issue? Did this work in previous versions of Raven.js? Are you using the CDN (http://ravenjs.com)? Are you using hosted Sentry or on-premises? If on-premises, which version (e.g. 8.7.0)?
Affects Firefox all versions.
Would you be open to a PR for this? Or should I create a local copy and host it on my CDN?

Ok found out there is a shouldSendCallback option. Let me try if that helps. Then you can go ahead and close this issue.

You might also refer to the ignoreErrors option in the config docs. Between those two options you should be able to solve this but feel free to reopen if not.

ignoreErrors is checked only against the message and not against the type.
https://github.com/getsentry/raven-js/blob/b8afab1d156467cb2cca0a166385fe9a94aff2cb/src/raven.js#L1290


Migrate edX API to be a resource provider

The edX API interface is currently just a pair of functions. Update to be a class object that gets exposed as a resource provider. This will simplify addition of more API endpoints, as well as providing a means of creating a dummy resource to facilitate unit testing.

Can this be closed?


Add rm -rf for TKG if cleanWs fails in openjdk_tests

Fixes pre-test cleanWs failure for non-ASCII characters on s390x sanity.openjdk:
https://ci.adoptium.net/job/Test_openjdk20_hs_sanity.openjdk_s390x_linux/70/console
Successful clean with this PR: https://ci.adoptium.net/job/Test_openjdk20_hs_sanity.openjdk_s390x_linux/74/
Pipeline] cleanWs
10:52:37  [WS-CLEANUP] Deleting project workspace...
10:52:37  [WS-CLEANUP] Deferred wipeout is disabled by the job configuration...
10:52:39  ERROR: Cannot delete workspace :Malformed input or input contains unmappable characters: /home/jenkins/workspace/Test_openjdk20_hs_sanity.openjdk_s390x_linux/aqa-tests/TKG/output_16784648952959/jdk_lang_1/work/scratch/TestLambdaFileEncodingSerialization$ABC������.class
[Pipeline] echo
10:52:39  Exception: hudson.AbortException: Cannot delete workspace: Malformed input or input contains unmappable characters: /home/jenkins/workspace/Test_openjdk20_hs_sanity.openjdk_s390x_linux/aqa-tests/TKG/output_16784648952959/jdk_lang_1/work/scratch/TestLambdaFileEncodingSerialization$ABC������.class
[Pipeline] sh
10:52:40  + rm -rf /home/jenkins/workspace/Test_openjdk20_hs_sanity.openjdk_s390x_linux/aqa-tests/TKG
[Pipeline] cleanWs
10:52:41  [WS-CLEANUP] Deleting project workspace...
10:52:41  [WS-CLEANUP] Deferred wipeout is disabled by the job configuration...
10:52:48  [WS-CLEANUP] done

https://github.com/adoptium/aqa-tests/pull/4426


edgedb error: InternalServerError: cardinality of property 'tname' of object type 'default::ActivenessSnapshot' is unknown

EdgeDB Version: 2.7+81de4dd
EdgeDB CLI Version: EdgeDB CLI 2.2.6+b869667
OS Version: Ubuntu 20.04

Steps to Reproduce:

Run query

with
snapshots := (
    select ActivenessSnapshot
    filter
    .<activeness_history[is Alert].severity in array_unpack(<array<int16>>$severity_levels) and
    .at < <datetime>$horizon
)
group snapshots using alert_id := .<activeness_history[is Alert].id by alert_id

Schema:
module default {
    type ActivenessSnapshot {
        required property number -> int32;
        required property at -> datetime;
        property new_activeness -> bool;
    }

    type Alert {
        required property active -> bool;
        required property title -> str;
        required property description -> str;
        required property issue_detail -> str;
        required property recommendation -> str;
        required property recommendation_detail -> str;
        property comment -> str;
        property tag -> str;
        required property severity -> int16;
        required property hash -> str;
        required property extra -> json;
        multi link activeness_history -> ActivenessSnapshot {
            constraint exclusive;
            on source delete delete target;
        };
        required property last_seen -> datetime;
        required property cdate -> datetime {
            default := datetime_of_transaction();
        };
        required property mdate -> datetime {
            default := datetime_of_transaction();
        };
    }
}

The error I get:
edgedb error: InternalServerError: cardinality of property '__tname__' of object type 'default::ActivenessSnapshot' is unknown
  Hint: This is most likely a bug in EdgeDB. Please consider opening an issue ticket at https://github.com/edgedb/edgedb/issues/new?template=bug_report.md
  Server traceback:
      Traceback (most recent call last):
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/server/compiler_pool/worker_proc.py", line 55, in worker
          res = meth(*args)
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/server/compiler_pool/worker.py", line 160, in compile
          units, cstate = COMPILER.compile(
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/server/compiler/compiler.py", line 2277, in compile
          unit_group = self._compile(ctx=ctx, source=source)
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/server/compiler/compiler.py", line 1798, in _compile
          return self._try_compile(ctx=ctx, source=source)
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/server/compiler/compiler.py", line 1862, in _try_compile
          comp, capabilities = self._compile_dispatch_ql(
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/server/compiler/compiler.py", line 1772, in _compile_dispatch_ql
          query = self._compile_ql_query(ctx, ql, script_info=script_info)
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/server/compiler/compiler.py", line 716, in _compile_ql_query
          out_type_data, out_type_id = sertypes.TypeSerializer.describe(
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/server/compiler/sertypes.py", line 582, in describe
          type_id = builder._describe_type(
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/server/compiler/sertypes.py", line 314, in _describe_type
          subtype_id = self._describe_set(
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/server/compiler/sertypes.py", line 169, in _describe_set
          type_id = self._describe_type(t, view_shapes, view_shapes_metadata,
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/server/compiler/sertypes.py", line 297, in _describe_type
          if ptr.singular(self.schema):
        File "/home/vhh/.local/share/edgedb/portable/2.6/lib/python3.10/site-packages/edb/schema/pointers.py", line 748, in singular
          raise AssertionError(f'cardinality of {vn} is unknown')
      AssertionError: cardinality of property '__tname__' of object type 'default::ActivenessSnapshot' is unknown
edgedb>

For reference, this is minimal repro:
with
snapshots := ActivenessSnapshot
group snapshots using num := .number by num


Python library deprecated in favor of Go library, or actively maintained?

@licquia Sorry to bother, but is this project still being actively maintained, or has it been deprecated in favor of the go tools? My team would really like to use this tool, but had some concerns with the number of open issues and PRs.

No answer is an answer? I also want to ask, if this project is maintained as there still seems to be problems with SPDX 2.2 while the Java Project is already working on 2.3.
I tried to use the parser on an SPDX that validates in the online validator, but throws errors when trying to read with the python library which does not get my hopes up that this is used very often.

@jblu42 I've been actively working with @kestewart to recruit more maintainer bandwidth for this project.  Let me know if you are interested in helping out in this effort.  I have found some usage of the libraries through different forks but the merges back are stalled.  I maintain the Java libraries and I'm not much of a Python person, otherwise I would help more myself.

@goneall Thanks for the quick answer! I think this is at least a positive sign that there is still work done here. I probably can contribute with a few patches, but for active work I am currently lacking the time. I am looking into the problem why my online validated SPDX is not reading into the python lib, but with the stale merges it would be great to know if somebody already fixed that problem, but will keep working on this.

@jblu42 @juspence this project needs help for its maintainance. This can come in the form of time or money :)
@juspence I am not sure that using Go is an alternative for a Python library. If anything creating a Python binding to a Go native could work but would not be a straight forward solution IMHO.

@jblu42 Understand the lack of time - but any contribution is appreciated.  If you find stale merges that you think will fix this, pls. review and add a comment to the PR.  I can merge in the PR as long as someone with more Python experience that I reviews the changes.

@jblu42 To answer your initial question, I'm still coming up to speed on maintenance, and am doing what I can.  I hope to have things under control over the next few months.

I think it is universally agreed that this project was lacking maintainer bandwidth for a while. We got some more bandwidth now and are working on improving things, but there is still quite a bit of backlog to clear up before we can make more radical changes. Help in the form of issues, PRs or reviews is always welcome!
I hope this answers the question, I'll close the issue for now. Hopefully, significant improvements will be visible soon.

@nicoweidner Thanks to you and the current contributors, this project is making a lot of progress again. Can you consider regular releases, this helps e.g. retrieving working copies from pypi.org with bugs fixed. Last release on pypi is from 2019.

The rough plan is to fix and merge all the outstanding PRs and potentially fix some issues that are considered very important, then create a new release. After that, we want to address some bigger changes to the data model before creating a new release with many breaking changes.


Pagination limit

Is it possible to set a limit to the size of the limit?

Hi @jcuenod
I am using the default offset limit pagination from strawberry-graphql-django and just wrapping it's result. As far as I know this feature is not supported.
You could make a tiny field extension to check the limit provided and throw an exception or even modify it. Take a look at the documentation on field extensions. It should be easy enough to implement.

Thanks, I'll look into that option!

Fyi, this was successful. Thanks!

Thanks for letting me know.


core themes should use fixed tab names

I'm not sure if the command names in tab approach is viable, unless we want to allow for very wide tabs.

we only fixed this partially. we missed one default value for the tabNames policy.


 But I've used quiet an old version so I did an upgrade, as so much was added / changed. Most of my servers are still running with Debian Jessie (8.x, soon to be upgraded).
It seems I can't connect with the current defaults - getting following message
SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher

when commenting tls-cipher in the server- and client config, it does work, but of course this is not what I intend to do.
But when adding tls-version-min on the server config, it seems to work flawless again
tls-version-min 1.2

Could we add these options for the server config ? Shall I create a pull request with that addition ?
As this is also recommended in the hardening manual, I think this would be reasonable.
Regards
Peter

Hi @peterbeck, thanks for this issue. Can you provide a PR for this?

Hi @bastelfreak, of course, will do tomorrow. What do you think, defaults to an empty string / unset, so that existing deployments aren't impaired ?

I've made a pull request - hope I've done it the right way ;-)


Fix anchor scrolling that hides behind top nav bar

Currently, when you use an anchor link, such as from the TOC box, or returning from a footnote, the actual anchor gets pushed behind the breadcrumbs/top-bar.
This change fixes that using some jquery and the code from https://stackoverflow.com/a/13067009/28106.
This could technically be fixed with pure CSS (https://stackoverflow.com/a/13184714/28106), but it would require adding a class to every tag that used anchors.

Another thanks for this one :)


Unable to download

Hey there,
On the Usage section of your README.md file it says:
Install the library with Composer.

However your package enrich-data/enrich-api-php (as named on your composer.json file) is not included as part of Packagist, meaning that composer won't be able to look for it and download a copy, because Packagist is the official repository for composer.
Can you please consider to submit the Git URL and set-up the repository to get the latest updates when a a new release is tagged?
Thanks,

Hi! Thank you, the package is now good to go with Packagist: https://packagist.org/packages/enrich-data/enrich-api-php


Can't connect db to new YOURLs installation

I'm running the latest version of YOURLs. I moved it from one server to another. Reimported the database after installing the software and non of the old URLs show up. How do I make the program see the database correctly?
Thanks in advance.

Missing a lot of information, please don't clear out the issue template when creating a new issue.
Check and recheck your database config in config.php file.

I'll add to @LeoColomb's answer: YOURLS doesn't know or care if the DB is new or not. If your install cannot see the DB, it's most either a DB config problem, or an import problem with your old data (not imported correctly, or not imported in the right place, ...). Use a tool like phpMyAdmin or something similar to see what's in your DB.


TuneIn not working with Version 1.1

When asking for Alexa to play radio one I get this error:
Recording... Recording Finished. Sending Speech Request... Processing Request Response... JSON String Returned: {"messageBody": {"directives": [{"namespace": "AudioPlayer", "name": "clearQueue", "payload": {"clearBehavior": "CLEAR_ENQUEUED"}}, {"namespace": "AudioPlayer", "name": "stop", "payload": {}}, {"namespace": "SpeechSynthesizer", "name": "speak", "payload": {"contentIdentifier": "amzn1.as-ct.v1.Domain:Application:Music#ACRI#DeviceTTSRendererV4_8fa4e90a-cd60-4b25-b00a-f3a8bfd916de", "audioContent": "cid:DeviceTTSRendererV4_8fa4e90a-cd60-4b25-b00a-f3a8bfd916de_2140820245"}}, {"namespace": "AudioPlayer", "name": "play", "payload": {"playBehavior": "REPLACE_PREVIOUS", "audioItem": {"streams": [{"progressReport": {"progressReportDelayInMilliseconds": 0, "progressReportIntervalInMilliseconds": 900000}, "streamUrl": "http://opml.radiotime.com/Tune.ashx?id=s267343&formats=aac,mp3&partnerId=!EALLOjB&serial=AHNQXQPR7RGLLSIBBLJMBRKN2U5A&latlon=47.631863,-122.34427", "offsetInMilliseconds": 0, "expiryTime": "2016-05-01T14:41:32+0000", "streamId": "amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#2fb7c217-0c59-43fc-91bf-0d6db1ac0b05:1", "progressReportRequired": true}], "audioItemId": "amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#2fb7c217-0c59-43fc-91bf-0d6db1ac0b05:1"}, "navigationToken": "amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#2fb7c217-0c59-43fc-91bf-0d6db1ac0b05:1"}}]}, "messageHeader": {}} Play_Audio Request for: /AlexaPi/tmpcontent/DeviceTTSRendererV4_8fa4e90a-cd60-4b25-b00a-f3a8bfd916de_2140820245.mp3 Player State: State.Opening Player State: State.Playing Player State: State.Ended Ready to Record. Play_Audio Request for: None Exception in thread Thread-9: Traceback (most recent call last):   File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner     self.run()   File "/usr/lib/python2.7/threading.py", line 763, in run     self.__target(*self.__args, **self.__kwargs)   File "main.py", line 270, in play_audio     m = i.media_new(file)   File "/AlexaPi/vlc.py", line 1607, in media_new     if ':' in mrl and mrl.index(':') > 1: TypeError: argument of type 'NoneType' is not iterable
When asking for Alexa to tell me the news I get this error:
Ready to Record. Recording... Recording Finished. Sending Speech Request... Processing Request Response... JSON String Returned: {"messageBody": {"directives": [{"namespace": "SpeechSynthesizer", "name": "speak", "payload": {"contentIdentifier": "amzn1.as-ct.v1.Domain:Application:DailyBriefing:TTS#ACRI#DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:Say:DAILYBRIEFING:DailyBriefingIntroduction", "audioContent": "cid:DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:Say:DAILYBRIEFING:DailyBriefingIntroduction_1519392521"}}, {"namespace": "AudioPlayer", "name": "play", "payload": {"playBehavior": "REPLACE_PREVIOUS", "audioItem": {"streams": [{"progressReport": {"progressReportDelayInMilliseconds": 0, "progressReportIntervalInMilliseconds": 0}, "streamUrl": "cid:DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:ChannelIntroduction:0", "offsetInMilliseconds": 0, "expiryTime": null, "streamId": "amzn1.as-ct.v1.Domain:Application:DailyBriefing:TTS#ACRI#ssml#ACRI#DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:ChannelIntroduction:0", "progressReportRequired": false}, {"progressReport": {"progressReportDelayInMilliseconds": 0, "progressReportIntervalInMilliseconds": 0}, "streamUrl": "http://opml.radiotime.com/Tune.ashx?id=t37047160&sid=p212&formats=aac,mp3&partnerId=!EALLOjB&serial=AHNQXQPR7RGLLSIBBLJMBRKN2U5A", "offsetInMilliseconds": 0, "expiryTime": "1970-01-01T00:01:00+0000", "streamId": "amzn1.as-ct.v1.Domain:Application:DailyBriefing:TTS#ACRI#url#ACRI#DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:ChannelItem:0:0", "progressReportRequired": false}], "audioItemId": "amzn1.as-ct.v1.Domain:Application:DailyBriefing:TTS#ACRI#url#ACRI#DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:ChannelItem:0:0"}, "navigationToken": "amzn1.as-ct.v1.Domain:Application:DailyBriefing:TTS#ACRI#url#ACRI#DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:ChannelItem:0:0"}}]}, "messageHeader": {}} Play_Audio Request for: /AlexaPi/tmpcontent/DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:Say:DAILYBRIEFING:DailyBriefingIntroduction_1519392521.mp3 Player State: State.Opening unable to connect to localhost:3389 Error: protocol security negotiation or connection failure [732b3970] rdp demux error: can't connect to rdp server [02016fc0] core input error: open of /AlexaPi/tmpcontent/DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:Say:DAILYBRIEFING:DailyBriefingIntroduction_1519392521.mp3' failed
[02016fc0] core input error: Your input can't be opened
[02016fc0] core input error: VLC is unable to open the MRL '/AlexaPi/tmpcontent/DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:Say:DAILYBRIEFING:DailyBriefingIntroduction_1519392521.mp3'. Check the log for details.
Player State: State.Error
Play_Audio Request for: /AlexaPi/tmpcontent/DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:ChannelIntroduction:0.mp3
Ready to Record.
Player State: State.Opening
unable to connect to localhost:3389
Error: protocol security negotiation or connection failure
[7126cc30] rdp demux error: can't connect to rdp server
[70adc450] core input error: open of `/AlexaPi/tmpcontent/DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:ChannelIntroduction:0.mp3' failed
[70adc450] core input error: Your input can't be opened
[70adc450] core input error: VLC is unable to open the MRL '/AlexaPi/tmpcontent/DailyBriefingPrompt.57af664b-4dbe-4da5-a9d5-f6874dee07b8:ChannelIntroduction:0.mp3'. Check the log for details.
Player State: State.Error
Play_Audio Request for:
Player State: State.Opening
libdvdnav: Using dvdnav version 5.0.1
libdvdread: Encrypted DVD support unavailable.

**  No css library available. See             **
**  /usr/share/doc/libdvdread4/README.css     **
**  for more information.                     **

libdvdread: Couldn't find device name.
libdvdread:DVDOpenFilePath:findDVDFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdread:DVDOpenFilePath:findDVDFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
libdvdnav: vm: failed to read VIDEO_TS.IFO
[70a4dcc8] core demux error: option sub-original-fps does not exist
[75e23b30] core input error: no suitable demux module for file/subtitle:///AlexaPi//requirements.txt' Player State: State.Playing Player State: State.Ended

For some reason your setup is trying to read from a DVD (or DVDROM player) ... VIDEO_TS.IFO is a DVD specific file ... information file ... it's the first thing that is read by a DVD player (like a table of contents) ... have you got a DVD disc in the DVDROM device on your PC? ... is VLC picking up the last format that was played in the player? ... also your MP3's maybe associated with VLC in Windows itself hence why it's trying to play 'something' ... in this case a DVD? ...

Windows? Wait what? AlexaPi is for a RaspberryPi, i has nothing to do with windows and a raspberry pi doesn't have a DVD player unless you buy an external usb one for it. My best guess to why it mentions IFO's is they are something to do with the media streams from TuneIn.

DOH! ... of course you're right ... what was I thinking? ... edited it, as in scrapped that comment ... I'm too Windows orientated ... I forget sometimes ... ;) ...

@Hoki-gcav Does AlexaPi play any responses eg 'what time is it' ?
Looking at the output of the first error that should be playing back a locally cached file,

Yes, that works fine.

It does not play anything except for the dialogue message that comes before starting the radio or news broadcast. e.g. Radio One on tuneIn. then silence

Have you tried changing which news sources in the Alexa app first.  I can't get some tune in stations but I can get others of Alexa reading.

I can't use the Alexa app for IOS in the UK yet, but I know that it works. Its a playback error of the content not a lack of content. (I think)

check to see if your audio is switching from the default mode to a
"indeterminate" state.  I have the problem when I ask for news.  I get the
"intro", then nothing and when I look at the audio output source (speaker
icon, upper right corner) it is set to neither HDMI or Analogue.  Once I
set it and readjust the volume things work for a bit...then go back to the
crazy state.
On Sun, May 1, 2016 at 2:26 PM, Hoki-gcav<EMAIL_ADDRESS>wrote:

I can't use the Alexa app for IOS in the UK yet, but I know that it works.
Its a playback error of the content not a lack of content. (I think)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/sammachin/AlexaPi/issues/68#issuecomment-216069801

@gregwa1953 interesting, sounds like VLC doesn't like the auto audio output, if you run raspi-config you can lock it to the 3.5mm jack.

@sammachin I already did lock it to 3.5 jack because i have a kiosk mode webpage also running on the pi with HDMI so I had to set it to force.

oops pressed wrong button.. why is that button so close to the comment button.

@SAM,
It is already locked.  I think it's an issue with Pulse Audio trying to
over ride the Alsa system when things go to silence for more than a second
or so.  Just a thought right now...will be doing more investigating.
On Mon, May 2, 2016 at 2:48 AM, Hoki-gcav<EMAIL_ADDRESS>wrote:

oops pressed wrong button.. why is that button so close to the comment
button.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/sammachin/AlexaPi/issues/68#issuecomment-216150372

Closing this issue because no further investigation is required for this issue and further developments on the bug can continue in Issue #71. :))

Just for the record @Hoki-gcav I'm having the exact same issue  - just here in the States