Action string literals break in TypeScript 2.1+ due to type widening (includes fix)

Starting with breaking changes in TypeScript 2.1+, string literal types are always widened to strings unless assigned to immutable const variables or readonly properties. This means things like switch (action.type) statements leveraging discriminated unions stop working with the current example-app patterns.
In a comment in TypeScript issue 2214, I posted this link to a TypeScript 2.1 playground that shows how to update the example app for 2.1+.
Here's the full playground code, for reference:
const actionTypeCache: { [type: string]: boolean } = {};

function ensureSingletonType<T extends string>(actionType: T): T {
    if (actionTypeCache[<string>actionType]) {
        throw new Error(`Action type "${actionType}" is not unique"`);
    }
    actionTypeCache[<string>actionType] = true;
    return actionType;
}

/** placeholders */
interface Action { type: string; payload?: any; }
interface Book { id: string; }
interface State { }
function reduceSearch(state: State, id: string): State { return state; }
function reduceLoad(state: State, book: Book): State { return state; }

/******************** BEGIN BROKEN ********************/

// In TS 2.1+ these properties are only strings instead of literals,
// even though `ensureSingletonType` returns them as literals.
const ActionTypesBROKEN = {
    SEARCH: ensureSingletonType('[Book] Search'),
    LOAD: ensureSingletonType('[Book] Load')
};

class SearchActionBROKEN implements Action {
    // In TS 2.1+ this is only a string instead of a string literal
    type = ActionTypesBROKEN.SEARCH;
    constructor(public payload: string) { }
}

class LoadActionBROKEN implements Action {
    // In TS 2.1+ this is only a string instead of a string literal
    type = ActionTypesBROKEN.LOAD;
    constructor(public payload: Book) { }
}

type ActionsBROKEN = SearchActionBROKEN | LoadActionBROKEN;

function reducerBROKEN(state = {}, action: ActionsBROKEN): State {
    switch (action.type) {
        case ActionTypesBROKEN.SEARCH: {
            const id = action.payload; // still string | Book
            return reduceSearch(state, id); // type narrowing is BROKEN!
        }
        case ActionTypesBROKEN.LOAD: {
            const book = action.payload; // still string | Book
            return reduceLoad(state, book); // type narrowing is BROKEN!
        }
        default:
            return state;
    }
}

/******************** END BROKEN ********************/

/******************** BEGIN WORKS ********************/

// In TS 2.1+ const variables and readonly properties are
// required to preserve literals. Unfortunately, we can't
// declare anonymous objects with readonly properties, so
// we use a class here with static readonly properties to
// to capture the actions as string literals in one place.
class ActionTypesWORKS {
    static readonly SEARCH = ensureSingletonType('[Book] Search');
    static readonly LOAD = ensureSingletonType('[Book] Load');
};

class SearchActionWORKS implements Action {
    // TS 2.1+ requires readonly to preserve literals
    readonly type = ActionTypesWORKS.SEARCH;
    constructor(public payload: string) { }
}

class LoadActionWORKS implements Action {
    // TS 2.1+ requires readonly to preserve literals
    readonly type = ActionTypesWORKS.LOAD;
    constructor(public payload: Book) { }
}

type ActionsWORKS = SearchActionWORKS | LoadActionWORKS;

function reducerWORKS(state = {}, action: ActionsWORKS): State {
    switch (action.type) {
        case ActionTypesWORKS.SEARCH: {
            const id = action.payload; // string
            return reduceSearch(state, id); // type narrowing WORKS!
        }
        case ActionTypesWORKS.LOAD: {
            const book = action.payload; // Book
            return reduceLoad(state, book); // type narrowing WORKS!
        }
        default:
            return state;
    }
}

/******************** END WORKS ********************/

Great work @rob3c!  I've found that in 2.1.5 at least, you don't need to turn ActionTypesWORKS into a class, provided the .type property of the action is readonly.  I'm not sure if this is a bug in TypeScript though, as you could conceivably change the value inside the const.

No, it's not showing as string literal in 2.1.5 (at least according to my VSCode intellisense).  But if you discriminate based on it in the switch statement, it narrows the type accordingly.

It seems this problem has gone away in typescript 2.1.6

This will be addressed once Angular version 4 is released. See https://github.com/ngrx/example-app/pull/88#issuecomment-272623083


api-router demo running problem - "No route for HTTP request."

When I was trying to evaluate api-router demo by running: composer create-project ublaboo/api-router-project I wasn't able to successfuly get response through LoginController (note: I cahnged method to GET so the data will be seen in browser), I got {"status":"error","code":404,"message":"No route for HTTP request."} every time...

Hi. Thanks. @paveljanda Could you take a look please?

@maxty45 Could you please create a sandbox-like repository with this malfunctioning route and send me here a link to the repo? I will take a look at it. Thanks a lot.

I am trying to run the example but still getting No route for HTTP request.
Here is my sandbox:
api-router.zip
Annotation definition for routing and documentation doesnt work (in my app and in this example)...
Thank you. I am really frustrated with this... I dont know why it doesnt work

Here is the link for repository: https://github.com/BigOHenry/sandbox

ping @paveljanda

So, did anybody actually tried this "starter" api-router project after moving it to Contribute? I wanted to test it, sadly, not only it installs few years old version of Ublaboo/api-router instead of actual Contribute/api-router, also, it just doen´t work. All u get is No route for HTTP request. With no docu, no idea where to look, it´s kind of a problem. What about putting here at least fully working, updated demo of this: https://ublaboo.org/client-api/ ? So one can get at least basic idea how to use the extention the right way?

It actually worked but there were some changes in nette router. I will put it on my to-do list.

