Pre-compiled examples?

Would it be possible to have the examples pre-compiled for all SDCC/Cosmic/IAR (binaries and/or ihex)? I'm interested in how those compilers generate the assembly since I'm working on a STM8 reverse engineering project:
https://github.com/brainstorm/treadmill-re
In particular I'm interested in seeing different compiler's approaches to calling conventions, for instance.
/cc @trufae

Hi brainstorm,
when I started this project, I had access to Cosmic and IAR licenses from work. Unfortunately this is no longer the case. Nowadays I only use SDCC if/when I program STM8 - which has become pretty rare...
I understand that you want the binaries to analyze the parameter passing, stack handling, etc..? If this is the case, any binary+source should do, correct? For SDCC I please find the serial_printf binaries here. However, for Cosmic and IAR I'm at a loss due to lack of license. Sorry for the negative feedback!
Georg
PS: nice project  :-)   Actually I know someone who might be able to support you in reverse engineering. I'll send him a link to this issue. If he's interested, I'm sure he'll contact you.

Excellent, thank you so much!
Yes I do have SDCC binaries already (easy to compile locally), I just wanted to compare w/ Cosmic/IAR as you are pointing out. Thanks for pointing to somebody that can help too! I'm at brainstorm at nopcode dot org over email if that's more convenient for your someone.

you might be able to reach out to Philip Krause, he maintains a comparo of stm8 compilers here: http://colecovision.eu/stm8/compilers.shtml
SDCC especially has been evolving a lot over the past few years. There's an active mailing list archived on sourceforge

In particular I'm interested in seeing different compiler's approaches to calling conventions, for instance.

The calling conventions of the various commercial compilers that support STM8 are actually documented in the SDCC manual, because recent versions of SDCC allow the calling convention to be specified for interoperability with pre-compiled code from other compilers like Raisonance, IAR, and Cosmic. See section 4.5.1 of the SDCC manual.
For convenience, here are excerpts of this information in the SDCC manual:

Raisonance:
If the first parameter is 8 or 16 bits, it is passed in a or x. If the first parameter is 8 bits, and the second 16 bits, the second is passed in x. If the first parameter is 16 bits, and the second is 8 bits, the second is passed in a. All other parameters are passed on the stack. If the return value is 8 bits, it is passed in a. If it is 16 bits, it is passed in x. Raisonance passes larger return values in pseudoregisters, which is not supported by SDCC.

IAR:
The first 8-bit parameter is passed in a, the first 16-bit parameter in x, the second 16-bit parameter in y. Further parameters of up to 32 bits are passed in pseudoregisters, which is not supported by SDCC. All other parameters are passed on the stack. If the return value is 8 bits, it is passed in a. If it is 16 bits, it is passed in x. IAR passes larger return values in pseudoregisters, which is not supported by SDCC.

Cosmic:
If the first parameter is 8 or 16 bits, it is passed in a or x. If the return value is 8 bits, it is passed in a. If it is 16 bits, it is passed in x. Cosmic passes larger return values in pseudoregisters, which is not supported by SDCC. Even for the medium memory model, __cosmic functions use a 24-bit return address in their stack frame, and are called using callf.

I suspect the use of the mentioned "pseudoregisters" involves the 'zero-page', which takes advantage of 'short' addressing mode single-cycle instructions that can only address 0x0-0xFF (i.e. the first 256 bytes of RAM). But I've never looked into it, so don't quote me on that. 😄

you might be able to reach out to Philip Krause, he maintains a comparo of stm8 compilers here: http://www.colecovision.eu/stm8/
SDCC especially has been evolving a lot over the past few years. There's an active mailing list archived on sourceforge

That's a great idea! The contact given on http://www.colecovision.eu is<EMAIL_ADDRESS>

... Thanks for pointing to somebody that can help too! I'm at brainstorm at nopcode dot org over email if that's more convenient for your someone.

Basil was the one I was referring to  :-)


cloneNode and duplicate do not work well with DOMQueryResults

Make a document with a list and template item
Get the template with find then remove the template item using remove
Iterate over some item data
Create items using cloneNode or duplicate on the template (which is a DOMQueryResults)

Expected:
The item to be cloned repeatedly and the list to be populated with each item
Observed:
Only the last item is present

Fixed in 2.0.0


feat(rulegen): add fix capabilities to new rule template

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#4560
#4559
#4558  👈
#4557
main

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

Join @DonIsaac and the rest of your teammates on  Graphite


update(discord-canary): 0.0.285 -> 0.0.287

Fix title.

oops i blame pacup for having to do it manually


[Question] AutocompleteToolbar initial suggestion

Hello. I there any way to show initial suggestions before any text was entered.
For example. I open my keyboard. Input text field is empty. For now [AutocompleteSuggestion] -> empty.  And Toolbar view looks empty.
And I want fill with my custom values in this case. Something like "I", "I'm", "The".

Hi @krizhanovskii
Absolutely - you could:

set up the autocomplete proxy with initial suggestions.
create a custom provider by inheriting the LocalAutocompleteProvider and return your default set instead of empty suggestions.

Would any of these options work for you?

Is there any example of this?

I created custom provider:
class FridayAutocompleteProvider: AutocompleteProvider {

    var locale: Locale = .current

    func autocompleteSuggestions(for text: String, completion: AutocompleteCompletion) {

        Logger.log("Text: \(text)")

        if text.isEmpty { return completion(.success([AutocompleteSuggestion(text: ""), AutocompleteSuggestion(text: ""), AutocompleteSuggestion(text: "")])) }
        completion(.success(suggestions(for: text)))
    }

    var canIgnoreWords: Bool { false }
    var canLearnWords: Bool { false }
    var ignoredWords: [String] = []
    var learnedWords: [String] = []

    func hasIgnoredWord(_ word: String) -> Bool { false }
    func hasLearnedWord(_ word: String) -> Bool { false }
    func ignoreWord(_ word: String) {}
    func learnWord(_ word: String) {}
    func removeIgnoredWord(_ word: String) {}
    func unlearnWord(_ word: String) {}
}

and assign it in vc - as autocompleteProvider = FridayAutocompleteProvider()
when I type text - all ok. But I initial suggestions is empty))

Im using free version of KeyboardKit)

Oh, I think the controller doesn't perform autocomplete when the proxy doesn't have any text. I should adjust this behavior, since I believe it should use the provider even for that case.
Until I've fixed this, you can override the controller function that cancels this operation.

As you can see here, it resets autocomplete if there is no text...which I think we should maybe change to let the provider be the only decision maker.
The reason why we have these functions is to make it easy to customize autocomplete behavior without having to create custom providers.


Passing option --driver-class-path

Is it possible to pass the --driver-class-path option to Pyspark? used for referring jars(scala code)

Hi,
It is not possible to directly specify this parameter now. But you can provide any parameters supported by SparkConf as spark_options in config. See https://github.com/malexer/pytest-spark#overriding-default-parameters-of-the-spark_session-fixture
Unfortunately, it seems for "--driver-class-path" this way will not work according to the docs: https://spark.apache.org/docs/latest/configuration.html#runtime-environment
Check also parameter spark.jars.packages - may this can solve your issue.

Thank you @malexer 😇🙏🏿


transactionReceipt gets enormously big and repeats the same  transactionReceipt inside many times

Hello. We use hooks approach in our project. So when a user buys something we get currentPurchase object from useIAP() hook. Then we validate currentPurchase.transactionReceipt on the server side of out app.
The problem we encountered during testflight and sandbox testing is that the currentPurchase.transactionReceipt kind of concatanates  the same value inside each time when  currentPurchase changes and become enormously big. More than 100 000 symbols length. What could be a reason of it?
We printed it even on swift side (using xcode console) Still get the same big transactionReceipt

all of these blocks are slightly different so it seems to be normal


Webhook won't stick when bot is running

Bug Report

I have read:

Usage information
Help information