For example, I´m kind of lost why docu on Contribute showing usage of nette presenters while this starter project has controllers that are not extending nette/presenter. It would be great for the documentation and the starter project to be consistent, showing the best practise. Now, there are 2 different aproaches with no description why and one can only think if it actually doesn´t matter, or one is old approach, other one is new approach, no-one from author can be sure and it´s confusing. It´s very common problem with contribute documentations and demos/playgrounds/starters :-( I´ve managed to to get some end-point working after requiring Contribute-version of extension into latest basic nette/project with Presenters, did not managed to get it working with Controllers like in this starter.

Yeah, after trying to get oriented in all the inconsistencies between docs, examples, package versions and other conflicts, I'm just giving up and writing it myself with just Nette and Guzzle... I mean why does every package has its own documentation giving different, sometimes contradicting setup instructions, when you have to install all the other packages anyways to get it to work.


CI - rename nix_installer_and_cache to cache_nix in rust workflow

We recently renamed composite action that caches our Nix dependencies in this pull request https://github.com/build-trust/ockam/pull/6532, we should also rename the rust workflow that uses the old action which is in the directory .github/actions/nix_installer_and_cache to use the new action in directory ./.github/actions/cache_nix, example of one of the old action usage is https://github.com/build-trust/ockam/blob/e6fc609e327aa9d17dee1296e115a6119c2902a8/.github/workflows/rust.yml#L69

We love helping new contributors! ❤
If you have questions or need help as you explore, please join us on Discord. If you're looking for other issues to contribute to, please checkout our good first issues.

@metaclips I would like to work on this.

Hello @Lumexralph there are two issues assigned to you https://github.com/build-trust/ockam/issues/6551 and https://github.com/build-trust/ockam/issues/6538 can we close those two before assigning any other issue to you?

That's fine, they all look similar, that was why I wanted them assigned to me.

All yours @ironspec07


Update CI

I missed a @v3 last commit

Codecov Report
Base: 84.28% // Head: 84.05% // Decreases project coverage by -0.23% :warning:

Coverage data is based on head (d1c2eee) compared to base (047b3be).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##             main       #6      +/-   ##
==========================================
- Coverage   84.28%   84.05%   -0.23%
==========================================
  Files           9        8       -1
  Lines          70       69       -1
==========================================
- Hits           59       58       -1
  Misses         11       11

Impacted Files
Coverage Δ

src/ConstraintCommons.jl

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Criação da unidade de testes para Usuário método listar()

Mandei
2017-08-17 18:29 GMT-03:00 Ronneesley Moura Teles<EMAIL_ADDRESS>:

Assigned #186 https://github.com/Ronneesley/redesocial/issues/186 to
@IgorJustinoRodrigues https://github.com/igorjustinorodrigues.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Ronneesley/redesocial/issues/186#event-1210937830,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AZOMivEDM-CMRnLzmbT2aUv_wvItyqcvks5sZLCjgaJpZM4O61e5
.

Ok


Lightly upgrade migration guide for 0.23

This updates the migration guide to reflect the state of Astro in both v0.21 and v0.23.

Adds a section lightly documenting the building of non-HTML files.
Adds a section lightly documenting the deprecation of HTML in expressions and the use of set:html and set:text.

Hey @tony-sull, the sidebar label is updated in https://github.com/withastro/docs/pull/140/commits/50b32857ab95465f5813dee85b5c3621864989a9. Would you give this a second look?


Fixed Enum Unique ID

Add  counter at the end of Enum Unique ID .

Had generated a json file and uploaded to API review Tool:
https://apiview.azurewebsites.net/Assemblies/Review/f410d4852d604fd7a7a6b2507683bbab

There doesn't appear to be any code change other than whitespace changes. Did you submit the entirety of the fix (and also, try not to submit needless whitespace changes).

My bad. The change is missing after resolved conflict
PR is updated now. And the new link for verifying the changes https://apiview.azurewebsites.net/Assemblies/Review/04146590f52b444a837b05076cbe126b


Allow INT signals bypass via ssh

Resolves #447
additionally this fix allows to run bosh instance/0 htop. Maybe it makes sense to obsolete non-interactive part of the ssh subclient, or rewrite ssh part using go functions in order to allow Windows users use bosh cli.

Any news on this PR?

Hi @kayrus,
Just to clarify, are you only seeing this on Windows? We've been having a little trouble reproducing the initial issue (#447) on our end.
Thanks,
@belinda-liu && @mikexuu, CF BOSH Team

Hi @kayrus,
We tried building a CLI with your fix and were unable to see it fix the issue referenced #447. Specifically, after running bosh logs -f, we still see tail -f processes remain on the server.
Could you please clarify the steps you took to confirm how the issue was fixed? Also, what version of Bosh CLI are you using?
Thanks,
@belinda-liu && @mikexuu, CF BOSH Team

Hi @belinda-liu,
The issue occurs only when you run bosh logs -f.
Regarding the output, I'm not quite sure whether I understand you. How exactly did you test the fix? The tail: cannot open ‘/var/vcap/sys/log/**/*.log’ for reading: No such file or directory message was fixed in my previous PR: #446. Did you rebase/merge this PR in order to test the output?
I just rebased this PR on master and tested the fix. It works fine, there are no stale tail -F processes left when I press Ctrl+C. However when I use bosh cli without the fix, tail -F processes remain on the server when I press Ctrl+C.

Hi @kayrus,
Sorry for the confusion! We tested it the same way you described, and we can see that the fix indeed cleans up the stale  tail -F processes. We did also test this after we merged in your other PR, which I realize was unclear because we had copied over output from before we merged.
What we meant by changing the output format was that after applying your fix, we still expect each line to be prefixed by the VM name and either stderr  | or stdout  |. In the example above, this is zookeeper/31cc1bd1-6b10-4170-9914-0b4b33ce5c52: stderr | . However, your changes seem to strip this off of the output. Does that help?

@belinda-liu, thanks for the clarification. I'll take a look into this issue.

@belinda-liu, I've updated the PR. Now it should work fine, please test.

Hi @kayrus, we've verified that the fix work and will also close #447. Thanks!


Use authorisation library with more logging

What
See title
How to review
Check bringing in a non standard version of dp-authorisation library that contains plenty of logs
Who can review
Anyone

Closing, was used to debug identity API in environments - not needed


replaced twitter text with twitter icon

I've changed the twitter text link in footer with twitter icon available in img/logos/social/

thanks for the contribution. closing per https://github.com/mozilla/moz-games/issues/16#issuecomment-142120629


Add sleef 3.3.1

I've followed this guide
step by step carefully. [Yes]

I've tested this package remotely and have excluded all broken builds.
Here is the links to the Travis/AppVeyor with status "All passed":

https://ci.appveyor.com/project/xsacha/hunter-h4uji
https://travis-ci.org/xsacha/hunter/builds/505007668

I have submitted CI configs to https://github.com/ingenue/hunter targeting pkg.template branch,
see this merged pull request https://github.com/ingenue/hunter/pull/

My change will resolve this "New package" request: https://github.com/ruslo/hunter/issues/1763

I have submitted CI configs to https://github.com/ingenue/hunter targeting pkg.template branch,
see this merged pull request https://github.com/ingenue/hunter/pull/

Link is broken, please prepare pkg.sleef first.

Link is broken, please prepare pkg.sleef first.

It was prepared, is prepared, passed tests.
Do I just reopen this pull request again with the same information because nothing has changed.


github.copilot-chat/1/gpt-3.5-turbo' errored, check cause for more details Unknown Error: Sorry, this message is too long. Please try a shorter question.

Extension sample
chat-sample
VS Code version
1.91.0-insider
What went wrong?
even the message is just "hi", it still throws the following error:
Language model 'github.copilot-chat/1/gpt-3.5-turbo' errored, check cause for more details Unknown Error: Sorry, this message is too long. Please try a shorter question.
at Je.render (c:\Users\.vscode-insiders\extensions\github.copilot-chat-0.16.2024060502\dist\extension.js:766:3606)
at processTicksAndRejections (C:\Hack\vscode-extension-samples\chat-sample\lib\internal\process\task_queues.js:95:5)

I also have this issue - any hints?

Hello i had the same issue, i switched to Github copilot pre-release version and than it worked.

Sorry about the slow response.
This should be fixed in latest, please let me know if you still see issues with this and we can reopen. Thanks


Host 'Storage Remaining' Calculations

Upon load, the host just loads whatever the prior 'storage remaining' value was. This is bad practice, as demonstrated by my computer. An eariler bug caused this number to get out-of-sync with the real value, and now it is permanently incorrect.
Instead, 'storage remaining' should be recalculated as you load all of your obligations. In general, values should be calculated instead of stored, except where continuous recalculation puts too much load on the computer. In that event, there should be sanity checks occasionally to make sure everything is still lined up correctly.

fixed in #549


Error when compile it

Hi,
I'm trying to compile the server go. But i have problem. I make it and when run the "go build" show:
root@a235c66bb404:~/docker_auth/auth_server# go build
main.go:29:2: cannot find package "github.com/cesanta/docker_auth/auth_server/se
rver" in any of:
/usr/local/go/src/github.com/cesanta/docker_auth/auth_server/server (fro
m $GOROOT)
/go/src/github.com/cesanta/docker_auth/auth_server/server (from $GOPATH)
main.go:30:2: cannot find package "github.com/facebookgo/httpdown" in any of:
/usr/local/go/src/github.com/facebookgo/httpdown (from $GOROOT)
/go/src/github.com/facebookgo/httpdown (from $GOPATH)
main.go:31:2: cannot find package "github.com/golang/glog" in any of:
/usr/local/go/src/github.com/golang/glog (from $GOROOT)
/go/src/github.com/golang/glog (from $GOPATH)
main.go:32:2: cannot find package "gopkg.in/fsnotify.v1" in any of:
/usr/local/go/src/gopkg.in/fsnotify.v1 (from $GOROOT)
/go/src/gopkg.in/fsnotify.v1 (from $GOPATH)
Any idea to resolve it?

sorry, no. must be something about your go environment.

run go get ./... in your src


Update request: flutter 3.22.2 → 3.24.1

Package name: flutter
Latest released version: 3.24.1

Current version on the unstable channel: 3.22.2
Current version on the stable/release channel: 3.22.2

[ X ] Checked the nixpkgs pull requests

Notify maintainers

Note for maintainers: Please tag this issue in your PR.

Add a :+1: reaction to issues you find important.

CC @RossComputerGuy

Already being done #336650


when useNativeHlsOnSafari is false - DRM protected content playback is... impossible

Have you read the FAQ and checked for duplicate open issues?
Yes
If the problem is related to FairPlay, have you read the tutorial?
Yes
What version of Shaka Player are you using?
Latest - Master
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from main?
Yes
Are you using the demo app or your own custom app?
Custom app, as it has fairplay
If custom app, can you reproduce the issue using our demo app?
It needs fairplay.
What browser and OS are you using?
Apple Sonoma 14.0
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
Does not apply
What are the manifest and license server URIs?
Custom, it is a working Fairplay server
What configuration are you using? What is the output of player.getConfiguration()?
Default values, with apple fairplay and useNativeHlsOnSafari in false
What did you do?
Turn to false useNativeHlsOnSafari
What did you expect to happen?
Video to play normally
What actually happened?
Video plays shortly when it starts, than completely stuck, not even seeking.

What are the manifest and license server URIs?
Custom, it is a working Fairplay server

Quoting the issue template:
**What are the manifest and license server URIs?**
<!-- NOTE:
  You can send the URIs to<EMAIL_ADDRESS>instead,
  but please use GitHub and the template for the rest.
  A copy of the manifest text or an attached manifest will **not** be
  enough to reproduce your issue, and we **will** ask you to send a
  URI instead.

Hi Avelad, unfortunately, I cannot provide a URL because it is locally running!
And it is not related to the issue, everything works perfectly until we turn on useNativeHlsOnSafari

Hi Avelad!
I can do a tunnel to the local DRM service if that helps.
Also, I think this demo is not using useNativeHlsOnSafari as the X-Playback-Session-Id is being added. Maybe I am missing something in the configuration itself to force it not to use native Hls?
X-Playback-Session-Id: 27EFA8FB-62CB-4F6B-9C02-221264F4C2DC

Since you cannot provide a test stream, we cannot help you further. If you want to debug the issue yourself and create a PR, we will be happy to review it.

I can upload a test myself without any issues! Do you want a demo player using a demo stream with that feature turned on?

For me is working with: https://nightly-dot-shaka-player-demo.appspot.com/demo/#audiolang=es-ES;textlang=es-ES;uilang=es-ES;asset=https://na-fps.ezdrm.com/demo/ezdrm/master.m3u8;panel=ALL_CONTENT;panelData=drm:FAIRPLAY;build=uncompiled
I'm using Safari 13.1 with macOS 14.3

Yes, bu tit is not with useNativeHlsOnSafari to false.
The problem is when useNativeHlsOnSafari is false

With the release done yesterday and changing useNativeHlsOnSafari to use
    useNativeHlsForFairPlay: false,
    preferNativeHls: false,

Apparently works with no problem. My doubt here is why the quality selector is not being shown, if this is no longer native hls?


Add tests for phpmd.run

ref: #2
This command was failed.
bundle exec rspec

So I removed default spec and added specs for phpmd.run.

thank you.


⚠ Bofrost.fr has degraded performance

In 23be552, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 816 ms

Resolved: Bofrost.fr performance has improved in 2afecfa after 8 minutes.


Refresh package-lock.json

Looks like npm install wasn't run for some time here, and it got a bit out of sync. This is blocking me from fixing the flatpak package that currently has launcher (not chobby, chobby is up to date) version from January.

Thank you!


HAcktoberfest-updatd docker inst. instr.

added docker installation instruction link https://docs.docker.com/docker-for-windows/install/
Description

I'm going to go ahead and close this, the existing link works fine. Thanks!


How to combine these models with gst-tacotron,

Hello, @rafaelvalle  Really nice work.
I would like to combine this work with global style tokens.. please let me know

That's is a great idea, @shwetagargade216.
Please let us know and add a pull request if you decide to implement the global style tokens!

I'm done to implement prosody modeling in https://arxiv.org/abs/1803.09047.
https://github.com/Yeongtae/tacotron2/tree/prosody_speaker_embedding_test
This branch can modeling f(ref audio, speaker index, text) = target audio
GTS will be added soon.

@Yeongtae what do you mean by GST? The term is not explicitly on the paper.
Can you submit a PR with audio samples?

@Yeongtae what do you mean by GST? The term is not explicitly on the paper.
Can you submit a PR with audio samples?

@rafaelvalle The paper of global style token is the extension of https://arxiv.org/abs/1803.09047.
If someone implements attention between randomly initialized embeddings and reference encoder in my branch, it makes work easily.

GST works here:
https://google.github.io/tacotron/publications/global_style_tokens/
https://arxiv.org/abs/1803.09017
https://arxiv.org/abs/1803.09047
We need to implement various kinds of style encoders (@yongtae which repo
is this?)
See also the new work which is an GAN improvement on style tokens:
https://openreview.net/forum?id=ByzcS3AcYX
pravn.wordpress.com
On Wed, Feb 13, 2019 at 5:46 PM Yeongtae<EMAIL_ADDRESS>wrote:

@Yeongtae https://github.com/Yeongtae what do you mean by GST? The term
is not explicitly on the paper.
Can you submit a PR with audio samples?
@rafaelvalle https://github.com/rafaelvalle The paper of global style
token is the extension of https://arxiv.org/abs/1803.09047.
If someone implements attention between randomly initialized embeddings
and reference encoder in my branch, it makes work easily.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/NVIDIA/tacotron2/issues/134#issuecomment-463451484,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAhnVfagGbmOUBQzFfkV9c-RxE5rc3WTks5vNL_ZgaJpZM4abvBC
.

https://github.com/Yeongtae/tacotron2/tree/prosody_encoder_test
It works only one speaker.
https://github.com/Yeongtae/tacotron2/tree/prosody_speaker_embedding_test
It works multiple speakers.

@Yeongtae Could you please share the samples of gst .

And also @Yeongtae  have you did multi - speaker gst ?
Means Is it possible to combine

@rafaelvalle (tacotron2 + waveglow model) which is in pytorch with the
gst (syang1919) but mainly this work is in tensorflow
also multi-speaker ( for voice cloning) just like biadu voice cloning with few sample

I trying to combine all the above 3 work together.
please give me any comments on this or guidance?
Thanks in advance

I can't share samples because of private issue in my Korean data.
In addition, I'm fail to converge English model. There is a difference which uses phone embedding or char embedding between Korean and English. char embedding makes it hard to converge.

There is need to few modification for combining waveglow, such as inference function waveglow(f(ref audio,speaker id, text) = target audio.
As mentioned earlier, you can implement attention between randomly initialized embeddings and reference encoder in my branch.
In my opinion, There is no to much implementation for speaker adaptation such as https://google.github.io/tacotron/publications/speaker_adaptation/. The main problem is computation.
Since the dataset volumes in speaker adaptation papers are huge, you must have distributed learning system. You need n v100 GPUs to learn model. In my case, I'm using 8 v100 GPUs in GCP VM. It is so so so~~~ expensive.

Thanks for the quick reply. Your comments are really appreciated.
For now will just combine @rafaelvalle  work  with your multi-head attention for reference audio just like gst.
One more question currently I'm also working on M-ALIBA data, but I gone through other issues, which has mentioned that, corresponding data set has some issues, even though after cleaning results are not good like ljspeech.
Should I try Ljspeech data or M-ALIAB. Ow I need to some extra pre-processing and need to clear it before the training.

Phone embedding and melspectrogram normalization mainly help model to converge.
If I take some progress, I will report it.

@Yeongtae you can use ARPAbet for english if you think a phone-like embedding will be easier than char embedding.

@Yeongtae , nice work.
1 - Is your "https://github.com/Yeongtae/tacotron2/tree/prosody_speaker_embedding_test" is complete or still in progress?
2 - Which dataset you have successfully used to train your implementation?

@Yeongtae you can use ARPAbet for english if you think a phone-like embedding will be easier than char embedding.

@rafaelvalle Can you elaborate on how to use ARPAbet? I am curious how it will improve the convergence and give it a try. Thanks.

3. https://google.github.io/tacotron/publications/speaker_adaptation/

@Yeongtae Can you tell a little bit the Korean training corpus you used? Roughly how many speakers and how many hours of data in total? Thanks. In your opinion, what is the advantage of prosody speaker embedding (or speaker verification) versus GST? If we can successfully implement GST, why would we still need prosody speaker embedding model?

https://google.github.io/tacotron/publications/speaker_adaptation/

@Yeongtae Can you tell a little bit the Korean training corpus you used? Roughly how many speakers and how many hours of data in total? Thanks. In your opinion, what is the advantage of prosody speaker embedding (or speaker verification) versus GST? If we can successfully implement GST, why would we still need prosody speaker embedding model?

My private dataset consist of 5 speaker, around 50 hour, unbalanced data volumes for each.
In latest studies about style modeling, they sad 'phone embedding make training more easy'

@Yeongtae  @rafaelvalle
deepvoice3 and neural voice cloning with few samples both have implemented speaker adaption on single speaker instead of multi-speaker.
As per my TTS research Tacotron2+wavenet has interesting sound quality,
For the speaker adaption need to just fine tune pre- trained model on few samples.
any comments ?

@Yeongtae
Does this branch https://github.com/Yeongtae/tacotron2/tree/prosody_speaker_embedding_test
have attention between randomly initialized embeddings and reference encoder ?

@rafaelvalle
No.
But There is it in our private repository.

Folks, stay tuned: we have an implementation of multi-speaker global style tokens to be released.

Great! counting the minutes to test !!!
@rafaelvalle , I need some help: even with a reasonably sized dataset (about 40 hours) but home recording, I still haven't gotten good results. Some sentences have good speech, others not. I have already tested the repositories:
https://github.com/NVIDIA/tacotron2
https://github.com/NVIDIA/OpenSeq2Seq
Can you give me any tips on which variables we can change for best results?

Folks, stay tuned: we have an implementation of multi-speaker global style tokens to be released.

Cannot wait!

Will GSTs allow Speaker Adaptation in real time?

With the multi-speaker model you can still perform inference faster than real-time.
We'll possibly release the code next week.

https://github.com/NVIDIA/mellotron
Our mellotron repo uses a Multispeaker Tacotron with GST.


Update setup.py

sklearn is no longer avialable. Update the dependencies, to solve the installing error below:
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
The 'sklearn' PyPI package is deprecated, use 'scikit-learn'
rather than 'sklearn' for pip commands.
  Here is how to fix this error in the main use cases:
  - use 'pip install scikit-learn' rather than 'pip install sklearn'
  - replace 'sklearn' by 'scikit-learn' in your pip requirements files
    (requirements.txt, setup.py, setup.cfg, Pipfile, etc ...)
  - if the 'sklearn' package is used by one of your dependencies,
    it would be great if you take some time to track which package uses
    'sklearn' instead of 'scikit-learn' and report it to their issue tracker
  - as a last resort, set the environment variable
    SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True to avoid this error

  More information is available at
  https://github.com/scikit-learn/sklearn-pypi-package
  [end of output]

will this break existing import statements? sklearn is imported by a dependency called BBMix via
from sklearn.cluster import KMeans

The python package scikit-learn was always imported as sklearn, which is a bit confusing, so the dummy sklearn package was published to keep malicious actors from taking it. This package does nothing except require scikit-learn.
Fixing it here should not impact BBmix or any other package that imports from sklearn.
https://pypi.org/project/sklearn for more info.


Add Document description

I'm reviewing chrome lighthouse results, and it pointed out that we lack a document description.  Since this controls how this will be shown in search results, we should put together copy.
See also: https://developers.google.com/search/docs/advanced/appearance/good-titles-snippets

Fixed in #86


added Save() call after resetting settings

/rebase

@nickshulman Can you chime in here about whether we should Save() here or not? Brendan and I talked on Zoom and got pretty confused about why his Skyline-daily was upgrading from a previous version's settings (after doing a Tools > Options > Misc > ResetSettings) but mine wasn't. We think it might have something to do with the user.configs he has and I don't have, combined with the Settings.ReloadAndMerge() function.

It definitely seemed to me like, if we were going to add a Settings.Default.Save() that we should also update Settings.Default._originalSerializedValues to be the current values. Otherwise, Skyline keeps all its truly original values it started with and things a hodge podge of things changed based on the reset, and the thing on disk must have been created by another version, when in reality the thing on disk was created by the current instance and is completely in synch with what we have in memory.

If "_originalSerializedValues" needed to be reset, then you should do "_originalSerializedValues.Clear()". However, I don't think that could be causing the behavior that you are seeing. The values in the "_originalSerializedValues" dictionary are only used to determine whether the user has modified a particular setting. The values from that dictionary would never be written to disk.
Yes, it certainly sounds like you would need to add the "Save" call.
If you want to debug installed Skyline, I would recommend replacing the Skyline-Daily.exe in the install folder with one that you have built which has a call to "Debugger.Launch();" at the beginning of Program.Main.

Is there any reason to call Reset() and NOT reset the original values? I couldn't think of one.


[wip] Enum support in query type inference

Fixes #344
Doctrine behavior
For reference:
Selecting an enum column directly returns an enum case (an instance of the enum class).
Using an enum column in an expression returns the raw value returned by the database driver. This is consistent with other column types (e.g. using a datetime column in an expression returns a string).
phpstan-doctrine behavior
In this PR I add support for enums as described above.
Since we know all the possible values of an enum, we can refine the database column type to a union of these values.
Examples
With the following classes:
#[Entity]
class X {
    #[Column]
    public Foo $f;
}

enum Foo: string {
    case A = 'a';
    case B = 'b';
}

--  array{f: Foo}
SELECT x.f FROM X

-- array{1: 'a'|'b'|''}
SELECT COALESCE(x.f, '') FROM X

Doctrine 2.11 issues
Enum support was introduced in Doctrine 2.11, but there was issues such as https://github.com/doctrine/orm/issues/9622.
Here I add support for enums as implemented in Doctrine >= 2.12.
We have multiple options to handle Doctrine 2.11:

Do nothing: Ignore Doctrine 2.11 issues. For users with Doctrine 2.11, type inference will be lying.
Add special cases for 2.11
Conflict with 2.11

I chose the third option here. I think that option two would be acceptable as well, but this adds complexity just for a minor version. WDYT ?

About these options:
We have multiple options to handle Doctrine 2.11:

Do nothing: Ignore Doctrine 2.11 issues. For users with Doctrine 2.11, type inference will be lying.
Add special cases for 2.11
Conflict with 2.11

I think option 1) is the best. Conflict is too aggressive, if the user isn't using enums at all, the conflict wouldn't make sense for them 😊 So I think we can ignore the issue, it's not our bug to fix 😊

Thank you!


fix: write meta page to buffer, not to temporary 16 byte stack slice

#268  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @rphmeier and the rest of your teammates on  Graphite


Using features deprecated in Ruby 2.7+ (and likely breaking in Ruby 3)

When running tests for the smart answers app, which includes this gem, we see deprecation messages like:
var/lib/jenkins/bundles/ruby/2.7.0/gems/govuk_app_config-4.3.0/lib/govuk_app_config/govuk_error.rb:26: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
These are 2.7 deprecations, and will become breaking changes in Ruby 3.0, and require changing (eg)
    if exception_or_message.is_a?(String)
      Sentry.capture_message(exception_or_message, args)
    else
      Sentry.capture_exception(exception_or_message, args)
    end

..to..
    if exception_or_message.is_a?(String)
      Sentry.capture_message(exception_or_message, **args)
    else
      Sentry.capture_exception(exception_or_message, **args)
    end

(ie using a double splat to explicitly break the single argument into named arguments to the method)
There might be other examples of this calling pattern, so might need someone to build the gem against 2.7 and run through the tests with deprecation messages on.

Fixed by https://github.com/alphagov/govuk_app_config/commit/67748144cfc2108316cfa9f3725f7ad39ab10cd3


s2pexec READ(6) fails in 2.0.1 when LBA out of range

When creating a new ticket please provide information on your environment.

The Pi type:
Pi4

The Pi OS version (output of 'lsb_release -a' and 'uname -a'):

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 12 (bookworm)
Release:	12
Codename:	bookworm
$ uname -a
Linux piscsi 6.1.0-rpi7-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux

The SCSI2Pi release or git revision:
2.0.1

The computer/sampler connected to the RaSCSI/PiSCSI board:

Directly connected to a BlueSCSI v2.
Describe the issue
When using scsi2pi_2.0_rc2_37d4652_bookworm_arm64-1.deb a READ(6) with a LBA address outside of the size of the drive commands without issues. Once I upgrade to scsi2pi_2.0.1_bookworm_arm64-1.deb my commands start to fail with:
On 2.0.1:
# Request a read from way outside drive size
$ sudo /opt/scsi2pi/bin/s2pexec -i 2:0 -c 08:0F:FF:FF:00:00 -L trace
[2024-02-24 12:47:37.685] [trace] Detected 'Raspberry Pi 4 Model B Rev 1.2'
[2024-02-24 12:47:37.687] [trace] Executing command READ(6)/GET MESSAGE(10) for device 2:0
[2024-02-24 12:47:37.687] [trace] Arbitration with initiator ID 7
[2024-02-24 12:47:37.687] [trace] Selection of target 2 with initiator ID 7
[2024-02-24 12:47:37.692] [trace] Current phase is MESSAGE OUT
[2024-02-24 12:47:37.695] [trace] Current phase is COMMAND
[2024-02-24 12:47:37.711] [trace] Current phase is DATA IN
[2024-02-24 12:47:37.712] [trace] Receiving 4096 byte(s) in DATA IN phase
[2024-02-24 12:47:37.717] [trace] Current phase is DATA IN
[2024-02-24 12:47:37.717] [error] Buffer full in DATA IN phase
Error: Can't execute command $08

# Bus is now locked and no commands will run:
$ sudo /opt/scsi2pi/bin/s2pexec -i 2:1 -c 12:00:00:00:40:00 -L trace
[2024-02-24 12:48:05.583] [trace] Detected 'Raspberry Pi 4 Model B Rev 1.2'
[2024-02-24 12:48:05.584] [trace] Executing command INQUIRY for device 2:1
[2024-02-24 12:48:05.584] [trace] Arbitration with initiator ID 7
[2024-02-24 12:48:05.585] [trace] Selection of target 2 with initiator ID 7
[2024-02-24 12:48:05.590] [trace] Current phase is MESSAGE OUT
[2024-02-24 12:48:05.593] [trace] Current phase is COMMAND
Error: Can't execute command $12

I can successfully run the same commands downgrading back to rc2_37d4652 and rebooting the Pi/BlueSCSI
$ sudo /opt/scsi2pi/bin/s2pexec -i 2:0 -c 08:0F:FF:FF:00:00 -L trace
[2024-02-24 13:01:23.820] [trace] Detected 'Raspberry Pi 4 Model B Rev 1.2'
[2024-02-24 13:01:23.822] [trace] Executing command READ(6)/GET MESSAGE(10) for device 2:0
[2024-02-24 13:01:23.822] [trace] Arbitration with initiator ID 7
[2024-02-24 13:01:23.823] [trace] Selection of target 2 with initiator ID 7
[2024-02-24 13:01:23.827] [trace] Handling MESSAGE OUT phase
[2024-02-24 13:01:23.830] [trace] Handling COMMAND phase
[2024-02-24 13:01:23.861] [trace] Handling STATUS phase
[2024-02-24 13:01:23.864] [trace] Handling MESSAGE IN phase
[2024-02-24 13:01:23.864] [warning] Device reported CHECK CONDITION (status code $02)
[2024-02-24 13:01:23.864] [trace] Executing command REQUEST SENSE for device 2:0
[2024-02-24 13:01:23.864] [trace] Arbitration with initiator ID 7
[2024-02-24 13:01:23.865] [trace] Selection of target 2 with initiator ID 7
[2024-02-24 13:01:23.872] [trace] Handling MESSAGE OUT phase
[2024-02-24 13:01:23.875] [trace] Handling COMMAND phase
[2024-02-24 13:01:23.886] [trace] Handling DATA IN phase
[2024-02-24 13:01:23.886] [trace] Received 14 byte(s) in DATA IN phase, provided size was 14 bytes
[2024-02-24 13:01:23.896] [trace] Handling STATUS phase
[2024-02-24 13:01:23.899] [trace] Handling MESSAGE IN phase
Error: ILLEGAL REQUEST (Sense Key $05), LBA OUT OF RANGE (ASC $21), ASCQ $00

Which produces the expected results of LBA OUT OF RANGE

@erichelgeson Can you please check whether this issue still exists in the current SCSI2Pi RC 6? You can download the binaries on https://www.scsi2pi.net/packages/develop/.

Same issue in scsi2pi_3.0_rc6_67f83ef_bookworm_arm64-1.deb -
$ sudo /opt/scsi2pi/bin/s2pexec -i 2:0 -c 08:0F:FF:FF:00:00 -L trace
[13:16:59.905] [trace] Detected Raspberry Pi type 4
[13:16:59.906] [trace] Executing command READ(6)/GET MESSAGE(10) for device 2:0
[13:16:59.906] [trace] Arbitration with initiator ID 7
[13:16:59.906] [trace] Selection of target 2 with initiator ID 7
[13:16:59.911] [trace] Current phase is MESSAGE OUT
[13:16:59.914] [trace] Current phase is COMMAND
[13:16:59.929] [trace] Current phase is DATA IN
[13:16:59.929] [trace] Receiving up to 4096 byte(s) in DATA IN phase
[13:16:59.934] [trace] Current phase is DATA IN
[13:16:59.936] [error] Buffer full in DATA IN phase
Error: Can't execute command $08

I'm afraid I cannot reproduce this. I get this result when running s2pexec against a drive emulated by s2p with a size of 64 KB:
>/opt/scsi2pi/bin/s2pexec -v
3.0-rc6
>/opt/scsi2pi/bin/s2pexec -i 0 -c 08:0f:ff:ff:00:00 -L trace
[20:30:05.647] [trace] Detected Raspberry Pi type 4
[20:30:05.649] [trace] Executing command READ(6)/GET MESSAGE(10) for device 0:0
[20:30:05.649] [trace] Arbitration with initiator ID 7
[20:30:05.649] [trace] Selection of target 0 with initiator ID 7
[20:30:05.650] [trace] Current phase is MESSAGE OUT
[20:30:05.650] [trace] Current phase is COMMAND
[20:30:05.650] [trace] Current phase is STATUS
[20:30:05.650] [trace] Current phase is MESSAGE IN
[20:30:05.650] [warning] Device reported CHECK CONDITION (status code $02)
[20:30:05.651] [trace] Executing command REQUEST SENSE for device 0:0
[20:30:05.651] [trace] Arbitration with initiator ID 7
[20:30:05.651] [trace] Selection of target 0 with initiator ID 7
[20:30:05.651] [trace] Current phase is MESSAGE OUT
[20:30:05.652] [trace] Current phase is COMMAND
[20:30:05.652] [trace] Current phase is DATA IN
[20:30:05.652] [trace] Receiving up to 14 byte(s) in DATA IN phase
[20:30:05.652] [trace] Current phase is STATUS
[20:30:05.652] [trace] Current phase is MESSAGE IN
Error: ILLEGAL REQUEST (Sense Key $05), LBA OUT OF RANGE (ASC $21), ASCQ $00

As far as I can tell our s2pexec setup is the same. From your output it looks as if the target does not enter the status phase but tries to send more than 4096 bytes. I might have to address the blocked bus, e.g. with a SCSI reset on the initiator side, but let's first identify the actual problem.
By the way, there is no need for using 'sudo' anymore when launching programs contained in the SCSI2Pi 3.0 binary packages.

The firmware on the BlueSCSI is the same across tests (v2024.02.22+ the lun patch)- I'd assume if the Target was doing something wrong (which very well could be, I'll take a closer look) it wouldn't matter if I was using the earlier or later versions of s2pexec. Disk on ID 2 size is 1,073,741,824 bytes.