I am using the latest version of the library.
Expected Behavior
When I call bot.setWebHook, it should set the url and leave it there;
Actual Behavior
The webhok gets set (.then() receives true), and, if I imediately getWebHookInfo, I can see the URL is there, but, if I do it again (on getWebHookInfo's .then(), for example), the url is gone!
I tried setting it manually, got the successful response from the server, but, right after, there was no webhook set (checked with API's getWebhookInfo);
At first, I thought it was the API's fault, but, when my code's not running and I call setWebhook manually, the webhook sticks.
Steps to reproduce the Behavior
Here's my code, even though I've gone through it a lot of times, and can't find a thing that could cause this problem. Anyway, there it goes:
import TelegramBot from 'node-telegram-bot-api';
import * as dotenv from 'dotenv-safe';
import pj from 'prettyjson';
dotenv.load();

const bot = new TelegramBot(process.env.TELEGRAM_TOKEN, {
  polling: true
});

const takeOf = () => {

  const WEBHOOK = process.env.LOCAL_URL ? true : false;

  const config = {
    onlyFirstMatch: true
  }

  if(WEBHOOK) {
    config.webHook = {
      host: process.env.LOCAL_IP,
      port: process.env.PORT
    };
    config.polling = false;
  } else {
    config.polling = true;
  }

  console.log(config);

  const bot = new TelegramBot(process.env.TELEGRAM_TOKEN, config);

  bot.getMe()
  .then(me => {
    if (WEBHOOK) {
      const webHookUrl = `${process.env.LOCAL_URL}:443/bot${process.env.TELEGRAM_TOKEN}`;
      bot
      .setWebHook(webHookUrl)
      .then(() => {
        bot.getWebHookInfo()
        .then(info => {
          console.log(`Webhook set; info:\n${pj.render(info).replace(process.env.TELEGRAM_TOKEN, '[TELEGRAM_API_TOKEN]')}`);
        });
      });
    }

    let _info = [];
    const date = new Date();
    _info.push('');
    _info.push('------------------------------');
    _info.push('Bot successfully deployed!');
    _info.push('------------------------------');
    _info.push('Bot info:');
    _info.push(`- ID: ${me.id}`);
    _info.push(`- Name: ${me.first_name}`);
    _info.push(`- Username: ${me.username}`);
    _info.push('');
    _info.push('Server info:');
    _info.push(WEBHOOK ? `- Host: ${process.env.LOCAL_IP}` : '- Polling mode');
    if (WEBHOOK) _info.push(`- Port: ${process.env.PORT}`);
    if (WEBHOOK) _info.push(`- Domain: ${process.env.LOCAL_URL}`);
    _info.push(`- Node version: ${process.version}`);
    _info.push('');
    _info.push('Time Info:');
    _info.push(
        `- Date: ${date.getDay()}/${date.getMonth()}/${date.getFullYear()}`
    );
    _info.push(
        `- Time: ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`
    );
    _info.push('------------------------------');
    console.log(_info.join('\n'));
  })
  .catch(err => console.log(pj.render(err)));
}

takeOf();

In the first few lines, you are creating a bot instance, using polling. Later on, you happen to create another, separate bot instance using a webhook. The polling mechanism automatically un-sets an already-set webhook, should the Telegram servers report back an error. The two mechanisms are mutually exclusive. Choose one please.
Re-open if it does not fix your bug.

Oh man!
I didn't realize that line was there O.o
Sorry for the unnecessary issue opened


500 error on demo site.

https://github.com/user-attachments/assets/772d01d2-efdb-4b27-9269-16fe193df24e

Thanks for the report, I was able to reproduce it too.
nuqs comes with a thottling mechanism for updating the URL, to circumvent rate-limits set by browsers (which trigger this error).
After trying to tweak those rates, thinking browsers may have updated them (it happened with Safari), I found that I needed to consistently double all rates. Looking at the debug logs, this comes from Next.js also doing history updates on navigation, essentially doubling the number of calls (and so require double the time between them to stay within rate limits).


Integrate mocha istanbul module to display code coverage

Mocha Istanbul could allow to display code coverage as follow :
Statements : 100% ( 83/83 )
Branches : 100% ( 24/24 )
Functions : 100% ( 23/23 )
Lines : 100% ( 83/83 )
Ideally, it would color the lines tested in the editor.
An example here : https://github.com/jeffeland/jscoderetreat4

it would actually be pretty cool having this rigth in ACE, looking like this https://gotwarlost.github.io/istanbul/public/coverage/lcov-report/istanbul/lib/cli.js.html
no idea if there is an ACE plugin already.

If you don't mind, I will move this into trello so it can be discussed and voted on.
I would like to keep ideas, feature suggestions, etc. out of github issues, so they can be used for "required fixes" instead of throwing ideas around. ok?


Log app.Run errors in main.go

Thanks! 👍

On second thought, I'm not going to merge this one in.
Reasoning:

Just catching all errors feels weird/lazy... we should properly handle them earlier.
The error message does not help any user, might even frustrate them.

Closing this.


Requests with body keep connection open for extra 5 seconds

Request:
> HTTP.post('https://example.com/any', :body => "some")

=> #<HTTP::Response/1.1 404 Not Found {"Server"=>"nginx/1.14.2",
"Date"=>"Wed, 30 Jan 2019 12:02:30 GMT",
"Content-Type"=>"text/html; charset=utf-8",
"Content-Length"=>"1564", "Connection"=>"close",
"X-Request-Id"=>"6976f707-699c-450b-8f99-fecce91cf9b3",
"X-Runtime"=>"0.007562"}>

Server log on Nginx:
<IP_ADDRESS> - - [30/Jan/2019:12:02:35] https://example.com "POST /any HTTP/1.1"
status:404 req_time:5.028 up_conn:0.001 up_head_time:0.019 up_resp_time:0.019
up_status:404 up_addr:<IP_ADDRESS>:80 req_full_length:133 resp_full_length:1803
resp_body_length:1564 cache:- ref:"-" agent:"http.rb/1.0.2"

Notice that request was on 12:02:30, but Nginx server logged on 12:02:35 and request time was 5.028 seconds: 0.028 seconds of real work and 5.000 seconds a delay before connection was closed.
Same issue with other request types like GET, but there should be any non empty body (:form, :body or :json).
I've seen 5 seconds keepalive timeout a default in code for persistent connections, but no persistent connections were explicitly requested, all options were default.
How to setup Nginx log:
    log_format combined_ext
        '$remote_addr - $remote_user [$time_local] '
        '$scheme://$host '
        '"$request" status:$status '
        'req_time:$request_time '
        'up_conn:$upstream_connect_time up_head_time:$upstream_header_time up_resp_time:$upstream_response_time up_status:$upstream_status up_addr:$upstream_addr '
        'req_full_length:$request_length resp_full_length:$bytes_sent resp_body_length:$body_bytes_sent cache:$upstream_cache_status '
        'ref:"$http_referer" agent:"$http_user_agent"';
    server {
        listen 80;
        server_name example.com;
        access_log /var/log/nginx/access.log combined_ext;

For what it's worth, the API @Vanav is describing sounds an awful lot like the one this library had in its earliest releases:
body = HTTP.get("http://example.com")

Adding a response object made things slightly more complex:
body = HTTP.get("http://example.com").to_s

Unfortunately that's the cost of being able to support streaming, which was one of this library's design goals.


[Feature Request] Access Debrid Library

Please provide option to access my Debrid (RD/PM/AD) library from within the Stremio app. This will allow me to play the files that are downloaded in my Debrid My Files.

It is available in Stremio via Discover screen, there you select Other and then your debrid catalog. Just check that you haven't disabled the catalog when configuring the addon as there is an option to disable it under Debrid options drop down.

@TheBeastLT thanks for the navigation mate, I now know how to access my Debrid Library from Stremio :)
One observation though: it is displaying only folders (and files within those) at the moment and can play those however it cannot display if I have a video file in my library, the below screenshot will help explain

For PM the catalog is made from My Files section in PM, there you can organize however you want, but AFAIK PM creates a folder for each transfer you have, unless you've manually deleted it.

Thanks for the pointer mate. I manually created a folder under My Files section and moved the video files inside that. That way it is now visible in Stremio along with the other folders :) Have a nice weekend.


[Microsite] Deployment

As the microsite project is coming along well so far, I would like for us to explore deploying it to http://adaptive-loading.web.app/ as the root/main page on the domain. This would allow us to get a better idea of how the implementation performs on production and consider if any further performance optimizations are needed on the server-side.
cc @anton-karlovskiy

@addyosmani
To deploy the Microsite project as the root page, I'm going to move the project repository into the adaptive loading demos project repository.
Does it sound good?

Yes, this sounds good to me. Thanks!

@addyosmani
https://adaptive-loading.web.app/
It's up and running at the root page.

@addyosmani
I think we can close this issue.
We've implemented even SSR cache.

This sounds great to me. Thank you for working on the latest revisions. The site is looking great.


Add optional support for validating client certificates

Added optional support for validating client certificates when mutualAuth is enabled.  There are two new settings when configuring an HTTPS imposter: rejectUnauthorized and ca.  When both mutualAuth and rejectUnauthorized are true, the HTTPS server will request client certificates and validate them against the list of certificates provided in the ca setting.

@bbyars Would you be able to assist?  CircleCI is failing and I think it's due to my access.  I get the error "Error: EACCES: permission denied, rename '/usr/local/lib/node_modules/npm' -> '/usr/local/lib/node_modules/.npm-i9nnxROI'".  I am also unable to retrigger the build.

Thanks! I guess the npm install -g command caused the permissions error -- that's a hopefully short-term hack as npm v8 has a memory leak that fails the build (just for the tests, not production). Everything looked fine and ran fine for me locally. Thanks so much for taking a look at it.


SSHAgentHSM - forward RSA key via ssh-agent for signature

split pkcs12 into key,cert,chain
ssh-add key to your local agent
sign with cert & chain remotely
limited to pkcs1v15/sha1 due to ssh-agent protocol

thanks for the patches :)

I have no idea how this HSM works, so an example would be useful


Add Flake8 check

Installed Flake8, and created flake8 workflows
This PR contains 1 commit of stub files that were necessary for installing flake8.
Relevant issue: #10

@OhadSeg usually when setting the PR as draft, we're implying that reviewers will hold on with reviewing it. In this case, you're setting it to draft because you don't want it to be merged yet, but you do want reviews, so you'll need to solicit reviews somehow - tag people, add them as reviewers, add labels to the PR indicating that it should be reviewed, etc.

@OhadSeg see the link here for how to properly link the PR to the issue. You need to use specific keywords
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword

The commit looks very good to me. Exactly what I was thinking that should be added.
Well done! Keep up the good work!

@IdanZimi @MaayanMashhadi  Hey please take a look, my PR contains stub file, that you work on.
This PR, should be reviewed.

looks great to me, well done.


Many to Many configuration, no WithMany after HasMany

in EF6 I was configuring many to many like this:
modelBuilder.Entity<Dinner>().HasMany(r => r.Meals).WithMany(o => o.Dinners).Map(f =>
{
    f.MapLeftKey("DinnerId");
    f.MapRightKey("MealId");
});

in EF Core (1.0.1) there is no WithMany after HasMany just WithOne
is this not implemented yet, or is there a different way of doing this now ?

This feature is not yet supported in EF Core.
For the time being, I suggest you manually create join table, as demonstrated here.

Duplicate of #1368

For modelling many-to-many in the current 1.0 bits, see https://docs.efproject.net/en/latest/modeling/relationships.html#many-to-many


Add Spotify Controller

One thing to note is that this uses Spotipy which at the moment is not updated on PyPi. See https://github.com/plamere/spotipy/issues/211.
Because of this, we need to pull from the git repo directly.

Nice!
I think however that most of this code should not be in PyChromecast. I think that the Spotify Controller should be constructed with just the auth token. Getting a valid authentication token is out of scope for PyChromecast. That will also make sure that we don't have to include a new dependency for a controller.
There is also a bunch of commits in this branch unrelated to this feature, they need to be removed

@balloob what would you propose? Have a complete separate repo that gets the auth token and only maybe point to it?
The unfortunate thing is that none of the auth tokens that you can request via Spotify's Web API (hence through spotipy as well) have enough permissions to start the session on the chromecast.
Regarding the commits, I pulled from upstream and a mess was created. Not sure how to delete them? Would you happen to know?

Easiest to clean up the mess would be to create a new branch based off master and cherry pick your commits.
I would indeed propose a separate repo for retrieving the auth token. That code should not belong in PyChromecast.


[NTR] New lung terms - from Mattias and Christina

Peter and I met with pulmonary experts Mattias and Christina. We'll add new lung terms from this spreadsheet.
Related to #3026
cc @pnrobinson

@pnrobinson
is pulmonary hypoplasia the same as MONDO:0020419 'pulmonary artery hypoplasia'?

pulmonary hypoplasia means undergrowth of the lung, so it is different!

Thanks @pnrobinson!

From Christina:
Immunodeficiency, autosomal recessive, due to ZNFX1 deficiency: same as in OMIM 619644; citation: PMID: 33872655. I will add this as a synonym to MONDO:0030491

From Christina:
immunodeficiency, due to IKZF3 deficiency: Has also an OMIM ID: 619437; citation: PMID: 34155405. i added this a synonym of MONDO:0030333 'immunodeficiency 84'

talked to Ada on 09/21/22- I will send PMIDs to her for any terms that are not in OMIM and they will consider adding them and then we can map them in Mondo

this is done, will be available in the November release

It looks like the genes were not added? E.g.
id: MONDO:0800136
name: non-severe combined immunodeficiency due to COPG1 deficiency
def: "Any non-severe combined immunodeficiency caused by a deficiency in the COPG1 gene." [PMID:33529166]
subset: gard_rare {source="MONDO:GARD"}
subset: nord_rare {source="MONDO:NORD"}
subset: rare
is_a: MONDO:0018814 {source="https://orcid.org/0000-0002-7371-8158", source="https://orcid.org/0000-0003-0113-912X"} ! non-SCID combined immunodeficiency
relationship: RO:0002573 HP:0000007 {source="https://orcid.org/0000-0002-7371-8158", source="https://orcid.org/0000-0003-0113-912X"} ! has modifier Autosomal recessive inheritance
property_value: IAO:0000233 "https://github.com/monarch-initiative/mondo/issues/5261" xsd:anyURI
But no link to COPG1?

to do:

[ ] import COPG1 gene
[ ] add axiom to MONDO:0800136 non-severe combined immunodeficiency due to COPG1 deficiency

@twhetzel can you take care of this?

Sorry, I missed this one! Yes, I can do that. I'll add this to the Nov board so it's tracked in a release board, but will be in Dec release.
There is now a gSheet to add any imports needed when we do this step for the Mondo Release SOP.

Importing the gene is blocked by an issue where the refresh-merged is running out of memory.


nipapd: Fix override of configuration params

With the change from optparse to argparse, the override of configuration parameters from the config file with CLI arguments stopped working. This was due to argparse assigning the default value "False" to arguments with action store_true, while optparse assigned None. This was fixed by explicitly setting the default value to None.
Also did some cleanup of the code where the override is performed.
Fixes #1044

LGTM


./maintainers/scripts/check-by-name.sh: delete broken -I argument

Running CI locally is broken becauses the -I argument:

Clobbers $NIX_PATH
Is wrong for two reasons:

Has too many .. elements, relative to the script's location
Isn't relative to the script's location (as with *.nix files),     since shell scripts and POSIX in general interpret paths     relative to the current working directory, not the canonical     path of argv[0]

Is inconsistent, since this script has symlinks pointing at it   from different depths in the repository

There is no way to set this flag statically in a way that will work everywhere.  The caller needs to use $NIX_PATH, or the script needs to take the -I value as an argument.
This commit deletes the static -I flag.

Including this in https://github.com/NixOS/nixpkgs/pull/284765


Eliminate many Function clones

This speeds up compilation of the Hello, World! app by ~33% both natively and in the browser.
That still puts it in the seconds range, which isn't great, but baby steps. :)
The majority of the time left is almost evenly split between generating Rust/JS-compatible names for types/functions and actually constructing the function objects. I'm going to dig in a bit on the former to see if I can speed that up (it's kinda crazy how long that's taking), but for the latter the only solution is to make function creation lazy, which I have been avoiding, but maybe I shouldn't?

The test suite perf impact is much more modest at around 5-10% faster. Probably because of the lockfile contention serializing the compilation between runs.


Update calculating features to handle multiple paths

calculate_feature_matrix can now calculate features on entitysets where
there are multiple paths between two entities ("diamond graphs").
The basic algorithm:

Construct a trie where the edges are relationships and each node
contains a set of features. Also construct a trie with the same
structure for storing dataframes.
Traverse the trie using depth first search. For each node:

Get a dataframe for the entity (of instances related to the
parent).
Add variables linking the entity to its ancestors.
Recurse on children. After this is done all feature dependencies
will have been calculated and stored in the dataframe trie.
Group the features for this node in the trie.
Calculate the features of each group.

Add Trie class.
Make Relationship hashable.
Rename FeatureTree to FeatureSet
Use feature.unique_name instead of hash in dicts. Features should not
be used in dictionaries and sets because they do not support equality.
The equality operator is overloaded to produce a new feature instead
of comparing features. We have instead been using feature hash values,
but this could potentially lead to bugs due to hash collisions. This
commit instead uses the feature's unique_name where the hash had been
used. The unique name contains the same information that is used to
generate the hash, so it should not lead to any collisions.

See #543.

@kmax12 I believe I have addressed all the comments. I also did some reorganization and added comments to try to make it clearer. Back to you!

@kmax12 this is ready to be re-reviewed. There are three things I know of left to do, but I wanted to check with you whether it makes sense to do them here or in separate PRs:

Remove profile. Since it is technically public API.
Remove PandasBackend. Since we might want to discuss this more.
Refactor approximate_features to not use get_pandas_data_frame.

I've updated the approximate logic to handle entitysets with multiple paths. I have also started removing PandasBackend, although we might still want to discuss that.


Do not count in pipelined task when calculating ready tasks number

What this PR does / why we need it:
Do not count in pipelined task when calculating ready tasks number because we could not make a promise that they will get allocated on next schedule. They might not be allocated for following cases:

Pipelined resources are allocated to other pods by other schedulers.
A job with higher priority comes in, and takes pipelined resources.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

Do not count in pipelined task when calculating ready tasks number.

However we should count in pipelined tasks when preempting. Fix the problem.

There seems no errors in the travis-ci log.
/retest

@k82cn How could we trigger retest like bots in kubernetes repo?

sure :)

What job are you wanting to retest? I don't see a failed prowjob in the status contexts. Do you want to convert the travis workflow to a prow job?

@fejta Thanks for it! We need to convert it to a prow job.

LGTM overall, just some suggestion on the func name.

@k82cn PTAL

/lgtm


Crunchyroll Status Update Feature

I'm not sure what the possibility (or the difficulty) of this being implemented is, but is there a way to have livestreamer update the Crunchyroll watched status as it is streaming.
In other words, Crunchyroll keeps track of what you watch and shows the latest episode in your queue. And it would be useful to have livestreamer update as you watch so your queue is accurate.

+1

This would be greatly appreciated. +1


Update device-control-report.md

Device Control Report is also covered in MDE P1.

Learn Build status updates of commit 31f6187:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/security/defender-endpoint/device-control-report.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 8eb4078:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/security/defender-endpoint/device-control-report.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 5bad99b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/security/defender-endpoint/device-control-report.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Update some dependencies

Circe 0.8
Circe-Jackson 0.8
Finagle 6.44 (Util 6.43, TS 1.29, etc)