There were some changes between 2.0 and 2.0.1 that also affect s2pexec.
Judging from the logs the target does not report any error but starts transferring the requested 256 sectors of data, which exceeds the buffer size. This results in s2pexec stopping the transfer after the receive buffer size has been reached. The target tries to send the remaining data, which is blocking the bus. In the ideal case s2pexec would try to prevent this with a bus reset. This is something I can quite likely reproduce.

It is not in STATUS - bluescsi log when i
[3855918ms] DBG -- BUS_BUSY
[3855919ms] DBG ---- SELECTION: 2
[3855922ms] DBG ---- MESSAGE_OUT
[3855924ms] DBG ------ OUT: 0x80
[3855927ms] DBG ---- COMMAND: Read6
[3855930ms] DBG ------ OUT: 0x08 0x0F 0xFF 0xFF 0x00 0x00
[3855935ms] DBG ------ Read 256x512 starting at 1048575
[3855940ms] DBG ---- DATA_IN
... 5023ms delay here, normally sub second ...
[3860963ms] DBG ---- Total IN: 65536 OUT: 0 CHECKSUM: 0
[3860965ms] DBG -- BUS_FREE```

I missed your question about the buffer - that seemed to allow me to get past the error:

$ /opt/scsi2pi/bin/s2pexec -i 2:0 -c 08:0F:FF:FF:00:00 -L trace -b 999999
[15:36:35.303] [trace] Detected Raspberry Pi type 4
[15:36:35.303] [trace] Executing command READ(6)/GET MESSAGE(10) for device 2:0
[15:36:35.303] [trace] Arbitration with initiator ID 7
[15:36:35.304] [trace] Selection of target 2 with initiator ID 7
[15:36:35.308] [trace] Current phase is MESSAGE OUT
[15:36:35.311] [trace] Current phase is COMMAND
[15:36:35.326] [trace] Current phase is DATA IN
[15:36:35.326] [trace] Receiving up to 999999 byte(s) in DATA IN phase
[15:36:35.521] [trace] Current phase is STATUS
[15:36:35.524] [trace] Current phase is MESSAGE IN
[15:36:35.524] [debug] Received 131072 data byte(s)
00000000  00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00  '................'
..snip..
0001fff0  00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00  '................'

But LBA OUT OF RANGE is not reported, is it?

Oddly no but I think I something is wrong with my test here. I'm going to reset everything and start again, but likely not today.

No problem. In the meantime I have improved the initiator behavior in case there is a wrong bus phase. The bus should not be blocked anymore if the DATA IN phase cannot be correctly terminated.
s2pexec -i 5 -c 12:00:00:00:40:00
00000000  05:80:02:02:33:00:00:18:50:4c:45:58:54:4f:52:20  '....3...PLEXTOR '
00000010  43:44:2d:52:4f:4d:20:50:58:2d:34:30:54:53:20:20  'CD-ROM PX-40TS  '
00000020  31:2e:31:31:30:32:2f:32:31:2f:30:30:20:30:31:3a  '1.1102/21/00 01:'
00000030  31:31:20:20:20:20:20:20                          '11      '
>s2pexec -i 5 -c 08:00:00:01:01:00 -b 1
[10:45:47.006] [error] Buffer full in DATA IN phase
Error: Can't execute command READ(6)/GET MESSAGE(10) ($08)
>s2pexec -i 5 -c 12:00:00:00:40:00
00000000  05:80:02:02:33:00:00:18:50:4c:45:58:54:4f:52:20  '....3...PLEXTOR '
00000010  43:44:2d:52:4f:4d:20:50:58:2d:34:30:54:53:20:20  'CD-ROM PX-40TS  '
00000020  31:2e:31:31:30:32:2f:32:31:2f:30:30:20:30:31:3a  '1.1102/21/00 01:'
00000030  31:31:20:20:20:20:20:20                          '11      '
>s2pexec -i 5 -c 08:00:00:01:01:00 -b 1
[10:46:00.648] [warning] Device reported CHECK CONDITION (status code $02)
Error: UNIT ATTENTION (Sense Key $06), POWER ON, RESET, OR BUS DEVICE RESET OCCURRED (ASC $29), ASCQ $00

The change is included in the latest development branch builds, e.g. https://www.scsi2pi.net/packages/develop/scsi2pi_3.1_devel_30d2336_bookworm_arm64-1.deb.
In case you want to use s2pexec for scripting tests, also see the bottom of https://github.com/uweseimet/scsi2pi/wiki/Advanced-Testing.

Ok, reset everything (still testing on rc6 to not move anything). I've boiled the problem down to the buffer size allocation when the cdb is 08:00:00:00:00:00:
$ /opt/scsi2pi/bin/s2pexec -i 1:0 -c 08:00:00:00:00:00 -L trace
[09:09:25.888] [trace] Receiving up to 4096 byte(s) in DATA IN phase # <- too small: 256 blocks*512 bytes = 131,072
[09:09:25.894] [trace] Current phase is DATA IN
[09:09:25.894] [error] Buffer full in DATA IN phase

$ s2pexec -i 1:0 -c 08:00:00:00:00:00 -L trace -b 131071 # fails hard reset of BlueSCSI
[09:09:07.657] [error] Buffer full in DATA IN phase

$ s2pexec -i 1:0 -c 08:00:00:00:00:00 -L trace -b 131072 # 256*512

I'll try the latest dev build now to see if the bus reset helps get past the hang.

Note that with the next develop build (available in about an hour) s2pexec will also support an explicit bus reset with the new "--reset-bus/-r" command line option.

Just tested and yes the link you gave me did reset the bus on the failed DATA_IN phase.
One note though - it did not reset the bus when the bus was already hung due to my previous RC6 command failure. Eg: run bad command on rc6 get hung bus -> upgrade to dev -> try to run commands, but was still in a bad state and wasnt reset. This is a very unlikely case to have a device hung before any commands are run, but just wanted to bring it up.
The --reset-bus is a nice addition, just in case it's needed.

Yes, the bus will only be reset right after a command that caused a wrong bus phase. When the bus is already blocked when lauching s2pexec, s2pexec does not unblock it. It will not access the bus until the next command. But the new option should help in this case, because you can reset the bus any time with it.

@erichelgeson From your perspective, is there still anything to be done as part of this ticket? As far as I can tell the original problem was caused by the buffer being too small.

I suppose from s2pexec's perspective you cant determine the correct buffer size before sending the READ command - but we do know 4096 will always be wrong (unless there is a 16 byte block size drive out there) - I'm not sure if you could make a better default for the case where read with Transfer length of 00 is 512*256 as that would be the 'common' case.
That is just my 2c, whatever you decide is fine.

I also thought about increasing the buffer exactly to this size. For s2pexec 100 KB more of memory usage are less relevant than for s2p.
I will add the required change for the next development build. Note that all changes that result from this ticket will also be included in the final 3.0 release.

Makes sense, thanks for your help debugging this and I learned a few things along the way - which is always the best part.

Just noticed a slight regression in behavior from the buffer size change on 3.1_devel_3b4ee02:
$ s2pexec -i 1 -c 1D:00:00:10:00:00 -L trace
[11:18:32.376] [trace] Detected Raspberry Pi type 4
[11:18:32.377] [trace] Executing command SEND DIAGNOSTIC for device 1:0
[11:18:32.377] [trace] Arbitration with initiator ID 7
[11:18:32.378] [trace] Selection of target 1 with initiator ID 7
[11:18:32.383] [trace] Current phase is MESSAGE OUT
[11:18:32.386] [trace] Current phase is COMMAND
[11:18:32.398] [trace] Current phase is DATA OUT
[11:18:32.398] [trace] Sending 131072 byte(s) in DATA OUT phase
[11:18:32.413] [error] Sent 4096 byte(s) in DATA OUT phase, expected size was 131072 byte(s)
[11:18:32.413] [error] DATA OUT phase failed
Error: Can't execute command SEND DIAGNOSTIC (1d)

$ s2pexec -i 1 -c 1D:00:00:10:00:00 -L trace -b 4096
[11:18:54.366] [trace] Detected Raspberry Pi type 4
[11:18:54.367] [trace] Executing command SEND DIAGNOSTIC for device 1:0
[11:18:54.367] [trace] Arbitration with initiator ID 7
[11:18:54.367] [trace] Selection of target 1 with initiator ID 7
[11:18:54.372] [trace] Current phase is MESSAGE OUT
[11:18:54.375] [trace] Current phase is COMMAND
[11:18:54.387] [trace] Current phase is DATA OUT
[11:18:54.387] [trace] Sending 4096 byte(s) in DATA OUT phase
[11:18:54.399] [trace] Current phase is STATUS
[11:18:54.402] [trace] Current phase is MESSAGE IN
[11:18:54.402] [debug] Received 4096 data byte(s)
00000000  00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00  '................'
..snip...
00000ff0  00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00  '................'

This can hardly be avoided. For DATA OUT the buffer size is also implicitly the expected size of the data to be sent. s2pexec cannot know that in the actual command you said that you only wanted to transfer 4096 bytes. Before the latest change your command just worked by accident, because the size in the command and the buffer size were identical.
I could make the size for DATA OUT configurable with an additional option, but this would just make things more complicated. If you do not want to transfer 131072 bytes you need to adjust the buffer size, in this case to 4096 bytes.
But I notice that 4096 bytes were received in MESSAGE IN phase? There is no message that big. What's happening here?

I agree on the buffer.

The MESSAGE IN data is due to the assumption in the scsi2sd code we use for command handling that the SEND DIAGNOSTIC and RECEIVE DIAGNOSTIC RESULTS commands are chained.
From the spec:

NOTE 92 To insure that the diagnostic command information is not destroyed by a command sent from another initiator, either the SEND DIAGNOSTIC command should be linked to the RECEIVE DIAGNOSTIC RESULTS command or the logical unit should be reserved.

So a stand alone SEND DIAGNOSTIC sends the buffer back. I'm not sure how/if we can detect if the command is chained (haven't looked into it yet).
Either way - these are the types of things I wanted to bring out with these unit tests. I'll look into it more later.

@erichelgeson As far as I can tell these commands should be linked. Linked commands are a general concept of SCSI and can also be used with other commands. The specification has the details.

Do you know any drivers that use linked commands? What I do know is that for the Atari there are no such drivers.

No idea - I don't/haven't looked at any host drivers.


Fixes 4057: Add Watson Embedding API

Fixes 4057: Add Watson Embedding API

updated APIs endpoint, as the new ones have embedding models
added embedding procedure

LGTM


PageActionsMenu: MacOS sharing URL

FF61 Changelog:

Share links from Firefox for MacOS more easily: You can now share the URL of an active tab from the page actions menu in the address bar

I don't have MacOS available and can't see the identifier. Help appreciated.

As no one reported I guess that's no longer an issue or never was. Probably they just added the same functionality to MacOS that's been already there for Windows.


[Feature Request] Save/Export CSS only

Thinking more about saving/exporting features, it might be useful to have an option to save or export (to .css) the CSS definitions of a brew, separate from the content.  Basically just save what is inside any

Eventually we are going to have a second editor tab just for css, and they will be saved as two separate documents, so you can save a style sheet to your account and then reuse it elsewhere without needing two copies of your style.
This would even let users share style sheets with each other and support swapping style sheets (phb vs DMG vs whatever) a little easier.
So yes, we can add a download for that, but it will likely come after we have that second editor panel. This is a good idea.

See also https://github.com/naturalcrit/homebrewery/issues/1097

I think this can be closed with the addition of few things since this was opened:

[x] Separate Style Editor window
[x] Clone to New
[ ] likely future addition of tags or folders

With these three things, it seems easy enough to separate out the CSS from the content, save the entire brew as a "Theme", and give it a "Theme" label/tag/folder for organization, then allow other users to find and clone it.  Even without tags, the current functionality covers the original issue.
Will leave it to someone else to close, though, in case I'm jumping the gun.


Documentation the EC2 SDK is missing

Describe the issue
On https://crates.io/crates/aws-sdk-ec2, there is no documentation for the 0.22.0 release.
Links
https://crates.io/crates/aws-sdk-ec2

It's still on the docs.rs build queue. Docs.rs just hasn't caught up yet.

Thank you for your help and giving me the SDK!


[Feature] Add support for multi sources

nsap
(https://www.reddit.com/r/selfhosted/comments/1hgntc1/comment/m2p9mic/)
This is awesome. Had been looking for something similar. I'd love to have additional sources available (usenet, named trackers, etc.)

I myself also use myanonamouse, so torrent support would be great !


Fix the defective checks of APIs

Checklist

[ ] documentation is added or updated
[ ] tests are added or updated

This pull request is ready to merge

Pushed to master and openssl-3.0. Thank you!


Not able to catch the $emit event while doing  new Vue.Extend(MyGridcomponemt)(propsData:{columns:this.columns,rowsperpage:this.rowsperpage});

How to catch $emit event  with v-on: in JavaScript. while doing
import MyGrid from 'MyGridcomponemt.vue'
import Vue from 'vue'
var myDynamicGrid = Vue.extend(MyGrid)
var instance = new myDynamicGrid({
propsData: { columns: this.columns,rowsperpage:this.rowsperpage,etc..}
})
instance.$mount() // pass nothing
//Will append to required place
this.$refs.container.appendChild(instance.$el)
Here I am able to pass prosData to MyGrid component  but how do I catch those $emit events which will trigger by MyGrid component..


teleport: 8.1.3 -> 9.1.2, add rdpclient

Description of changes
Two separate commits to make review easier. I can squash if necessary to comply with contribution guidelines.
Module tests pass. I do not currently have real-world Teleport clusters to test on.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[x] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[x] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 171165 run on x86_64-linux 1

2 packages blacklisted:

nixos-install-tools
tests.nixos-functions.nixos-test

1 package built:

teleport

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/860

Result of nixpkgs-review pr 171165 run on x86_64-linux 1

2 packages blacklisted:

nixos-install-tools
tests.nixos-functions.nixos-test

1 package built:

teleport


Parse document created/updated dates

In many cases it would be an interesting info to show in the results.
There are many ways of getting this data from page or headers, with varying complexity and confidence. Let's investigate them!

I had a look at this a long time ago, but, whilst detecting the dates is quite straightforward, segregating them into date published / date generated is quite tricky, especially if the article contains other dates. You've got several options:

Use an heuristic: e.g. "first date"
Modify the UI to show a range of possible dates or be deliberately vague, gmail-style ("about a week ago")
Try to induce rules like these people at my old university to generate per-site selectors. Regrettably, I don't think this approach really scales very well and it hides its heavily-supervised nature.
Google's recommendation is to include a date between the article title and its content and lots of sites site should follow this advise, which restricts the range in which you need to look. They also (apparently) use sitemaps.

Interesting links! The PDF seems to be down, is it this one? http://www2013.org/companion/p73.pdf

That's it
On Thursday, 24 March 2016, Sylvain Zimmer<EMAIL_ADDRESS>wrote:

Interesting links! The PDF seems to be down, is it this one?
http://www2013.org/companion/p73.pdf
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/commonsearch/cosr-back/issues/4#issuecomment-201075735

--
Sent from my iPhone

I think we will end up using as many sources/methods as possible for this to cover all cases so it would be okay to begin implementing the simple ones!


Compiler opt

https://en.wikipedia.org/wiki/Intel_C%2B%2B_Compiler
Try compiling Thorium with it? There are tons of tests stating that this compiler is on average 30%+ faster than GCC,CLANG,MSVC...
https://community.intel.com/legacyfs/online/drupal_files/article/146679/linuxkernelbuildwhitepaper.pdf
Red Flag* Software Co., Ltd started to use the Intel C++ Compiler for Linux to compile
the Linux kernel in its commercial version of Linux operating system in 20041

As far as I know, Chromium doesn't support compiling with this compiler, and our current release is compiled with clang.
@icls1337

ICC Classic is proprietary and outdated at this point. Note the Intel whitepaper is from 2008. ;)
The modern Intel DPC++ compiler is built upon Clang/LLVM. It targets SYCL for hardware accelerator offload, which is not something Chromium needs. Think ML, HPC, and similar workloads.
Intel does upstream its compiler development into LLVM as applicable and appropriate. AMD does similar with AOCC.
Chromium explicitly targets LLVM, and usually recent LLVM builds at that. Many of these LLVM derivatives are a major LLVM release version or more behind.

BTW, Chromium for Linux (usually) can be built with GCC, but do not expect PGO, LTO, etc. to work.... assuming one gets a current Chromium ToT dev build to actually compile with GCC 13.x right now anyway. It is not officially supported anymore, so it is a community supported effort at best.

Intel DPC++ = Intel ICX = LLVM derivative
We already use LLVM, so in theory Intel DPC++ could build Chromium as long as the build revision is synced to at least whatever LLVM build revision Chromium devs are using at the time.
Intel DPC++ is provided for devs needing to keep pace with the absolute latest in SYCL and/or OpenMP development. You can view Intel's own downstream commit log here:
https://github.com/intel/llvm/commits/sycl
Otherwise, the codebase is LLVM. Chromium does not use SYCL or OpenMP, so there would no particular benefit to building Chromium with Intel DPC++ versus just using LLVM in the first place.

The chromium browser does not support the use of icx for compilation. Currently, clang is the main compiler.
@icls1337

@icls1337 @gz83 @RobRich999 Yeah, trying to use icx to compile even simple targets (not the full browser), for example content_shell and chrome_sandbox, lead to errors.

@Alex313031 @gz83 @icls1337 Clang 10 is faster than the current ICX-latest and Clang-trunk builds for the example code.
https://godbolt.org/z/zeaY6hhP4
You have found a potential LLVM regression. Looks like it happened between Clang 10.0.0 and 10.0.01. File a bug report with LLVM if interested.

If trying to build Chromium, note ICX defaults to -fp-model=fast. That is not a good idea with the Chromiuim codebase. Been there, done that several times over the years. You might even get a "working" executable, but you should go into the situation expecting crashes. Expect likewise with -Ofast, since it is basically just -O3 -ffast-math.

I have been down so many Chromium optimizations paths over the past several years that is borderline ridiculous.
For example I can build ya' a Chromium release with multi-proc parallel loop execution using Polly to force generate OpenMP calls. Last I knew the resulting build can even considerably inflate a benchmark or two. Still, I would not be included to use it a daily browser. o.0
These days trying to track far too many LLVM optimizations and passes is less like rewards and more like headache inducing IMHO, especially when the actual real-world returns are often practically falling in the noise anyway. A percent or two in a benchmark is no longer worth it with modern procs and GPU acceleration.
A big part of the underling issue is how so many LLVM (and other compiler suite)  passes and options get implemented but are never fully developed into defaults. Many are great ideas, but like most software projects, developer efforts tend to be a managed resource.

BTW, I know this is a Windows repo, but I might have something (or more?) in the pipeline to potentially help with Chromium on Linux performance. My biggest problem is feeling like dealing with the experimentation process.

For the TLDR crowd.... anyone want to donate me an AMD EPYC 9754 build server? ;p

Quick FYI. I installed the Intel oneAPI DPC++/C++ Compiler 2<IP_ADDRESS>30721 on Kubuntu 23.10-dev. The compiler suite appears based upon LLVM v17, so YMMV on doing a current Chromium dev build with it.

Have low expectations. I have already hit a LTO-related error, though I should have a workaround.

Back to poking at icx. This time on my primary build server.
Using icx to build Chromium is mostly copying and moving around some files to create a local standalone icx archive. I had to borrow a few files from LLVM. IIRC, I borrowed one binary, one Linux library, and the Windows compiler-rt libraries I source from Chromium's packaged LLVM checkout anyway; not that I have tried to a Windows build, yet.
I can get LTO working for most binaries and libaries, but it is borked for the chrome binary. The issue appears to track back to an internal function in icx that is not present in open LLVM source. Yeah, fun.
I suspect PGO should work assuming I get around to gen-erating a profile. Chromium project PGO profiles are currently formatted for LLVM v18, while icx being based upon LLVM v17 is using an older non-compatible format. I probably could source a PGO profile for an older Chromium revision, but that probably will pull in lots of mismatched functions that would be disregarded.
I am rolling a Chromium Linux build without LTO+PGO at the moment. I am targeting Haswell as a baseline for now, along with -O3 and various additional icx compiler optimization options. It will give me a starting point for experimenting with optimizations; assuming it builds. I will attempt a similar cross-compiled Chromium Windows build, too. Hopefully I will have links to post in awhile.
Mostly for curiosity, I might look into a build with auto-dispatched optimized functions, though that imposes an Intel processor requirement for dispatching into functions optimized beyond the baseline.

Not been poking at Chromium much in a few days. I will try to get back to icx in the upcoming days.
That said, I am not really expecting any significant returns, especially if we can not successfully enable LTO.


AGAIN - Missing IP Addresses

We see connections from(sample):
<IP_ADDRESS>
<IP_ADDRESS>
which is NOT provided in the Web Services. AGAIN...

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 077406d8-bff1-496e-3ea2-b38558fd9355
Version Independent ID: 57db3dec-2250-2dee-fd1a-ec6656911798
Content: Office 365 URLs and IP address ranges
Content Source: Enterprise/urls-and-ip-address-ranges.md
Service: o365-administration
GitHub Login: @LauraWi
Microsoft Alias: laurawi

@pandrew1 Would you be able to determine if these connections are indeed missing from our list? Thank you.

To confirm, these IP Addresses are not published as being required for customers to include in client machine outbound ACLs on their firewalls. Required IP Addresses are published at http://aka.ms/o365ip

we've confirmed these IP addresses are also not on the http://aka.ms/o365ip list but don't get me wrong. a human readable website is a nice idea and can be used to get an overview but the api should always be the first point to update. I use the web api for all automations so this is the only truth.

@LauraWi Hijacking this a bit to show that we are facing a similar problem of IP's in production not being documented.
Even IP's used for EOP -> On-Prem servers (connector from 365) are missing from the API and docs pages.
Here's two examples we see incoming SMTP traffic from:

EUR02-HE1-obe.outbound.protection.outlook.com which has the IP: <IP_ADDRESS>
EUR04-VI1-obe.outbound.protection.outlook.com which has the IP: <IP_ADDRESS>

Looking at the documentation:

It's not in here: https://docs.microsoft.com/en-us/office365/enterprise/urls-and-ip-address-ranges
Looking at the links top of the page: https://docs.microsoft.com/en-us/office365/enterprise/office-365-ip-web-service
We can see that https://endpoints.office.com/endpoints/worldwide should contain all the current IP-spaces, but neither of the above IP's are in there.

Looking at the "Changes" link both of these IP-spaces was removed<PHONE_NUMBER> and<PHONE_NUMBER> respectively: https://endpoints.office.com/changes/worldwide/0000000000

See ID: 287 and 294 for <IP_ADDRESS>/26
See ID: 327 and 334 for <IP_ADDRESS>/22

https://docs.microsoft.com/en-us/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/set-up-connectors-to-route-mail#prerequisites-for-your-on-premises-email-environment

Prerequisites for your on-premises email environment
Make sure that your firewall accepts connections from all Office 365 IP addresses. See Exchange Online IP addresses and URLs for the published IP address ranges.

So the endpoints/documentation is clearly not correct for the IP-spaces used for the services. This was blocking all incoming emails for the connector as we were trusting the documentation and procedure documented to obtain these IP-addresses.
Thank you

Looping in @pandrew1 for review.

@pandrew1 have you had a chance to review this? Thanks


[Auth Integration Testing] Validate dashboard configuration to support ResourceService auth

Add integration test coverage for :

[ ] Dashboard:ResourceServiceClient:AuthMode is required if URL configured
[ ] Dashboard:ResourceServiceClient:ApiKey is required required auth mode is API key
[ ] Dashboard:ResourceServiceClient:ClientCertificate:* is required if auth mode is certificate
[ ] Validate certificate errors incase invalid cert is provided

@drewnoakes can you confirm if this : https://github.com/dotnet/aspire/pull/3824 covers all the scenarios above and can be closed?

#3824 tested the use of auth, not the validation of configuration. Testing of option validation is in #4620.


[SPIKE]: Investigate how to auto-create an issue when any tests fail after merging PR

Use GitHub workflows to automatically create an issue of high priority when a test fails after merging a PR.

Nice to have, and can be considered in future.


Properly detect when to use DRI_PRIME

We fork off twice once with and once without DIR_PRIME=1 set. We
then use the vendor string to determine what GPU to use.
We prefer (in order)

AMDGPU/AMDGPU-PRO/NVidia non-free driver
Intel driver
Nouveau
Software rendering

If a driver can't be detected it will default to DRI_PRIME=0

Now that Godot 3.1 has been released, we only plan to cherry-pick critical bug fixes to the 3.0 branch, unless there is very strong support in favor of a specific non-critical issue. Removing cherrypick label for 3.0.


selinux::module fails when module contains more than .te file

Selinux module can contain .te, .if adn .fc files. See https://github.com/TresysTechnology/refpolicy/tree/master/policy/modules/services
Affected Puppet, Ruby, OS and module versions/distributions

Puppet: not dependant
Ruby: not dependant
Distribution: not dependant
Module version: 0.4.1

How to reproduce (e.g Puppet code you use)
Create selinux module with multiple file types and try to use selinux::module to manage it.
What behaviour did you get
So far I have not been able to manage single selinux module. Somehow te file ends up being directory.
What behaviour did you expect instead
I expect to get similar behaviour than spiette/selinux. See:
https://github.com/spiette/puppet-selinux/blob/master/manifests/module.pp
Put selinux module files into puppet module files/selinux and then enable module by:
  ::selinux::module { 'myselmodulename':
    ensure => 'present',
    source => "puppet:///modules/${module_name}/selinux",
  }

I have branch with fixes:
https://github.com/cybercom-finland/puppet-selinux/tree/module-source-directory-118
But I would like to have #117 fixed before.

Also it might be benefical to restore API from spiette module totally, but I'm not sure about what I've dropped.
https://github.com/spiette/puppet-selinux/blob/master/manifests/module.pp

In my opinion the selinux::module param should not synchronize a directory.
@maage if this is important for you please provide proposals on the issue #178 within the next few days.


OSGI bundle manifest file

Would it be possible to generate a META-INF/MANIFEST.MF with OSGI bundle information for use in an OSGI environment? (log4j 1.2.17 has).
Regards
Olaf

I thought reload4j already had OSGi bundle information.

I just checked it does have OSGI bundle information. Can you please point at what is missing?

This is the MANIFEST.MF from https://mvnrepository.com/artifact/ch.qos.reload4j/reload4j/<IP_ADDRESS>
Manifest-Version: 1.0
Build-Jdk-Spec: 1.8
Created-By: Maven Jar Plugin 3.2.0
Name: org.apache.log4j
Implementation-Title: log4j
Implementation-Version: <IP_ADDRESS>
DynamicImport-Package: *
Implementation-Vendor: "Apache Software Foundation"
Please take a look to MANIFEST.MF from log4j-1.2.17.jar to see the difference.
Export-Package:, Ignore-Package:, Import-Package:, Bundle-XXX:, etc. is missing

The OSGi bundle information is present at build time but gets somehow lost during transfer to Maven Central.

Fixed in c2455a1c42

I was attempting to use <IP_ADDRESS> in OSGi and was having issues.  Just saw this and updated the maven POMs to <IP_ADDRESS> but now seeing this error:
Unable to resolve 31.0: missing requirement [31.0] osgi.wiring.package; (osgi.wiring.package=org.apache.log4j) [caused by: Execution environment not supported: JavaSE-1.5]
The application builds with JDK 1.7, and runs in a JRE 1.8 environment.  Any thoughts?  I see this targets 1.5 which I thought would be fine.  The app is happy with Log4j-1.2.16

I think log4j 1.2.7 does not specify anything regarding the execution environment.

J2SE-1.5 should work better than JavaSE-1.5

@jkleff why do you need reload4j in OSGi environment?
Not that I want to advertise ops4j/org.ops4j.pax.logging project, but it has a long history of OSGi adjustments to log4j1 and other "frameworks".
Log4j has several static blocks and does classloader discovery without bothering to check bundle resources. Pax Logging does all of that. pax-logging-api gives you access to log4j1/reload4j packages without doing the backend magic. You can use log4j1 API (probably that's what you want) but the actual logging backend can be Logback or Log4j2.
reload4j-<IP_ADDRESS> indeed requires com.ibm.uvm.tools,com.sun.jdmk.comm...

com.ibm.uvm.tools import is generated because of this fragment in org.apache.log4j.spi.LocationInfo:
// Check if we are running in IBM's visual age.
static boolean inVisualAge = false;
static {
try {
    inVisualAge = Class.forName("com.ibm.uvm.tools.DebugSupport") != null;
    LogLog.debug("Detected IBM VisualAge environment.");
} catch (Throwable e) {
    // nothing to do
}

com.sun.jdmk.comm import is generated because of this fragment in org.apache.log4j.jmx.Agent:
try {
    newInstance = Class.forName("com.sun.jdmk.comm.HtmlAdapterServer").newInstance();
} catch (ClassNotFoundException ex) {
    throw new RuntimeException(ex.toString());
} catch (InstantiationException ex) {
    throw new RuntimeException(ex.toString());
} catch (IllegalAccessException ex) {
    throw new RuntimeException(ex.toString());
}

Probably no one remembers what Visual Age is and org.apache.log4j.jmx.Agent has this JavaDoc:
Manages an instance of com.sun.jdmk.comm.HtmlAdapterServer which was provided
for demonstration purposes in the Java Management Extensions Reference
Implementation 1.2.1. This class is provided to maintain compatibility with
earlier versions of log4j and use in new code is discouraged.

I'd remove these code fragments anyway - and I'm preparing an OSGi fix right now.

Interesting and good to know.  Sadly, I'm maintaining a legacy application that builds from an offline maven repo, and parts of it that rely on log4j can no longer be built as-is (many years of mistakes, don't get me started...).  So this drop in fork of log4j-1.2 caught my eye and is the perfect usage for me right now... despite my dislike of OSGi.  This of course was only necessitated by the v1.2 vulnerabilities coming to light after "the big one" did.  The app wasn't even using any logging, in deployed form.  Just imports it with all logs disabled :(
thanks again.

@jkleff  I have release <IP_ADDRESS> prepared and ready to go. Can you please try it out?

@ceki <IP_ADDRESS> pulled from maven central works out of the box now, as long as I set:
org.osgi.framework.executionenvironment=J2SE-1.5
thanks for that!

@jkleff  Thank  you for the quick feedback. Am I correct to assume that in your environment setting org.osgi.framework.executionenvironment is always a requirement? is there anything that can be done in reload4j so that you would not need to set the aforementioned variable?

@ceki I'm not sure yet.  I'm not the original developer, nor an Apache Felix expert.  just maintaining some legacy tools.
I was under the impression that setting Bundle-RequiredExecutionEnvironment was a minimum value, and so my JavaSE-1.7/1.8 deployment would work.  but the presence of it seems to necessitate my setting the above in config.properties.
I think it's no big deal, but I had to figure it out the hard way from errors like:  [caused by: Execution environment not supported: JavaSE-1.5]
Maybe just an OSGi blurb in your README would suffice?  But there certainly could be a more eloquent way of preparing the JAR for OSGi that I'm not aware of.

By the way, as I understand it, "JavaSE-1.5" is an incorrect value for Bundle-RequiredExecutionEnvironment.  Reload4j <IP_ADDRESS> used the correct value: "J2SE-1.5"

Interesting and good to know.  the variable didn't exist before I needed to with reload4j.jar...so I suppose it was using some default value provided by the framework prior to this.

What happens if you do not set org.osgi.framework.executionenvironment with reload4j version <IP_ADDRESS>? Have you tried that?

Ha, of course I forgot that.  It works fine.  so was only necessary with <IP_ADDRESS>.  nevermind the above :)

Just for completeness, maven-bundle-plugin (and underlying bndlib) looks at maven-compiler-plugin configuration (source, target) and generates relevant Require-Capability header like this (pax-logging 1.10):
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.7))"

or this (pax-logging 1.12):
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"

reload4j <IP_ADDRESS> has two headers:
Bundle-RequiredExecutionEnvironment: JavaSE-1.5
...
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.5))"

and while I wanted to show how it's done in Karaf, I actually realized I've rarely seen Bundle-RequiredExecutionEnvironment. And that's true - please check chapter 3.4.1 Bundle-RequiredExecutionEnvironment of OSGi Core R7 specification:

The Bundle-RequiredExecutionEnvironment manifest header provides the same function as the osgi.ee Namespace. It allows a bundle to depend on the execution environment. This header is deprecated but must be fully supported by a compliant framework. Bundles should not mix these headers but use either an osgi.ee requirement or this header.

So first - a PR: #31 that simply removes Bundle-RequiredExecutionEnvironment header generation.
Because maven-bundle-plugin doesn't contain _noee instruction, maven-compiler-plugin configuration is used and this is generated:
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.5))"

And finally - after all it's not J2SE, but JavaSE ;) See 8.2 osgi.ee Namespace chapter:

JavaSE – Should be used for all Java SE execution environments since Java 1.2. The name for the Java Runtime environment has changed several times but for all environments the Java SE name must be used.

Hi, I tested reload4j <IP_ADDRESS> in a minimal OSGi example and it works AFAICS. I just noticed that the Bundle-SymbolicName is ch.qos.reload4j. In general that should be correct and not an issue. But it is for older releases of Eclipse.
Eclipse is re-bundling jars to add missing or incorrect OSGi meta-data. It did this also for log4j 1.2.15 (don't ask me why). With the re-bundling the Bundle-SymbolicName was set to org.apache.log4j. Today every plug-in developer is told to use Import-Package to specify the dependency to a logging library. But in the past (and unfortunately even today) some developers are not aware of that rule and use Require-Bundle. With that the dependency is specified on the Bundle-SymbolicName and not the exported packages.
My first idea was to re-bundle reload4j to set the Bundle-SymbolicName and re-publish it in Eclipse Orbit. It basically works, but I faced two issues:

reload4j is not following the rules of semantic versioning as it introduces a fourth segment. So the re-bundling is not working without removing the fourth segment in the processing
logpresso is checking the version based on the pom.properties below the maven folder, which is of course a different one when re-bundling. So now logpresso does not warn about CVEs with the current reload4j. But it will if it is re-bundled for Eclipse.

I first was not considering to ask you to change the Bundle-SymbolicName, as log4j 1.2.17 in Maven Central specifies the Bundle-SymbolicName only as log4j. But taking the above issues into account and the fact that actually OSGi developers have used Import-Package for a long time, and only Eclipse developers used Require-Bundle in the past, I thought it would be at least worth asking if you could change the Bundle-SymbolicName to org.apache.log4j, so reload4j could be taken directly from Maven Central as a drop-in replacement for the re-bundled org.apache.log4j from Eclipse Orbit. This way it would not be necessary to re-bundle and re-publish reload4j in Eclipse and we could even help older Eclipse based applications to solve the CVEs directly.
What do you think?

@fipro78 I'd use this Log4j CVE apocalypse opportunity to stop treating Require-Bundle as something normal. I'd NOT make it easy for devs using Require-Bundle to use reload4j as if it was normal log4j bundle. They have to do something, so it'd be better if they switch to Import-Package.

@grgrzybek I totally agree and I am discussing that topic for years now. And we again started that discussion so several Eclipse projects are even more convinced to change now. To be honest, some projects didn't even know as the maintainers changed over time. Or to say it differently, they are checking again and fix the remaining places. The issue is that you can not change the past. And if projects are not able to consume the latest version of a library that consumes log4j via Require-Bundle, how can they fix the Log4j CVEs without a drop-in replacement of log4j with the matching symbolic name?
But as I said, just a question. I don't want to push the idea too much if you don't like the idea. In that case I probably need to find a way to re-bundle the jar for Eclipse Orbit and deal with the issues somehow.

@fipro78 I only commented about OSGi ;) I'm not affiliated at all with the decision making process for reload4j ;)

I was unaware of the 4th position in the version string causing problems. Will stick to incrementing the 3rd position from now on.
As for Bundle-SymbolicName, it is now being set manually to org.apache.log4j. See c08e26552d5fb1
@fipro78  Let me if this would satisfy older Eclipse releases.
@grgrzybek  Please let me know if you object to this change.

@ceki I agree with the change - my decision is based on pros vs cons and there are no cons here ;)
About the 4th position, <IP_ADDRESS> is proper OSGi version, but 5 is treated as qualifier, so the problem may be that <IP_ADDRESS> is newer than <IP_ADDRESS> for example.
This OSGi code fragment prints "5":
org.osgi.framework.Version.parseVersion("<IP_ADDRESS>").getQualifier()

This however throws java.lang.IllegalArgumentException: invalid version "<IP_ADDRESS>.6": invalid qualifier "5.6" exception:
org.osgi.framework.Version.parseVersion("<IP_ADDRESS>.6").getQualifier()

@ceki The issue with the 4th position is actually as @grgrzybek already explained. It is a qualifier that can be actually anything. For example, the Eclipse build uses the 4th position to add the build timestamp. And some tools therefore interprete it differently.
I just ran the build locally and there are is no OSGi metadata in the MANIFEST.MF anymore. I wanted to test locally to give you a verified feedback if it works now or not. Any idea why the metadata is lost now?

@fipro78 75907003bbf4e5ebfc860605e7f2510158727d47 removed:
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>

and that's the problem (oh, I see your comment ;)

@fipro78 Sorry. fixed in 8095168f35958819b268

@ceki Please don't apologize for mistakes that happen while fixing issues. :) Such things happen and I really appreciate your responsiveness.
I was able to build locally and the MANIFEST.MF looks good so far. I did a very small local test that succeeded. I will perform some more tests in a more complex scenario to be sure it works and come back with the feedback, hopefully before you are publishing the next release.

Hi, is there clarity when this issue will be resolved?
Regards, Ivo Kolev

@ivo-kolev It is already resolved. What issue are you referring to?

@ceki Thank you. The status of 'OSGI bundle manifest file #27' shows as open, this is why I thought there is still pending fix specifically to the OSGi manifest entries.


fix bad value for promptVisible when readerVisible == true

in scenes where readerVisible == true, <sv-action-prompt> doesn't get rendered and CVOrbitNavigation.tick() then throws an error when trying to modify the prompt's style.
I choose to always disable the prompt when the reader is visible. Another choice might be to keep it when readerPosition !== EReaderPosition.Overlay.

Right now it also disables with any UI interaction (not necessarily manipulating the model) which could be pretty easily changed by taking out isInitialLoad from that line and defaulting the style to transparent. Opinions?


ProjectService setup.

So this PR tries to cover the following objectives:

Generalize the JSONDataSource using a mixin that can be included by any SomeModelJSONDataSource.

Using this pattern, all models that have a JSONDataSource, should include the mixin.

At the end of this, we can achieve that ProjectService is created, using ProjectJSONDataSource.

I have some questions regarding how this can be achieved but we can break this in little pieces so it’s easier to work on.

There's some issue with CLA @KrauseFx ... But after this is solved I think this is good to go into review! @taquitos 🚀

Don't worry about the CLA, you signed it, and I'm the co-author (one commit of mine is included), so we're all good