Pending finagle-oauth2 release (since we're here I think we should move that out of this repo so it's easier to bump dependencies).

Codecov Report

Merging #776 into master will increase coverage by 0.77%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #776      +/-   ##
==========================================
+ Coverage    80.8%   81.57%   +0.77%
==========================================
  Files          39       39
  Lines         646      646
  Branches       28       28
==========================================
+ Hits          522      527       +5
+ Misses        124      119       -5

Impacted Files
Coverage Δ

core/src/main/scala/io/finch/Input.scala
100% <0%> (+12.5%)
:arrow_up:

Continue to review full report at Codecov.

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


MPS backend support

Dear Philip Meier,
Is it possible for light-the-torch to support MPS backend (Apple Silicon) in the near future?
Thanks,
Ben

Hey Beniot :wave: Correct me if I'm wrong, but I'm under the impression that the macOS wheel automatically includes support for the MPS backend. At least I cannot find any installation instructions. Are you facing any issues that would indicate the contrary?

@benpresles You can check if your torch version has MPS support by reviewing https://pytorch.org/docs/2.5/notes/mps.html. Around PyTorch 1.13 was when MPS support started to be included. light-the-torch can install latest PyTorch versions, so give it a try and report back here with your results.

My mistake. The problem I have does not come from light-the-torch, but from SlicerPyTorch (https://github.com/fepegar/SlicerPyTorch), which uses (badly?) light-the-torch to install the correct version of PyTorch.

If I install ltt directly (in a virtual environment) and then PyTorch by doing "ltt install torch", the following wheel is downloaded https://download.pytorch.org/whl/cpu/torch-2.5.1-cp311-none-macosx_11_0_arm64.whl which supports MPS. Everything is fine.
When I run SlicerPyTorch and ask the extension to install PyTorch, it downloads the following wheel https://download.pytorch.org/whl/cpu/torch-1.8.1-cp39-none-macosx_10_9_x86_64.whl which is an x86 wheel that does not support MPS.

I suspect you previously downloaded an older torch version which is located in your pip cache. On Windows this is located at "%LOCALAPPDATA%\pip\cache" and on macOS at "~/Library/Caches/pip".
SlicerPyTorch provides the PyTorch Utils module where you can specify a torch version requirement such as ">=1.12". Reminder to put that version requirement into the "Torch version requirement" field and not the "TorchVision version requirement" field.
See https://discourse.slicer.org/t/error-in-pytorch-installation/39880/10 for more details.

First, I deleted my pip cache as suggested by running "python3 -m pip cache purge". Then I tried to install:

PyTorch with SlicerPyTorch without specifying any version. As before, I get the x86 1.8.1 version.
PyTorch with SlicerPyTorch specifying >=2.5. I get the following error: "ERROR: No matching distribution found for torch>=2.5".
PyTorch with SlicerPyTorch specifying >=2.2. I get the x86 2.2.2 version.

Do I get x86 versions of PyTorch because Slicer 5.6.2 is Intel based?

PyTorch with SlicerPyTorch without specifying any version. As before, I get the x86 1.8.1 version.
PyTorch with SlicerPyTorch specifying >=2.2. I get the x86 2.2.2 version.

Good to hear that you were successful with updating the torch version by way of using SlicerPyTorch's PyTorch Utils and the torch version requirement field.

Do I get x86 versions of PyTorch because Slicer 5.6.2 is Intel based?

3D Slicer only provides x86_64 binaries. That means the embedded python in the Slicer application is x86_64 based as well and why you get x86_64 torch whls. The 3D Slicer application runs on your macOS machine through Rosetta 2. Slicer does not currently provide native ARM64 binaries. Adding ARM64 support is currently being tracked in https://github.com/Slicer/Slicer/issues/6811.
For now, you will have to use latest torch 2.2.x as torch deprecated x86 builds on macOS for all newer versions.
https://dev-discuss.pytorch.org/t/pytorch-macos-x86-builds-deprecation-starting-january-2024/1690

OK, thanks for your help and explanation. So I guess I have to wait for an ARM64 version of Slicer to get an ARM64-based embedded version of Python, so I can get an AMR64-based version of PyTorch that supports MPS, right? Do you know when an Apple Silicon version of Slicer will be available?

Yes that is correct. There is no official timeline for native ARM64 binaries for use on Apple Silicon. I would guess not likely before March 2025.


Easiest way to test

https://github.com/pebble-dev/mobile-app/issues/251#issuecomment-2096710970
This sounds interesting
What is the easiest way to test this? Are there compiled versions on FDroid anywhere?

Please do not keep opening issues for the same thing.  The app is not in a state that is really ready for general testing by noninvolved users (i.e., by whoever finds it on FDroid).  If you would like to discuss this, or to help test the app, feel free to drop into the Rebble Discord server.  Thanks!

I wasn't aware there was a discord server. I'll see if I can find it


Introduction of new Common folder

To get the codebase more into modular design in the future a new folder src/Common is introduced. There should be code which is widely used in the whole codebase (for example baseuint was in "Util" before and was used in "LLC", "LLD", "TAO", "Legacy")

No, this is not our style. We do not have a common folder because each subfolder has their own unique uses, LLC is for Cryptographic function,s uint1024 will not be used anywhere else.

No, this is not our style. We do not have a common folder because each subfolder has their own unique uses, LLC is for Cryptographic functions, uint1024 will not be used anywhere else.

I don't get this "uint1024 will not be used anywhere else.". There are 75 includes of this fiile in the whole codebase. So it is used everywhere

You do not use 1024 bits for anything but cryptography, genius.


Update SDK to be compliant with spec v0.2.0

Update the SDK to be compliant with the v0.2.0 spec.
Flag Evaluation API

[x]  #116 - Have different methods for float and int

Providers

[x]  #119 - Remove context transformers. Add provider hooks

Evaluation Context

[x]  #117 - Ensure context merging behavior is correct
[x]  #120 - Add the ability to fetch all custom fields
[x]  #121 - Ensure evaluation context keys are unique

Hooks

[x]  #119 - Ensure provider hook are correctly ordered

Full Changelog: https://github.com/open-feature/spec/compare/v0.1.0...v0.2.0

Still remaining:
In the spec, but not in our tests:
  4.4.7: If an error occurs in the before hooks, the default value MUST be returned.
  3.2.1: The API, Client and invocation MUST have a method for supplying evaluation context.
  3.2.2: Evaluation context MUST be merged in the order: API (global) - client - invocation, with duplicate values being overwritten.
  3.1.4: The evaluation context fields MUST have an unique key.

Done. We'll call this ticket done when #43 is resolved.

Great, thanks Justin.

Ah, sorry.  I'll leave it alone 😃


Node.js  TypeScript team Meeting 2024-09-25

Time
UTC Wed 25-Sep-2024 15:30 (03:30 PM):

Timezone
Date/Time

US / Pacific
Wed 25-Sep-2024 08:30 (08:30 AM)

US / Mountain
Wed 25-Sep-2024 09:30 (09:30 AM)

US / Central
Wed 25-Sep-2024 10:30 (10:30 AM)

US / Eastern
Wed 25-Sep-2024 11:30 (11:30 AM)

EU / Western
Wed 25-Sep-2024 16:30 (04:30 PM)

EU / Central
Wed 25-Sep-2024 17:30 (05:30 PM)

EU / Eastern
Wed 25-Sep-2024 18:30 (06:30 PM)

Moscow
Wed 25-Sep-2024 18:30 (06:30 PM)

Chennai
Wed 25-Sep-2024 21:00 (09:00 PM)

Hangzhou
Wed 25-Sep-2024 23:30 (11:30 PM)

Tokyo
Thu 26-Sep-2024 00:30 (12:30 AM)

Sydney
Thu 26-Sep-2024 01:30 (01:30 AM)

Or in your local time:

https://www.timeanddate.com/worldclock/fixedtime.html?msg=Node.js+Foundation+TypeScript team+Meeting+2024-09-25&iso=20240925T1530
or https://www.wolframalpha.com/input/?i=03PM+UTC%2C+Sep+25%2C+2024+in+local+time

Links

Minutes Google Doc: https://docs.google.com/document/d/1wPXj8L_WGfRhBG_S_clmBG6tbRLgBXraAMsgrC03u0U/edit

Agenda
Extracted from typescript-agenda labelled issues and pull requests from the nodejs org prior to the meeting.
Invited

Typescript team: @nodejs/typescript

Observers/Guests
Notes
The agenda comes from issues labelled with typescript-agenda across all of the repositories in the nodejs org. Please label any additional issues that should be on the agenda before the meeting starts.
Joining the meeting
https://zoom.us/j/95749675148

link for participants: <>
For those who just want to watch We stream our conference call straight to YouTube so anyone can listen to it live, it should start playing at https://www.youtube.com/c/nodejs+foundation/live when we turn it on. There's usually a short cat-herding time at the start of the meeting and then occasionally we have some quick private business to attend to before we can start recording & streaming. So be patient and it should show up.
youtube admin page: https://www.youtube.com/my_live_events?filter=scheduled

Invitees
Please use the following emoji reactions in this post to indicate your
availability.

:+1: - Attending
:-1: - Not attending
:confused: - Not sure yet

@nodejs/typescript I will be on PTO, if someone else wants to chair it lmk or we can cancel

I'm on a work trip. I could join for the first half

It seems like a lot of nos and not sures, can we consider this instance cancelled?

Yes, let's.
I seem to not have the power to close the issue though 🤔


Client API Incompatiliby with Utilized MinIO Version May Break Initial Setup

As discussed in #242, we are using an old MinIO version, due to a deprecated feature related to backing storage and how it relates to the way DMOD is designed.  It turns out that newer versions of the MinIO client applications have a minor breaking change when used with the old service version.
The break relates to how access policies are set.  In short, the version used in DMOD requires the admin policy set command and does not support the admin policy attach command.  The reverse is the case for new versions of the client.
On a superficial level, this breaks the minio_init.sh helper script.  Updates are pending which will at least help exit cleanly in problem situations, but not to work around them.
More importantly, it isn't possible to initialize the DMOD MinIO services - and thus, a DMOD deployment - using the currently configured version, without an older version of the MinIO client application.

Looks like https://github.com/minio/mc/releases/tag/RELEASE.2023-03-20T17-17-53Z is the breaking release.

Verified that RELEASE.2023-03-20T17-17-53Z is the first version with the issue.
Based on how we check the version of the mc command in scripts/minio_init.sh, you can not use go install<EMAIL_ADDRESS>to get the last working version. You will need to either download a binary for that tag or clone the repo and run make build. Verified that this is does work, at least for me.


chore: upgrade to 0.6

What I did

fixes: APE-491
How I did it
How to verify it
Checklist

[ ] Passes all linting checks (pre-commit and CI jobs)
[ ] New test cases have been added and are passing
[ ] Documentation has been updated
[ ] PR title follows Conventional Commit standard (will be automatically included in the changelog)

https://github.com/ApeWorX/ape-etherscan/pull/69


[hotfix] Add validators for User.social

Purpose:
Add backend validators for User.profile.
Changes:

Added validator/tests for:

Twitter
GitHub
orcid
Google Scholar
LinkedIn
Impact Story
ResearcherID

Added ProfileValidationError which can hand short/long error
messages to error.mako for more informative user feedback

Side Effects:
This will could cause a lot of errors to be thrown whenever User.save() is called.  Migration @sloria ?
Notes:
Closes-Issue: #3513

@sloria needs to be re-run post Travis fix.

The fix for Travis requires a pull from Develop, which will handily trigger another Travis check.

Thanks @brianjgeiger -- ended up making this a feature instead of a hotfix in PR #3754


Dota 2 Caption

Dota 2 Caption

Doesn't follow the guidelines set in https://github.com/devcer/captions-for-ig/issues/1 ! Please resubmit to get this merged.


Assert fail with h3-29 lsquic 2.20.0

Hi,
We are seeing Assert failure when using the IETF draft versions and trying to do multiple connections with single engine. This is not seen for Q046 but only for IETF versions.The error does not happen where we run our software with a separate engine for each connection.
Following is the environment:

uname -a => Linux paul-VM 4.13.0-36-generic #40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

commit b1a7c3f944b7d64e12e3a0b6587e0bfb1465bad6 "Release 2.20.0"

engine setting: version=h3-29 assert fail in client

running multiple connections concurrently. Note this test run was valgrind CLEAN.

Debug log:

16:16:41.265571 [DEBUG] [QUIC:71BED771DBD0B112] event: sent packet 44, type Short, crypto: forw-secure, size 37, frame types: ACK, ecn: 0, spin: 0; kp: 0, path: 0, flags: 8421928; Q: 0; L: 1
16:16:41.265577 [DEBUG] [QUIC:71BED771DBD0B112] sendctl: packet 44 has been sent (frame types: ACK)
16:16:41.265581 [DEBUG] [QUIC:71BED771DBD0B112] event: sent packet 45, type Short, crypto: forw-secure, size 1252, frame types: STREAM, ecn: 0, spin: 0; kp: 0, path: 0, flags: 41984520; Q: 0; L: 1
16:16:41.265591 [DEBUG] [QUIC:71BED771DBD0B112] sendctl: packet 45 has been sent (frame types: STREAM)
16:16:41.265594 [DEBUG] [QUIC:71BED771DBD0B112] bw-sampler: add info for packet 45
16:16:41.265598 [DEBUG] [QUIC:71BED771DBD0B112] sendctl: set retx alarm to<PHONE_NUMBER>265484, which is 16000000 usec from now, mode RETX_MODE_RTO
16:16:41.265602 [DEBUG] [QUIC:71BED771DBD0B112] event: sent packet 46, type Short, crypto: forw-secure, size 1252, frame types: STREAM, ecn: 0, spin: 0; kp: 0, path: 0, flags: 41984520; Q: 0; L: 1
16:16:41.265605 [DEBUG] [QUIC:71BED771DBD0B112] sendctl: packet 46 has been sent (frame types: STREAM)
16:16:41.265608 [DEBUG] [QUIC:71BED771DBD0B112] bw-sampler: add info for packet 46
16:16:41.265612 [DEBUG] engine: decref conn 71BED771DBD0B112, 'HOK' -> 'HK'
16:16:41.265614 [DEBUG] engine: send_packets_out: sent 3 packets
16:16:41.265618 [DEBUG] engine: decref conn 71BED771DBD0B112, 'HK' -> 'H'
16:16:41.265621 [DEBUG] [QUIC:71BED771DBD0B112] conn: not tickable
16:16:41.265625 [DEBUG] engine: incref conn 71BED771DBD0B112, 'H' -> 'HA'
16:16:42.015722 [DEBUG] eng-hist: 16:16:42: pi: 0; po: 3; +mc: 0; -mc: 0; +fc: 0; -fc: 0

stack trace ===>

lsquic_full_conn_ietf.c:4280: generate_path_chal_frame: Assertion `path_id == conn->ifc_mig_path_id' failed.
Process terminating with default action of signal 6 (SIGABRT): dumping core
at 0x5D39438: raise (raise.c:54)
by 0x5D3B039: abort (abort.c:89)
by 0x5D31BE6: __assert_fail_base (assert.c:92)
by 0x5D31C91: __assert_fail (assert.c:101)
by 0x13C947B: generate_path_chal_frame (lsquic_full_conn_ietf.c:4280)
by 0x13C9A0E: generate_path_chal_1 (lsquic_full_conn_ietf.c:4340)
by 0x13D69A4: ietf_full_conn_ci_tick (lsquic_full_conn_ietf.c:7695)
by 0x13A9494: process_connections (lsquic_engine.c:2657)
by 0x13A6BDA: lsquic_engine_process_conns (lsquic_engine.c:1902)

Can you please check the trace and let us know? Thanks.

Interesting!  The code looks like this:
    /* For now, we only support sending path challenges on a single path.
     * This restriction may need to be lifted if the client is probing
     * several paths at the same time.
     */
    if (!(conn->ifc_flags & IFC_SERVER))
        assert(path_id == conn->ifc_mig_path_id);

This means that the connection is not migrating.  Then how did it get a new path?  (Path number 1, as seen by the name of the generate_path_chal_1() function call.)
One of the following, then, must be true:

the server's address changed
the client's address changed

The former would be odd, so I am guessing that you are using more than one socket?  If so, lsquic is not prepared for this scenario.  (Although this may be as simple as removing that assertion, but we'll have to think about it a little...)
To confirm my guess, please have a look at the log file again.  Look for messages that contain the string "record path" -- these will contain both local and remote addresses.

Hi Dmitri,
some more information -
with NDEBUG enabled the assert does not hit.  but a large portion of connections drop and do not complete.
we are using a proprietary UDP stack directly through a userspace ethernet driver.
we are not using Linux-kernel UDP sockets.
Paul

Interesting! The code looks like this:
    /* For now, we only support sending path challenges on a single path.
     * This restriction may need to be lifted if the client is probing
     * several paths at the same time.
     */
    if (!(conn->ifc_flags & IFC_SERVER))
        assert(path_id == conn->ifc_mig_path_id);

This means that the connection is not migrating. Then how did it get a new path? (Path number 1, as seen by the name of the generate_path_chal_1() function call.)
One of the following, then, must be true:

the server's address changed
the client's address changed

The former would be odd, so I am guessing that you are using more than one socket? If so, lsquic is not prepared for this scenario. (Although this may be as simple as removing that assertion, but we'll have to think about it a little...)
To confirm my guess, please have a look at the log file again. Look for messages that contain the string "record path" -- these will contain both local and remote addresses.

Hi Paul,
To understand what is happening in your scenario, look at the log messages.  To quote my previous comment:

To confirm my guess, please have a look at the log file again. Look for messages that contain the string "record path" -- these will contain both local and remote addresses.

I will revert our workaround and gather some logs.
However, I need to ask: on your side, does your test battery include an automated test that creates many concurrent outbound connections on one engine?
Paul

Hi Paul,
To understand what is happening in your scenario, look at the log messages. To quote my previous comment:

To confirm my guess, please have a look at the log file again. Look for messages that contain the string "record path" -- these will contain both local and remote addresses.

Not just tests: we have production code creating many client connections.  You can also use the example program http_client to create many connections.

here are the logs and a pcap
https://drive.google.com/file/d/1b5K2BR03JkhUNz2suq5PShAUwdsgKiUk/view?usp=sharing
please let me know if you need more info.
this may not be related:
root@mypc:~/quic-tools# ./http_client -H <IP_ADDRESS> -p /index.html -o version=Q046 -n 10 -r 10
08:54:54.826 [ERROR] engine: cannot have more than one connection on the same port
08:54:54.826 [ERROR] connection failed

Not just tests: we have production code creating many client connections. You can also use the example program http_client to create many connections.

Update:
This is a bug in my code, and not a problem with lsquic.
I will provide an update this week.

Suma, here was the typo that was causing all this:
static int  send_packets (const struct lsquic_out_spec *specs, unsigned count)
{
const struct service_port *sport;
int i;
 for (i = 0; i < count; i++) {
     sport = specs[i].peer_ctx;
     assert (sport->magic == SPORT_MAGIC);

   (*the_sndpkt) (specs[i].iov, specs[i].iovlen, specs->local_sa, specs->dest_sa, sport->parent_instance);

   (*the_sndpkt) (specs[i].iov, specs[i].iovlen, specs[i].local_sa, specs[i].dest_sa, sport->parent_instance);  // fixed

}
return count;
}


Client-only page

Describe the feature
Importing a library that is not compatible with SSR in a page may result in an error like window is undefined.

<template>

</template>

We need to manually extract it to a separate component to the components folder and import it in the page, even though this component may only be used once.

<template>

</template>

<template>
<ClientOnly>
  <PageComponent />
</ClientOnly>
</template>

Maybe we can add a clientOnly: boolean field to definePageMeta macro to improve DX. Wrapping this page to ClientOnly for end users.
I know we already have routeRules. However, I still want to server render the layout when navigating to this page.
Additional information

[X] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

You can use routeRules to achieve that: https://nuxt.com/docs/guide/concepts/rendering#route-rules.

You can use routeRules to achieve that: https://nuxt.com/docs/guide/concepts/rendering#route-rules.

Please read my last sentence.

I know we already have routeRules. However, I still want to server render the layout when navigating to this page.

routeRules will render all the things on client side when navigating to that page via address bar. But I want to render the layout on server side like other pages to keep it consistent but only leave the page content to client side.

Good @danielroe

I had the same problem

is someone on it?
would love to make my first contribution.

@danielroe fire


Adding "title" attrib to the popup image

within src/js/image.js
we have
img.alt = item.el.find('img').attr('alt');
which passes the "alt" attrib of the base image to the main popup.
can we add:
img.title = item.el.find('img').attr('title');
below that line of code which will add the "title" attrib.
I'd do it myself, but not got the build stuff installed
I guess "git clone"
git add
git commit
git push
(etc)
on untested code is bad
thanks

yes you can :) It will then show the title when the mouse hovers over the image.


⚠ File access has degraded performance

In 16fac1b, File access (https://fyle.uk/file/fish) experienced degraded performance:

HTTP code: 503
Response time: 24089 ms

Resolved: File access performance has improved in 7d9f7ae after 17 minutes.


Issues running Storybook with Vite builder in Docker environment

We have a docker compose setup that runs our React app and Storybook in two separate containers.
Recently we changed our builder to Vite, and also updated Storybooks builder to this new Vite builder plugin.
When firing up the Storybook Docker I am getting the following error for all of our components with a Storybook file
al-storybook-dev  | 12:55:19 AM [vite] Internal server error: Parse error @:8:132
al-storybook-dev  |   Plugin: storybook-vite-inject-export-order-plugin
al-storybook-dev  |   File: /home/node/app/src/v2.2/components/Card/Card.stories.js
al-storybook-dev  |       at parse (/home/node/app/node_modules/es-module-lexer/dist/lexer.cjs:1:402)
al-storybook-dev  |       at TransformContext.transform (/home/node/app/node_modules/storybook-builder-vite/inject-export-order-plugin.js:11:35)
al-storybook-dev  |       at Object.transform (/home/node/app/node_modules/vite/dist/node/chunks/dep-1be34a63.js:50399:53)
al-storybook-dev  |       at async transformRequest (/home/node/app/node_modules/vite/dist/node/chunks/dep-1be34a63.js:65167:29)
al-storybook-dev  |       at async viteTransformMiddleware (/home/node/app/node_modules/vite/dist/node/chunks/dep-1be34a63.js:65295:32)

The browser console logs a 404 error for each component

We have Storybook directory setup that separates Storybook into it's own directory in the project root
|-- storybook
 |-- .storybook
 |-- package.json

I'm not very familiar with Docker or Vite configurations, and am wondering if anyone else has encountered this, or knows what is causing the problem?
Storybook Config (.storybook -> main.js)
module.exports = {
    stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
    addons: ["@storybook/addon-links", "@storybook/addon-essentials"],
    core: {
        builder: "storybook-builder-vite",
    },
};

Storybook package.json
{
    "name": "assetlogue-app-storybook",
    "version": "1.0.0",
    "scripts": {
        "dev": "vite",
        "build": "vite build",
        "serve": "vite preview",
        "storybook": "start-storybook -p 6006",
        "build-storybook": "build-storybook"
    },
    "dependencies": {
        "react": "^17.0.0",
        "react-dom": "^17.0.0"
    },
    "devDependencies": {
        "@babel/core": "^7.15.0",
        "@storybook/addon-actions": "^6.3.0",
        "@storybook/addon-essentials": "^6.3.0",
        "@storybook/addon-links": "^6.3.0",
        "@storybook/react": "^6.3.0",
        "@vitejs/plugin-react-refresh": "^1.3.1",
        "babel-loader": "^8.2.2",
        "sass": "^1.37.0",
        "storybook-builder-vite": "^0.0.12",
        "vite": "^2.4.4"
    }
}

Docker compose file
version: "3.5"
services:
    storybook:
        container_name: al-storybook-dev
        image: node:14-alpine
        working_dir: /home/node/app
        volumes:
            - storybook_modules:/home/node/app/node_modules:rw
            - ../../storybook/package.json:/home/node/app/package.json:rw
            - ../../src/:/home/node/app/src:rw
            - ../../public/:/home/node/app/public:rw
            - ../../storybook/.storybook:/home/node/app/.storybook:rw
        command: sh -c "npm install && npm run storybook"
        ports:
            - "6006:6006"
        depends_on:
            - app
        networks:
            - dockernet
volumes:
    storybook_modules:

networks:
    dockernet:

This turned out to be a file extension issue. Vite doesn't recognise React components or files with jsx code in them if they don't also use the .jsx file extension. Slight gotcha when moving from Webpack.


Fix minor compilation warnings

With migration to SPM 5.3 (Xode 12) a few compilation warnings have appeared:

[ ] iOS 8 is not supported as deployment target anymore. Most packages could be fixed to declare iOS 9 as minimum version. For those internally managed this is not an issue, for external packages this has to be proposed as PR.
[x] SPM copies binary transitive dependencies twice because of the notification extension (though it does not reference them). This is clearly an SPM minor issue without negative consequences for us, we should report it.

Only UICKeyChainStore still suffers from the iOS 8 warning. All other dependencies have been updated. It is likely this issue will never be fixed as UICKeyChainStore is not really active. We could fork the project to fix the warning but I am not sure this is worth it.


Run tests

Add a new workflow to be able to run selected tests on a given REF, like:

Tests are passing without the insider sas token in the scripts (and secret removed)


Added setup_flux.bat, the batch file to automate setup in Windows.

Automated cloning, setup and installation of dependencies, requirements and tools needed for running the project.
steps:

Open cmd
Go to folder with setup_flux.bat with cd [path]
run the batch file: setup_flux.bat
And full setup will be done with just one single command. Will make it super easy for users to try the project.

Thank you. Btw really an awesome project.

thank you for the pr @Thepathakarpit ; would it be able to optionally also run the streamlit or cli demo instead of gradio? otherwise the pr lgtm

thank you for the pr @Thepathakarpit ; would it be able to optionally also run the streamlit or cli demo instead of gradio? otherwise the pr lgtm

Thank you. I have added the options for users to choose between running Gradio, Streamlit, or CLI demo at the end of the setup process.

Hey, I'm getting this on setup

Hey, I'm getting this on setup

Run cmd as administrator

@timudk Please check this PR. If you want me to add something else too do let me know.

after running the setup_flax.bat it dowloaded a ton of things, is this normal?
Installing collected packages: sentencepiece, pytz, pydub, mpmath, websockets, watchdog, urllib3, tzdata, typing-extensions, tornado, tomlkit, toml, termcolor, tenacity, sympy, sniffio, smmap, six, shellingham, setuptools, semantic-version, safetensors, ruff, rpds-py, regex, pyyaml, python-multipart, pyparsing, pygments, protobuf, Pillow, packaging, orjson, numpy, networkx, narwhals, mdurl, markupsafe, kiwisolver, importlib-resources, idna, h11, fsspec, fonttools, filelock, ffmpy, einops, cycler, colorama, charset-normalizer, certifi, cachetools, blinker, attrs, annotated-types, aiofiles, tqdm, requests, referencing, PyWavelets, python-dateutil, pydantic-core, pyarrow, opencv-python, markdown-it-py, jinja2, httpcore, gitdb, fire, contourpy, click, anyio, uvicorn, torch, starlette, rich, pydeck, pydantic, pandas, matplotlib, jsonschema-specifications, huggingface-hub, httpx, gitpython, typer, torchvision, tokenizers, jsonschema, invisible-watermark, gradio-client, fastapi, transformers, gradio, altair, streamlit, flux, streamlit-keyup

after running the setup_flax.bat it dowloaded a ton of things, is this normal? Installing collected packages: sentencepiece, pytz, pydub, mpmath, websockets, watchdog, urllib3, tzdata, typing-extensions, tornado, tomlkit, toml, termcolor, tenacity, sympy, sniffio, smmap, six, shellingham, setuptools, semantic-version, safetensors, ruff, rpds-py, regex, pyyaml, python-multipart, pyparsing, pygments, protobuf, Pillow, packaging, orjson, numpy, networkx, narwhals, mdurl, markupsafe, kiwisolver, importlib-resources, idna, h11, fsspec, fonttools, filelock, ffmpy, einops, cycler, colorama, charset-normalizer, certifi, cachetools, blinker, attrs, annotated-types, aiofiles, tqdm, requests, referencing, PyWavelets, python-dateutil, pydantic-core, pyarrow, opencv-python, markdown-it-py, jinja2, httpcore, gitdb, fire, contourpy, click, anyio, uvicorn, torch, starlette, rich, pydeck, pydantic, pandas, matplotlib, jsonschema-specifications, huggingface-hub, httpx, gitpython, typer, torchvision, tokenizers, jsonschema, invisible-watermark, gradio-client, fastapi, transformers, gradio, altair, streamlit, flux, streamlit-keyup

Yes it is normal these all are dependencies

Is it possible to choose where the pytorch_model.bin is downloaded to? I don't have enough space on my C drive.

@timudk Please review and Merge this PR or close it.

hey @Thepathakarpit, is the idea that this bat file lives in the main folder of the repo?, isn't that a problematic use case as you've likely cloned the repo at that point?.


Fix 'unknown language', coreml loading and  bump whisper

These changes are pretty safe. I’ve tested Whisper 1.7.1, and it’s working well with all tests passing; I’m using it right now. The CoreML was functioning, but it broke when I deleted the build directory because it was being pulled from there. I fixed it the same way we handle loading GGML. I think I have a better solution in mind, but since it’s a substantial change, I’ve decided to put it in a separate pull request.

I add the dylibs to the libs folder recently to fix an issue but forgot to load them.
Thanks @PiotrCzapla for fixing that.


The last fix broke the legend display

As the title says.
No custom css, or anything.
Markup:

  Graph

        <canvas id="line" class="chart chart-line" chart-data="data"
                chart-labels="labels" chart-legend="true" chart-series="series"
                chart-click="onClick">
        </canvas>

@lukazadel what version are you using?

1.0.2 stable, with the last code uploaded.

Hej, I get the same plus now I get an error when loading a Pie chart after I load a bar chart.

I saw this same problem when upgrading from 1.0.2 to 1.1.0, and I believe the problem for the legend is the direct result of this change: https://github.com/nnnick/Chart.js/issues/886
The legend is displayed incorrectly because everything is within the span, when the text should actually be outside. My inclination is to think that change should be reverted.

You can redefine the legendTemplate in order to revert to the previous way of generating the legend.
In my case, for a Doughnut Chart:
myDoughnutChart = new Chart(ctx).Doughnut(arrayGroupedByResolution, {
    tooltipTemplate : "<%if (label){%><%=label%>: <%}%><%= value %>" + " (<%= Math.round(circumference / 6.283 * 100) %>%)",
    legendTemplate : "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<segments.length; i++){%>
<span style=\"background-color:<%=segments[i].fillColor%>\"><%if(segments[i].label){%><%=segments[i].label%><%}%>
<%}%>
"
});

Look for the legendTemplate in the Chart.{type}.js source files (Chart.Bar.js, Chart.Line.js, etc.)

Redefining the legendTemplate works, but it seems to me to be fixing it on the wrong end. Note that this change will also break the main page on chartjs.org whenever it's updated to version 1.1.0 - I simulated that by copying the same structure into a jsbin here: http://jsbin.com/likuwekeba/edit?html,console,output
Rather than having everyone who was happy with their legend need to customize their template, I think the template should be changed. If the original intent of the change was just to ensure that the text is enclosed in a tag that can be styled, then maybe there should be two separate spans used, so they can be styled independently. e.g.

  Text Goes Here

Indeed, I would prefer having two spans, to be able to style to my liking.

@eemikula can you drop that in a PR? I'll merge it and package 1.1.1 release

I made a PR with the change as described above, but I just wanted to highlight that if anyone else created a doughnut chart with a legend modeled after the one on the front page of chartjs.org, a CSS change will be necessary to accompany it, because the CSS used there applies to both spans generated by this change. Simply changing it to use the new class will restore the original behavior. I think this is the best change in terms of providing everyone the functionality they might want, but only if everyone knows about that.

Fixed in 1.1.1 release


Add optional Headers param to fetchChain

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#4793  👈
#4792
main

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

Join @jnsdls and the rest of your teammates on  Graphite


ResourceNames.PaymentsAccount returns malformed resource name

Which version of the client library are you using?
V3
Which version of .NET are you using?
.NET Core 3.0
Which operating system (Linux, Windows, ...) and version?
Linux
Actions taken
Please provide a code snippet or steps to consistently reproduce the experienced behavior.
[DO NOT INCLUDE ANY PERSONAL OR SENSITIVE DATA IN YOUR SUBMITTED CODE]
Call to ResourceNames.PaymentsAccount(long, long).
Expected result
Resource name in the form "customers/XXXYYYZZZ/paymentsAccounts/AAAA-BBBB-CCCC-DDDD"
Actual result
Resource name in the form "customers/XXXYYYZZZ/paymentsAccounts/AAAABBBBCCCCDDDD"
Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).
See troubleshooting for how to diagnose problems better.
Anything else we should know about your project / environment
N/A

Fixed in v4.0.0.


Update cve2_if_stage.sv

The variable "instr_is_compressed_out" has been removed in a previous commit but it is still called for assign next_pc.  I replaced it with "instr_is_compressed" since in previous commit,
"instr_is_compressed_out" was "assign instr_is_compressed_out = insert_dummy_instr ? 1'b0 : instr_is_compressed;".

isn't this now outdated?

i think an identical pull request was merged. so i assume this can be closed.


Space Age: Scrap processing generates random output. VERY random

The Problem
A clear and concise description of what the bug is.
Steps to Reproduce
https://factoriolab.github.io/spa/list?z=eJwFwTEKgDAQBMDfbHHVJbGw2UYNCJJGxAcoKQKGiIVY3dudaYxNvKqqiEfjNEvXS5CATBlQmURR8sfxRjkyB9T6cLfVFou2WcJRC73iaicjXjr3A6KAF6k_&v=11#step_27_recipe_tab

Factorio -> Space Age
Planets: Fulgora only
Request:

Maximize Holmium solution
Limit 48 machines making scrap reclining

Expected

Byproducts are ignored

Actual
Produces:

Blue underground belts (26/m)
Heat exchangers (0.06/m)
Personal roboports (637/m)
Recyclers (9/m)
Centrifuges (3.4/m)
Landfill (11/m)
Concrete out of hazardous concrete out of concrete

Environment:

OS: Win10
Browser: Chrome 129.0.6668.101
FactorioLab 3.5.5

Additional context
Solved, 15ms, cost: -2639999999447.83

While I fully appreciate that this is not the desired output, I'm not really sure this qualifies as a bug. What specifically about the solution to you think is a bug? The recycling recipes are kind of a nightmare, but you can exclude them or set the tech to not researched.

While I fully appreciate that this is not the desired output, I'm not really sure this qualifies as a bug. What specifically about the solution to you think is a bug? The recycling recipes are kind of a nightmare, but you can exclude them or set the tech to not researched.

Scrap recycling produces stone, ice, and holmium ore, all of which are required to make a holmiun solution and none of which can be obtained – in any manner – by assembling or disassembling any other resource or material (except for rock formations & ruins) on Fulgora.

Hm. I'm a bit baffled to why it considers that the ideal solution, I admit. I don't see how producing a surplus of random items would improve the solution cost.
You can assign a surplus cost and it will at least stop that nonsense, but overall the solution still seems nonsensical to me. I'll have to look into it later, but I have to assume the solver has a reason for what it's doing.

OK, I think I see what the problem is.
You've set the "Maximize" value extremely high, at 20K. Generally I use a value of "1".
Because the value is SO, high, effectively, I think the numbers get so huge that the whole solver starts to lose precision with the massive cost numbers, and suddenly it seems 'just fine' to have all this extra production.
Setting your maximize value to "1", it looks like the results are perfectly reasonable.
All this being said - I don't think this is a "you messed up" situation. The solver really shouldn't care what you put in that field, it should always reduce it down to a ratio of values for all maximize objectives. I'm going to add in some logic that will automatically sum up all the maximize objective values, and divide so that they all sum up to "1".

OK, I think I see what the problem is. You've set the "Maximize" value extremely high, at 20K. Generally I use a value of "1". Because the value is SO, high, effectively, I think the numbers get so huge that the whole solver starts to lose precision with the massive cost numbers, and suddenly it seems 'just fine' to have all this extra production. Setting your maximize value to "1", it looks like the results are perfectly reasonable.
All this being said - I don't think this is a "you messed up" situation. The solver really shouldn't care what you put in that field, it should always reduce it down to a ratio of values for all maximize objectives. I'm going to add in some logic that will automatically sum up all the maximize objective values, and divide so that they all sum up to "1".

BTW, I was just requesting 20k units per minute and then switched the option


feat: allow setting rest config QPS and Burst

Ⅰ. Describe what this PR does
Allow Fluid users to set rest config QPS and Burst to controler client-side throttling for large-scale Kubernetes cluster.
The following command args are supported in Fluid dataset controller and runtime controllers.
      --rest-config-burst int              Burst of rest config. (default 30)
      --rest-config-qps int                QPS of rest config. (default 20)

QPS is default to 20 and burst is default to 30 because it's the default value for controller-runtime.
Ⅱ. Does this pull request fix one issue?

fixes #3737
Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

/test fluid-e2e

/rename feat: allow setting kube client QPS and Burst


lib.data: implement __eq__, __ne__, __repr__ for View.

There is also an alternate version of this PR for discussion purposes: #966.

Superseded by https://github.com/amaranth-lang/amaranth/pull/966.


Added missing comma

There might be a comma missing in devcontainer.json?

Indeed, this is a typo. Thanks for fixing it!


Make aggregator resiliant against local paths

I found why the current data has artifacts from the local setup in it.
The "." isn't actually cwd in the mozpath logic. We should substitute that for absolute paths, probably cwd proper.
@zbraniecki, would you want to take that as a ride-along?

You mean the ../../mozilla-unified/en-US/devtools/client/dom.properties vs en-US/devtools/client/dom.properties ?
Should the path be devtools/client/dom.properties?

You mean the ../../mozilla-unified/en-US/devtools/client/dom.properties vs en-US/devtools/client/dom.properties ?

Yeah.

Should the path be devtools/client/dom.properties?

That could work, too, but that's probably harder to do w/out a deep dive into assumptions on how our files are structured?

Hmm, I took a look, and I'm not sure where the change has to be placed. Can you provide a pointer for me to start @Pike?

I think I got it.

Fixed in https://github.com/projectfluent/arewefluentyet.com/commit/6065fef18c65a5ce3150310360a39fe05894cd64


adding Defender Revert to Official Library

I left the Defender enable broken, so you can use that for test testing.
This line should be deleted too
https://github.com/amidaware/community-scripts/blob/eaf62b855c3994de5296e40d683fc803f0528dd0/community_scripts.json#L578

@wh1te909 Everything looks good, I'll let you merge this one


enable audio cues to be played in parallel when playAudioCues is called

fix #172523
Any consumer wishing to prevent sounds running in parallel can use playAudioCue

fyi @hediet


Create baseline to detect diff

https://stackoverflow.com/questions/46771417/setup-baseline-for-maven-findbugs
According to spotbugs this is still possible:
https://spotbugs.readthedocs.io/en/latest/running.html

-excludeBugs :
Exclude bugs that are also reported in the baseline xml output.

Do you think this is hard to add?
Otherwise I would like to give it a try

Hm.
I did this:

run spotbugs: 100 results
created baseline xml
added one "error"
run spotbugs html: see 101
run spotbugs with baselineFile -> 0
--> but here I would have expected 1, the one I added on purpose


[move-prover] Cleanup benchmarks and add a new benchmark for opaque/ignore opaque

This cleans up the lab including historical data removing all use of jupyterbook and instead generated SVG files included into markdown.
It also adds a new benchmark for comparing opaque vs non-opaque verification, leveraging the new flags for ignoring the opaque pragma. As expected, verification ignoring opaque is significantly slower.
Motivation
Benchmarking
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
NA
Related PRs
NA

Now I am nervous... I am not expecting it to be faster than the opaque/default version...

Now I am nervous... I am not expecting it to be faster than the opaque/default version...

There is something wrong with the benchmarking, so you can relax. Manual results look as expected:
(bench) ~/gh/diem/language/diem-framework/modules: mvp DiemAccount.move
    Finished dev [unoptimized + debuginfo] target(s) in 1.33s
     Running `/home/wrwg/gh/diem/target/debug/move-prover DiemAccount.move`
[INFO] translating module DiemAccount
[INFO] running solver
[INFO] 3.812s build, 4.680s trafo, 2.031s gen, 6.102s verify
(bench) ~/gh/diem/language/diem-framework/modules: mvp --ignore-pragma-opaque-when-possible DiemAccount.move
    Finished dev [unoptimized + debuginfo] target(s) in 0.48s
     Running `/home/wrwg/gh/diem/target/debug/move-prover --ignore-pragma-opaque-when-possible DiemAccount.move`
[INFO] translating module DiemAccount
[INFO] running solver
[INFO] 3.699s build, 4.321s trafo, 1.807s gen, 24.338s verify

Now I am nervous... I am not expecting it to be faster than the opaque/default version...

There is something wrong with the benchmarking, so you can relax. Manual results look as expected:
(bench) ~/gh/diem/language/diem-framework/modules: mvp DiemAccount.move
    Finished dev [unoptimized + debuginfo] target(s) in 1.33s
     Running `/home/wrwg/gh/diem/target/debug/move-prover DiemAccount.move`
[INFO] translating module DiemAccount
[INFO] running solver
[INFO] 3.812s build, 4.680s trafo, 2.031s gen, 6.102s verify
(bench) ~/gh/diem/language/diem-framework/modules: mvp --ignore-pragma-opaque-when-possible DiemAccount.move
    Finished dev [unoptimized + debuginfo] target(s) in 0.48s
     Running `/home/wrwg/gh/diem/target/debug/move-prover --ignore-pragma-opaque-when-possible DiemAccount.move`
[INFO] translating module DiemAccount
[INFO] running solver
[INFO] 3.699s build, 4.321s trafo, 1.807s gen, 24.338s verify

The problem has been identified and fixed. The benchmarking code did not use the new function un_model_builder_with options. Now the result linked to from the PR description looks more reasonable; we are looking at a factor of 4 in worst case scenarios.

Thank you for the quick update! Now the data looks much more reasonable.
4x slower is actually not bad, especially considering that this includes the time of verifying the specs for private functions as well which, in many cases, is not necessary if the spec conditions are removed as well.

/land


Refactor/legacy client

Description
Removed some code that was not being used, renamed base packages and refactored code to leverage more spring boot and spring data functionalities.
Type of change

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
No new testes were needed
Checklist

[x] I have read the CONTRIBUTING doc
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have already been accepted and merged

Further comments
This PR requires #65 to be merged first

Error got from OpenShift deployment:

Error got from OpenShift deployment:

We are fixing it right now

Error got from OpenShift deployment:

We are fixing it right now

Thanks! Looks good now! The new api path also looks good to me!


Syntax highlighting breaks after a line with string interpolation

I'm using tree-sitter-perl through treesitter.nvim
my $var1 = "This is the value of my first variable";

# If there's anything after '${var1}' inside the double quotes highlighting is broken from this point:
my $var2 = "Content of my first variable is ${var1}!";

print('Now evertyhing is broken');

@brneor this should be working now :) Thanks for reporting it.

Yep, it's working indeed. Ty very much!
I've collected some new syntax breaking situations which I'll be reporting on another issue.


fix: 🐛 Correctly handle currency as ticker when configuring DD

Description
When currency was passed as a ticker value, asset balances were not correctly fetched, causing the procedure to fail erroneously. This fixes the logic for getting asset balances as well as handles currency being passed as  a ticker value as well.
Breaking Changes
NA
JIRA Link
DA-1406
Checklist

[ ] Updated the Readme.md (if required) ?

/fast-forward

:tada: This PR is included in version 27.0.0-alpha.7 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 27.0.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


nixos/tests/gitlab: Add additional test cases

Description of changes
This PR implements the following additional test cases for gitlab:

Creating regular users
git clone over ssh and http
git push over ssh
Forking projects
Creating and merging Merge Requests
Opening and closing issues.

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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@ofborg eval

Oh, meh. The editorconfig checks are not done through ofborg. Maybe amend the last commit and force-push to restart the pipeline.

The actions can be restarted manually, follow the details link and the re-run button is at the top.
https://docs.github.com/en/actions/managing-workflow-runs/re-running-workflows-and-jobs

Okay. The only concern I would have is the additional time needed to run those tests, and that it might timeout in Hydra. For now it's probably fine since the new tests only take a little more time compared to the GitLab startup and backup/restore test. But we should keep an eye on that if we want to add more test cases in the future.

The tests fail on hydra either way, since the disk image exceeds the maximum output size (see https://hydra.nixos.org/build/174962912, for example). It's definitely a good idea to keep an eye on the time it takes to run the tests, though - if they timeout on ofBorg or our machines, they're not very useful either.


Export migration events

@vikas95, you'll want to study these changes and perhaps alter the program.  Output is being described in email.


Image guidelines

With the original DevTools Docs repo we had a set of image guidelines for how images should point out information. I'd like us to have the same kind of thing here to try and keep images consistent. This will help people know what things to look out for to find what is trying to be shown.

@Garbee - want to take a stab at this based on the new DevSite UI/UX?

This is now in https://developers.google.com/style/images