WIP: COMP: fixed some clang -Wformat-nonliteral warnings

Not sure if this works with gcc...

@seanm This seems to work on all platforms!

@seanm This seems to work on all platforms!

Do you know if the CI here has gcc with -Wformat-literal enabled?

@seanm  I don't think so
git grep format-literal did not have any responses.

Where/how can we add warnings flags to CI?

I believe you need to set them here and here.

Thanks. But I don't see any -W in either of those. Are no warning flags being set already? Just the compiler's default is used?

CMake's defaults, probably, which might be slightly different from compiler's defaults.


"Announcement" blog post category

Create new "Announcement" blog post category which will act more like a twitter feed with no single-post pages. List the top 5 on the homepage and have a separate page to list all of them with pagination.

@rs59 to define the behavior of this section better.


Running duration test in AWS using memecache session failover jars version 1.6.5 and getting 403 forbitten response after few minutes into the test.

From<EMAIL_ADDRESS>on December 11, 2013 14:26:26
we are using the following settings in the context.xml

WEB-INF/web.xml

Original issue: http://code.google.com/p/memcached-session-manager/issues/detail?id=186

From<EMAIL_ADDRESS>on December 11, 2013 05:34:43
We have sticky session in the AWS with 300 ms in elastic beanstalk to distribute the load on the APP servers. Its a clustor where we have 3 memcache nodes and session failover jars 1.6.5 are also configured. In the Initial stage the test goes well but after 25 minutes(approx), the test starts getting 403 errors.
we have tried various changes like Support context configured with cookies="false" with this change we are manually able to reproduce with the single user. The user logs in the application and navigation to any page throws 403 forbitten error. Can you please let me know what is the solution and if we need to modify any paramters in our context.xml in tomcat7.

From<EMAIL_ADDRESS>on December 30, 2013 23:57:15
Hi Martin,
Can you please update if anyone is working on the issue, i have added more logs and i am surprised to see the memcachedExpirationTime: 0 for few of the sessions and its the same time I started seeing the 403 error in the response as well. Is there any way to set the session timeout in Memcache as well.
I am also suspecting the issue can be similar to the open which some one has also reported.  Thanks in Advance!

From martin.grotzke on January 01, 2014 15:38:06
At first sorry for the long delay!
No, I'm currently not working on this (these days working on tomcat8 support and now pluggable backends / redis support).
Can you provide a step by step guide that allows me to reproduce this issue (including all needed information regarding your app), with the smallest possible session timeout to reduce the time needed for analyzing this?
Please provide the log output you get when you're following this guide yourself, with activated debug logging (check docs for details).
What does "300 ms in elastic beanstalk" refer to, 300 millis of what?
Because you're getting 403 errors it seems you're using authentication - which kind of? Does it matter for this issue that you're using authentication?
What's the configured session-timeout in web.xml?

From<EMAIL_ADDRESS>on January 01, 2014 23:53:56
Hi Martin,
Thanks for the reply.
The background info which will help you to investigate the issue.

Environment details:
Auto Scaling 2:5
Added session failover jars 1.7.0
Stickiness in AWS : 300 seconds (its not 300ms sorry for the typo mistake)
I have conducted the test without session failover jars, I am able to reproduce the error after 5 minutes as we have stickiness 300 seconds (5 minutes) in AWS. Which is correct behavior as the session switching between the app servers will not work after 5 minutes.
We don't see any errors in the app server logs when we start the server its taking the latest jars in the /usr/share/tomcat7/lib location, we also tried to copy the jars /usr/share/tomcat7/webapps/ROOT/WEB-INF/lib location as well
asm-3.3.1.jar
reflectasm-1.01.jar
minlog-1.2.jar
kryo1-1.05.jar
msm-kryo-serializer-1.7.0.jar
kryo-serializers-0.11.jar
memcached-session-manager-tc7-1.7.0.jar
memcached-session-manager-1.7.0.jar
couchbase-client-1.1.4.jar
AmazonElastiCacheClusterClient-1.0.jar

Session details in Web.xml is 30 minutes:

30

I have conducted lot of test to figure out the root case, please see the conclusion below:

Increased Stickiness to 3 hours in AWS, I don't see any 403 error as the session are sticky.
Reduced the Stickiness to 300 seconds, and having the session failover jars in the App servers, the test going fine till 30 minutes approx., but after that its throwing 403 error.
Removing the session failover jars we see the error after 5 minutes as mentioned above.
I have conducted one test with single app server and I don't see any 403 error with session failover jars and stickiness 300 seconds, no errors with high load like 300 users.
I have conducted a lesser load test with 30 users with session failover jars and stickiness 300 seconds and 2 app servers , no errors.

These conclude something wrong going in the memcache as after certain duration in case of high user load like 1000 users with 2 App servers. Its throwing 403 error.
Can you please let me know do we have any session active duration in memcache, as in application session will expire after 30 minutes in case of Inactive users but the test users are active and they are performing various transactions.
I thing this is the problem which other people are also facing in case of load testing. Please look into the issue it will be helpful for other people as well.
Please let me know in case you need any more information to investigate.
Thanks in Advance!

From martin.grotzke on January 02, 2014 04:24:33
Re session expiration in memcached: msm sets the timeout for objects stored in memcached to the session-timeout as configured in tomcat. As an optimization msm updates the session in memcached only if the session was changed by the application. If a session has not been changed by the application, shortly before the timeout (in memcached) msm updates the expiration time in memcached.
What does your test do? Is the session modified on each request?
According to your tests it seems that the number of users impact the results. Is it possible that with many users the cache capacity is exceeded and therefore sessions are dropped?
-> Which node type are you using for your cache nodes / how many memory is available?
-> Can you try to set error_on_memory_exhausted to true?
-> Can you try to determine the max number of users / sessions that you can store in elasticache?

From<EMAIL_ADDRESS>on January 02, 2014 07:51:13
User login and keep on performing the activities for hours (1-2 hour) and exit. No session is not modified on each request.
we are using medium node with 3.75 GB ram. I just checked the Graphs the free able memory is 2+ GB approx. Unused memory 3 GB approx.
I set the error_on_memory_exhausted to true. No errors in the application logs.
I have conducted the test with 2000 users load, I still see 403 errors.
I can give to more details like how many users / Sessions the elasticache can store in few more days.
Can you please investigate as I don't see the problem with the memory on memcache node.
Thanks you!

From martin.grotzke on January 02, 2014 08:22:09
Because you ask me to investigate I repeat things I already asked for:

Please provide a step by step guide that allows me to reproduce this issue (including all needed information regarding your app), with the smallest possible session timeout to reduce the time needed for analyzing this. It would be great if your step by step guide would target a plain tomcat + memcached setup, because I'd be happy if I wouldn't have to spend money for AWS stuff in addition to the time I'm investing for msm maintenance/support. (Btw, I'm thinking about a commercial support offering that allows people to buy time and set priorities for development/support, but I haven't thought about the details enough - if you're interested in this we could chat privately).

Please provide the log output you get when you're following this guide yourself, with activated debug logging (check docs for details).

Because you're getting 403 errors it seems you're using authentication - which kind of? Does it matter for this issue that you're using authentication?


We Don’t Need to Release Dev Things

Summary
Looking at the installed package, we are shipping more than we need to:

Side note here, but we're currently releasing screenshots most of the stuff removed here in our mono-repos.


Private preview?

Description
How do we sign in to the private preview?
Thanks

Thanks for reaching out @lvermeulen ! Can you please work with your GitHub Account Manager to inquire about being added to the private preview?

Hi @luke-engle thanks for your time. I believe I am my own GitHub account manager, so I asked myself and I replied that I don't know about any private preview. So how are we supposed to join this private preview?

@lvermeulen apologies for the confusion! We're ironing out a process for enrolling into the private preview, but for the time being I went ahead and got you added. You should be receiving an email invite shortly that will contain links to get started.

Thank you @ethanis !

I am also willing to sing in for this private preview. Can you please add me in?


Can't attach a file

Hello,
I installed the plugin but when I attach a file I get an error in the webpage:
"A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later."
and no file is attached.
Francesco

Hello @FrancescoTalotta, I have a few questions:

Do you have the newest plugin version?
Does this problem occured in admin page, while uploading file?
If question 2 is correct, could you try again with dev tools console open and look for any error?
It is possible that you are uploading too big file - limitations are in php/nginx configuration. You should see an error in dev console. If it is not this, I will ask more question, please try this path for now.

Hello,
yesterday I installed the plugin with composer. In the composer.json file it says version 1.3.1.  The error appears in the product page and the file I tried to upload was ~170kb. In php.ini I have
memory_limit=512M, upload_max_filesize=128M, post_max_size=8M. I don't use nginx but apache2 so i guess I don't need to set the client_max_body_size. In the dev console I have some errors:
jquery.js:10260 POST https://www.project-a320.com/index.php/admin_fk15to/admin/attachment_file/upload/attachment_type/attachments/key/fcd6ebdee387cc7151a3ace3bff03b5bd8d01e8fd00009fa3e276dae0cc880d8/?isAjax=true 404 (Not Found)
in file file-uploader.js:41
<!doctype html>

        <meta charset="utf-8"/>
<meta name="title" content="Project A320 Magento Admin"/>
<meta name="description" content="Your Own Airbus A320 Cockpit at home"/>
<meta name="robots" content="NOINDEX,NOFOLLOW"/>
<meta name="viewport" content="width=1024"/>
<meta name="format-detection" content="telephone=no"/>
<title>Project A320 Magento Admin</title>
<link  rel="stylesheet" type="text/css"  media="all" href="https://www.project-a320.com/pub/static/version1584269851/adminhtml/Magento/backend/en_US/extjs/resources/css/ext-all.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://www.project-a320.com/pub/static/version1584269851/adminhtml/Magento/backend/en_US/extjs/resources/css/ytheme-magento.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://www.project-a320.com/pub/static/version1584269851/adminhtml/Magento/backend/en_US/jquery/jstree/themes/default/style.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://www.project-a320.com/pub/static/version1584269851/adminhtml/Magento/backend/en_US/css/styles-old.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://www.project-a320.com/pub/static/version1584269851/adminhtml/Magento/backend/en_US/css/styles.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css" />

<link  rel="icon" type="image/x-icon" href="https://www.project-a320.com/pub/media/favicon/stores/1/favicon_2_1.png" />
<link  rel="shortcut icon" type="image/x-icon" href="https://www.project-a320.com/pub/media/favicon/stores/1/favicon_2_1.png" />

Dashboard

Sales
Sales

Operations

Orders

Invoices

@FrancescoTalotta It is something wrong with this path, there is no controller like this in our module. Can add some screen, where do you click?

@bartoszkubicki I'm using Mac Os X. The path is:
/Users/francesco/Documents/Store/ECAM/ECAM_PANEL_Drawing_v3.pdf
Is that what you asked?
Thank you

No I meant path from jquery.js:10260 POST https://www.project-a320.com/index.php/admin_fk15to/admin/attachment_file/upload/attachment_type/attachments/key/fcd6ebdee387cc7151a3ace3bff03b5bd8d01e8fd00009fa3e276dae0cc880d8/?isAjax=true 404 (Not Found). But I see that there is admin contoller, which can have path like this. Can you share screen where you show what exactly do you click? Module has been upgrade heavily last time, so everything should work. Please post magento version you use.

I use Magento ver. 2.3.4
I'm still not sure about what you mean by share screen where I click. Do you want screenshot of the dev console output?

I mean screen where I can see where excatly do you click. Last week I didn't encoutered such an issue on clean magento install.

In the product page I expand Product attachments  then I click on Add attachment, then Browse Files... and then when I select the file and click Open I get the error I wrote to you on the first page, and no file is uploaded.

That's strange, we use this module in one of our project we work on right now and everything is ok? Do you think you can have any module which can interrupt this module? Do you have Magento_Downloadable present and enabled?

Yes, it's there, present and enabled

Ok I will test it in a few days on clean 2.3.4 magento install. I will reach you back next week.

@FrancescoTalotta I acknowledge bug. Solution will be released in 1.3.2. Thank you for your input.

Ok,
hope it will be released ASAP. :)
Thank you

@FrancescoTalotta please update your package to the newest version https://github.com/lizardmedia/product-attachments-magento2/releases/tag/1.3.2 and let me know here if now everything works as expected.

Hello,
now I can attach the file. However I can't download the file. When I click on it, the webpage simply redirects me on the same product page...I guess you can try by yourself to click on it:
https://www.project-a320.com/index.php/a320-switching-panel.html

@FrancescoTalotta I have just tested module on 2.3.3 and all seems to work. I will close this issue. If you have a problem please create new one, but first, check read rights to file you have attached on your server.


Handle installation when not running from a full git checkout

I'm working on setting up a Nix shell environment, which builds nmigen from a checkout that does not contain a full .git directory. In the this scenario, setuptools_scm is installed correctly, but parse/parse_git returns None because there's no active git checkout.
As a fix, I check to see if git is falsey and, if so, return a blank version string.
I've verified that this installs properly from nix via fetchFromGithub

Is this for Nixpkgs?

I might build up to submitting to Nixpkgs, but am just setting up a shell for the moment (I'm a nix noob).
For future travelers, here's an example package definition (note this is against my fork, rather than the merged diff):
    nmigen = python38.pkgs.buildPythonPackage rec {
      pname = "nmigen";
      version = "0.2";

      src = pkgs.fetchFromGitHub {
        name = "nmigen";
        owner = "newhouseb";
        repo = "nmigen";
        rev = "6e585a6ad850cbc02ab730acbb01f17f08eb7152";
        sha256 = "121fa20cd5q9ijbihpcj04j2pil78h2i1gdciq2ysj2vjkg46zk8";
        fetchSubmodules = true;
      };

      doCheck = false;

      propagatedBuildInputs = [ python38.pkgs.numpy python38.pkgs.jinja2 python38.pkgs.pyvcd python38.pkgs.importlib-resources ];
      nativeBuildInputs = [ python38.pkgs.setuptools_scm ];
      preBuild = ''
           export SETUPTOOLS_SCM_PRETEND_VERSION="0.2"
           '';

      meta = {
        homepage = "https://github.com/nmigen/nmigen";
        description = "A refreshed Python toolbox for building complex digital hardware";
      };
    };

I might build up to submitting to Nixpkgs, but am just setting up a shell for the moment (I'm a nix noob).

Nixpkgs should already have an nMigen package.

export SETUPTOOLS_SCM_PRETEND_VERSION="0.2"

Ah I wasn't aware of that. It would have been nicer to return that instead of "" in your patch, though it's not especially important either way (it only really matters for PyPI I think).

Ah, I missed that Nixpkgs already has a package, looking now it's basically what I posted, but better (although pinned to a version from April, before the offending code was landed).
My macro use-case is pinning a deterministic set of of newish {lambdasoc, nmigensoc, nmigen, minerva, etc} with my code, since the aforementioned packages are all (understandably) moving targets.


Sorting by nfs share on backup target page is not sorting properly

Rancher Version: v1.2.0-pre1-rc1
Steps to Reproduce:

Create an environment and enable VM
Go to Backup Target page
Create three targets and have
Name = target1, nfs share = nfsshare4
Name = target2, nfs share = nfsshare6
Name = target3, nfs share = nfsshare5
Sort by nfs share

Results: Sorting by Name, not by share

Expected: Should either sort by share or remove sorting

n/a to modern versions


Retrieve metadata.drd info via SegmentMetadataQuery

Addresses https://github.com/druid-io/druid/issues/1749

@jon-wei there's a few conflicts with the branch

I think we should hold off on this one until #1728 is sorted, since this needs merging logic that I hope will be figured out in that PR

Closed and reopened as #1768 with some merge fixes


[conn-manager] internal values and preservation

Currently, the connection manager delegates entirely to the application the definition of values for each peer. This is not optimal, since some peers may have value to internal subsystems in libp2p, like, for instance, the DHT, where, for instance, it may be important to keep some connections around so that the DHT is well connected.

This should be resolved with peer tagging and the default sorting function for disconnecting peers


Is there a way to parse docstrings in Cython (.pyx) files ?

I have a Cython module that I can import this way : import cython_module.
Its source code is in a cython_module.pyx file, at the same level of other .py files that already work well with mkdocstrings:
.
├── cython_module.pyx
├── predict.py
├── setup.py
└── etc

This cython module contains a class with a docstring:
cdef class Model:
    """
    This is the lower-level class used for inference, it stores the model in an optimized way and features a predict method.

    Attributes:
        trees : The array of trees composing the model.
        nb_trees : The number of trees in the model.
    """

    cdef Tree* trees
    cdef uint16_t nb_trees

When specifying a ::: cython_module in one of the .md files, I get this warning: WARNING -  mkdocstrings.handlers.python: Couldn't read source for 'cython_module': source code not available, and in the generated doc, the only thing showed after "cython_module" is the class name ("Model"), but no docstring, nor attributes.
Is there a way to generate documentation from docstrings in Cython files/modules ?
Thanks!

Could this be:
from Cython.Compiler import Options

# Preserve `__doc__` on functions and classes
# http://docs.cython.org/en/latest/src/userguide/source_files_and_compilation.html#compiler-options
Options.docstrings = True

?

Generally speaking inspect doesn't play nice with Cython. for example, if you try to call inspect.getsource on a Cython function, you'll get a TypeError: TypeError: module, class, method, function, traceback, frame, or code object was expected, got cython_function_or_method

This would be fixed by integrating https://github.com/mkdocstrings/pytkdocs/pull/98

So, do we agree that it would be better integrated with a proper Cython handler?

What's the first step we should take towards making a Cython handler? Would it be a new project under https://github.com/mkdocstrings?

I would expect us to want to use the same rendering settings between Python and Cython within the same project, so instead of a whole new handler, maybe we just want a new collector for Cython. Then we could have some kind of check to see if something being documented comes from Cython, and if so, use the Cython collector instead of the Python collector. In both cases the Python handler would be used.
Would something like this be possible?

(memo for myself, will answer later)
Maybe possible to parse Cython code with this instead of introspecting it:

https://github.com/cython/cython/blob/master/Cython/Parser/Grammar
https://pypi.org/project/antlr-ast/

Hey @suned, @WillDaSilva, the new collector I created, griffe, is able to find and inspect .so and .pyd files, which would be the compiled version of your .pyx files. Would it be enough for you? It would require to actually compile your .pyx files (by "installing" your package I guess, passing through setup.py) so that griffe can inspect the compiles modules. Or maybe you really need to extract data from the .pyx files themselves?
It would be very helpful if you could try griffe on one of your Cython projects. Or maybe share a link to such a project so that I can try it myself :slightly_smiling_face:

Also, @WillDaSilva, sorry for the late answers:

What's the first step we should take towards making a Cython handler? Would it be a new project under https://github.com/mkdocstrings?

Sure, either create the project in your own account and we transfer it to mkdocstrings once it's ready, or we can directly create it in mkdocstrings org and I give you necessary permissions.

I would expect us to want to use the same rendering settings between Python and Cython within the same project, so instead of a whole new handler, maybe we just want a new collector for Cython. Then we could have some kind of check to see if something being documented comes from Cython, and if so, use the Cython collector instead of the Python collector. In both cases the Python handler would be used.
Would something like this be possible?

That makes sense indeed. Let see if griffe would work for compiled Cython modules first. If it doesn't, the new handler could be enhanced with a cython version that calls a special cython extractor indeed.

@pawamoy That sounds great. I'll try out Griffe on one of my projects that uses Cython. Maybe I could add some test cases to it for Cython too, but we'll worry about that after we can verify that it's working at all.

It would require to actually compile your .pyx files (by "installing" your package I guess, passing through setup.py) so that griffe can inspect the compiles modules.

A typical workflow for building docs for a Cython project is to install it (e.g. pip install .), then run the doc builder (e.g. sphinx-build ..., or mkdocs ..., etc.), so as far as I understand it, Griffe should work for this. I suspect it will need certain Cython compilation options enabled, such as linetrace. I'll play around with it, hopefully today, and let you know what I find.

Looks like several projects created with Cython fail with a KeyError. For instance, here is the output from running griffe pandas:
INFO       Loading package pandas
Traceback (most recent call last):
  File "/home/will/.pyenv/versions/workshop/bin/griffe", line 8, in <module>
    sys.exit(main())
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/cli.py", line 234, in main
    packages = _load_packages(opts.packages, extensions, search, opts.docstyle, opts.docopts)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/cli.py", line 89, in _load_packages
    module = loader.load_module(package, search_paths=search_paths)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/loader.py", line 195, in load_module
    top_module = self._load_module_path(top_module_name, top_module_path, submodules=submodules)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/loader.py", line 275, in _load_module_path
    self._load_submodules(module)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/loader.py", line 280, in _load_submodules
    self._load_submodule(module, subparts, subpath)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/loader.py", line 289, in _load_submodule
    member_parent[subparts[-1]] = self._load_module_path(
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/loader.py", line 273, in _load_module_path
    module = self._inspect_module(module_name, module_path, parent)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/loader.py", line 121, in _inspect_module
    return inspect(
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/inspector.py", line 78, in inspect
    return Inspector(
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/inspector.py", line 149, in get_module
    self.inspect(top_node)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/inspector.py", line 160, in inspect
    super().inspect(node)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/base.py", line 38, in inspect
    getattr(self, f"inspect_{node.kind}", self.generic_inspect)(node)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/inspector.py", line 207, in inspect_module
    self.generic_inspect(node)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/inspector.py", line 189, in generic_inspect
    self.inspect(child)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/inspector.py", line 160, in inspect
    super().inspect(node)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/base.py", line 38, in inspect
    getattr(self, f"inspect_{node.kind}", self.generic_inspect)(node)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/inspector.py", line 224, in inspect_class
    self.generic_inspect(node)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/inspector.py", line 189, in generic_inspect
    self.inspect(child)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/inspector.py", line 160, in inspect
    super().inspect(node)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/base.py", line 38, in inspect
    getattr(self, f"inspect_{node.kind}", self.generic_inspect)(node)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/inspector.py", line 249, in inspect_method_descriptor
    self.handle_function(node, {"method descriptor"})
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/inspector.py", line 325, in handle_function
    returns = return_annotation and get_annotation(return_annotation, parent=self.current)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/nodes.py", line 669, in get_annotation
    return _get_annotation(node, parent)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/agents/nodes.py", line 654, in _get_annotation
    return _node_annotation_map[type(node)](node, parent)
KeyError: <class 'str'>

However, griffe does work on at least some Cython projects! I tried it on orderedset, and the output seemed fine as far as I could tell. It may be the case that Cython poses no particular issue for Griffe, and these key errors are unrelated. After all, similar issues were observed on some non-Cython projects using Griffe 0.8.0.

Ah, yes, I'm trying to resolve this issue since yesterday. The thing is: in my own modules, I import future annotations (making them all strings, see PEP 563). But when inspect builds a signature for a function coming from another module that does not import future annotations, its return annotation can be a class like <class 'int'>. So I have to deal with actual Python objects instead of a string. It's simple for builtin types like int, str, etc., but I guess the return annotation could also be a very complex annotation. Anyway, maybe I shouldn't try to reparse the annotation (I noticed I actually don't do it for parameters annotations), but then the JSON serialization will probably fail... I'll keep you posted :smile:

Perhaps you can compile the files being documented yourself using https://docs.python.org/3/library/functions.html#compile
That way you could pass in the flag for the annotations future, ensuring that the annotations are always strings.
This would at least require obtaining the paths to the files that are being processed. Additionally, the order in which they are compiled must match the order in which they are imported. This approach might be infeasible, but I figured I ought to share the idea.
Long-term, there is no guarantee that this ability to get annotations as strings will remain in the language. It is being debated by the Python Steering Council. Presumably there must be some sane way to get the string representations of the annotations from their object forms? I would expect other Python modules that handle annotations, such as MyPy, to also deal with this issue.

This is indeed what I want to do: compile the code into an AST to re-use the utilities I've written for visiting ASTs. But for this, I actually need the string representation of these actual Python objects :smile: Anyway, I think I'll simply go with annotation.__name__ for builtin types, and repr(annotation) for the rest, at least for now. Thanks for sharing ideas :slightly_smiling_face:

Just pushed griffe 0.9.0 with lots of fixes. It doesn't even crash on a good part of the standard-lib now (maybe all of it?) :smile:

Looks good to me. Works on the Cython projects I can't share, as well as Numpy, Pandas, and more. Great work!

So, the new Python handler is now available as "experimental". Data can be extracted from compiled modules, so Cython files are covered (given they are compiled and available on sys.path). Feel free to further comment on this, closing :slightly_smiling_face:

Hello, I have read this thread multiple times and unfortunately still cannot figure out what is going wrong when trying to create documentation for my Cython (.pyx) modules. I am trying to accomplish exactly the same task as @farjasju. I can access the module by inserting ::: quotonic.fock (corresponds to fock.cpython-310-darwin.so as compiled from fock.pyx) in my markdown file for the corresponding page, however, when I build the documentation, I get what appears in the images below rather than what I would expect from the docstrings I've placed in my functions in fock.pyx.

I've also tried inserting ::: quotonic.fock.getDim to access one of the functions directly, yet, this results in the following error:
ERROR - mkdocstrings: Template 'alias.html' not found for 'python' handler and theme 'material'.
ERROR - Error reading page 'fock.md': alias.html
Please let me know what I am missing here! I apologize for my naïvety.

You see all the dunder attributes of the module (__file__, __name__, etc.) because the module is compiled and therefore Griffe (if you're using the new Python handler and not the legacy one) imported it and inspected it. Objects with dunder (double underscore) names are not excluded by default. Try to use the members or filters options to remove them from the rendered docs.
As for the template alias.html not found error, it usually happens when the compiled module "lies" about its __module__ attribute. If you point me to a repository which I can use to replicate the issue, I'll be happy to investigate :slightly_smiling_face: But please open a new issue first!


Adding images using pytube thumbnails

Displaying Images of the video with a link

We can use pytube module to extract thumbnails and display with links

PR #14 Addressed this for the GUI. Also renamed the download_youtube_video file to utils, and built a function for getting the URL's with different qualities.
Only thing left to do for this issue, is implement it within the CLI.

I see


Local FileExistsErrors when using Cloudpathlib with moto

Python 3.11.1
cloudpathlib                    0.13.0
moto                            4.1.4

When Cloudpathlib writes a file to S3, it creates a local file buffer to upload (cloudpath.py:471: in open). When using moto in a pytest session, it clears out the mocked S3 buckets at the end of each test. Obviously when cleaning up its buckets, moto does not clear out the local file buffer written by Cloudpathlib (s3path.fspath). This appears to cause FileExistsErrors when using Cloudpathlib's exclusive write mode functionality.
Example: Two tests that do exactly the same thing -- write a file using mode='x' to a path in a mocked S3 bucket. The second test to run raises a FileExistsError due to the exclusive write mode being applied to the local file buffer which wasn't cleared up by moto after the last test.
Note that s3path.exists() returns False immediately before we try to write to the bucket.
import string
import random
import pytest
import boto3
from moto import mock_s3
from pathlib import Path
from cloudpathlib import S3Path

FILE_CONTENTS = "Lorem ipsum"

@pytest.fixture
def mock_s3_context():
    """Everything under/inherited by this runs in the mock_s3 context manager"""
    with mock_s3():
        # Yield the (mocked) s3 Resource object
        # (see boto3 docs: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/resources.html)
        yield boto3.resource('s3')

@pytest.fixture
def create_mock_bucket(mock_s3_context):
    """Returns a function that allows dynamic creation of s3 buckets with option to specify the name.

    Note: if the bucket already exists, this doesn't overwrite it. Previous contents will remain.
    Caution: If you create multiple objects at the same location, you may get conflicts"""
    s3 = mock_s3_context

    # The following call to Random() creates a locally seeded random generator. This prevents the pytest-randomly
    # seeded global PRN generator from creating the same "random" bucket names for every test.
    local_random = random.Random()

    def _create_bucket(bucket_name: str = None) -> s3.Bucket:
        """Creates a mock bucket, optionally with a custom name.

        Returns
        -------
        : s3.Bucket
        """
        if not bucket_name:
            bucket_name = ''.join(local_random.choice(string.ascii_letters) for _ in range(16))
        bucket = s3.Bucket(bucket_name)
        if not bucket.creation_date:  # If bucket doesn't already exist
            bucket.create()
            print(f"Created mock S3 bucket {bucket}.")
        else:
            print(f"Using existing mock S3 bucket {bucket}.")
        return bucket
    yield _create_bucket

def test_a(create_mock_bucket):
    """Test creating a mock bucket and putting something in it and then retrieving it"""
    bucket = create_mock_bucket('bucket1')
    uri = f"s3://{bucket.name}/test_text.txt"
    s3path = S3Path(uri)
    print(f"Before writing file, s3path.exists() gives {s3path.exists()}")
    if Path(s3path.fspath).exists():
        print(f"The mocked filesystem path {s3path.fspath} already exists")
    with S3Path(uri).open(mode='x') as xwriter:
        xwriter.write(FILE_CONTENTS)
    print(f"After writing file, s3path.exists() gives {s3path.exists()}")
    with s3path.open() as s3txt:
        print(s3txt.read())

def test_b(create_mock_bucket):
    """Test creating a mock bucket and putting something in it and then retrieving it"""
    bucket = create_mock_bucket('bucket1')
    uri = f"s3://{bucket.name}/test_text.txt"
    s3path = S3Path(uri)
    print(f"Before writing file, s3path.exists() gives {s3path.exists()}")
    if Path(s3path.fspath).exists():
        print(f"The mocked filesystem path {s3path.fspath} already exists")
    with S3Path(uri).open(mode='x') as xwriter:
        xwriter.write(FILE_CONTENTS)
    print(f"After writing file, s3path.exists() gives {s3path.exists()}")
    with s3path.open() as s3txt:
        print(s3txt.read())

Perhaps a fix for this could be to clean up the local file buffers used by Cloudpathlib?

Thanks for filing the request @medley56, did you have a chance to look at the docs for testing with cloudpathlib?
https://cloudpathlib.drivendata.org/stable/testing_mocked_cloudpathlib/
We abstract all of the backend, so you shouldn't need to use moto at all to test code that uses cloudpathlib. If that doesn't work for you for your use case, it would be good to know why.
The other option that is helpful is to look at the documentation for clearing cache files. One of those options may work well with the moto approach you have:
https://cloudpathlib.drivendata.org/stable/caching/#clearing-the-file-cache
I'm going to close this for now, but definitely re-open if there is an explicit bug you encounter!

Thanks for the response! I had not seen those docs, are they new? I'm pretty sure I looked for a best practice answer to this about a year ago when I first implemented these tests. Regardless, I will read through those and see if they can help me.
That said, we have a somewhat inconsistent use of cloudpathlib throughout our codebase. We started our project and then discovered cloudpathlib part way through so some calls to S3 are still done using boto3 directly and it's convenient to simply mock out the S3 context using moto; we are slowly working on re-implementing those areas to use cloudpathlib but it's honestly not the highest priority.
I also appreciate the note about pytest scope. Nearly all of our fixtures are default (function) scoped and moto tears down the mock buckets between each test but we had a few tests hanging out that were referencing the same bucket names and object paths, thereby generating the same cloudpathlib local cache filename and resulting in the conflict.
With that in mind, I think your suggestion to clear the local file cache is exactly what I need. I'm going to add that to the pytest teardown phase of my fixtures that use mocked S3 buckets. Our tests might slow down a tiny bit but that's fine. They're just tests.
Your library is great and you are great! Thanks for all your hard work on this (now ubiquitous) tool!


[1.18.2] Crash on world creation with Project: Red - Exploration

Describe the bug
The mod crashes when creating a new world with Project Red: Exploration installed. This is a likely duplicate of a pre-existing issue on Project: Red's GitHub: https://github.com/MrTJP/ProjectRed/issues/1792
To Reproduce
Steps to reproduce the behavior:

Install Project Red and Occultism
Attempt to create a world with the following seed (it probably crashes for many/all seeds, but I've confirmed on this one): -8514774603063900555

Expected behavior
The game will crash with an error about feature cycles.
Screenshots
Not applicable; it's just a crash.
System (please complete the following information):

Occultism Version: occultism-1.18.2-1.84.0.jar
OS: Windows 10
Minecraft Version: 1.18.2 (Forge
Modpack Link and Version, or list of mods:
CBMultipart-1.18.2-<IP_ADDRESS>-universal.jar (https://www.curseforge.com/minecraft/mc-mods/cb-multipart)
CodeChickenLib-1.18.2-<IP_ADDRESS>8-universal.jar (https://www.curseforge.com/minecraft/mc-mods/codechicken-lib-1-8)
curios-forge-1.18.2-<IP_ADDRESS>.jar (https://www.curseforge.com/minecraft/mc-mods/curios)
geckolib-forge-1.18-3.0.57.jar (https://www.curseforge.com/minecraft/mc-mods/geckolib)
modonomicon-1.18.2-1.33.1.jar (https://www.curseforge.com/minecraft/mc-mods/modonomicon)
occultism-1.18.2-1.84.0.jar (https://www.curseforge.com/minecraft/mc-mods/occultism)
ProjectRed-1.18.2-4.16.0-beta-17-core.jar (https://www.curseforge.com/minecraft/mc-mods/project-red-core)
ProjectRed-1.18.2-4.16.0-beta-17-expansion.jar (https://www.curseforge.com/minecraft/mc-mods/project-red-expansion)
ProjectRed-1.18.2-4.16.0-beta-17-exploration.jar (https://www.curseforge.com/minecraft/mc-mods/project-red-exploration)
ProjectRed-1.18.2-4.16.0-beta-17-illumination.jar (https://www.curseforge.com/minecraft/mc-mods/project-red-illumination)
ProjectRed-1.18.2-4.16.0-beta-17-integration.jar (https://www.curseforge.com/minecraft/mc-mods/project-red-integration)
ProjectRed-1.18.2-4.16.0-beta-17-transmission.jar (https://www.curseforge.com/minecraft/mc-mods/project-red-transmission)
SmartBrainLib-forge-1.18.2-1.9.jar (https://www.curseforge.com/minecraft/mc-mods/smartbrainlib)

Additional context

Here is the crash report (minimal environment, NOT the same as the large modpack cited in the original issue): https://paste.gg/p/anonymous/025a8d3f924c430fb4c02920ee47d516
See the original issue on Project: Red's GitHub for more information and context: https://github.com/MrTJP/ProjectRed/issues/1792

Fixed by ProjectRed


Could we connect sslStrict configuration value with GIT_SSL_NO_VERIFY

I think it could solve many issues reported with corporate proxies.
When I set ssl-strict: false, it only works for http calls, but it will fail when I use git command like
https://github.com/bower/bower/blob/2adb0b0807ccf325f3710d6ebf183e5a9b5f1159/lib/core/resolvers/GitRemoteResolver.js#L210
Not I need to change configuration of my git to also ignore SSL certificate, but it could be more comprehensive if we export GIT_SSL_NO_VERIFY=true when ssl-strict=false.
What do you think, I could start to work on PR, but I wonder if it will be accepted and if it should belong to bower or bower-config project
Some links:
https://blog.breadncup.com/2011/06/09/skip-git-ssl-verification/
http://stackoverflow.com/questions/9008309/how-do-i-set-git-ssl-no-verify-for-specific-repos-only

It's a good idea :)


Implement library with proper routing (Fiber etc)

Required before implementing a season/race selector.

Implemented as of 1572c07


Group members are append-only and existing members can't be read

Bicep version
Bicep CLI version 0.27.1 (4b41cb6d4b)
Resource and API version
<EMAIL_ADDRESS>and Microsoft.Graph/groups@beta
Auth flow
Interactive
Describe the bug

Creating a group with members only allow adding new members. Removing a member from the list of members and re-deploying does not remove the member from the actual group.
It is not possible to read group members from a group resource

To Reproduce
Create a resource
resource group<EMAIL_ADDRESS>= {
  displayName: 'Team Fabulous Unicorns'
  mailEnabled: false
  mailNickname: 'teamFabulousUnicorns'
  securityEnabled: true
  uniqueName: 'team-fabulous-unicorns'
  members: [
    'member-guid-1' // replace with actual user guid
    'member-guid-2' // replace with actual user guid
  ]
}

Deploy the resource. Update to the following:
resource group<EMAIL_ADDRESS>= {
  displayName: 'Team Fabulous Unicorns'
  mailEnabled: false
  mailNickname: 'teamFabulousUnicorns'
  securityEnabled: true
  uniqueName: 'team-fabulous-unicorns'
  members: [
    'member-guid-1' // replace with actual user guid
  ]
}

Re-deploy. Look at the group in the Azure portal, it still contains both users.
Also, the following will not work:
resource group<EMAIL_ADDRESS>= {
  displayName: 'Team Fabulous Unicorns'
  mailEnabled: false
  mailNickname: 'teamFabulousUnicorns'
  securityEnabled: true
  uniqueName: 'team-fabulous-unicorns'
  members: [
    'member-guid-1' // replace with actual user guid
    'member-guid-2' // replace with actual user guid
  ]
}

output members string[] = group.members // allowed in editor, but not at deploy time

If I am not mistaken this is a know issue that I think hasn't be documented. Also if I remember correctly there is limit of how many members can be added at single deployment. Most likely this is the same behavior for owners as well?

@mattias-fjellstrom and @slavizh - yes this is a known issue.  I will update the known issues topic with this information. Updating the reference docs with this info is tricky, because the reference is auto-generated based on some cleaned up schema that sources the property descriptions from existing REST API documentation.  Will talk to engineering about possible workarounds there.
Just to summarize:

Group membership/ownership is additive only (i.e. non-destructive).
We have discussed adding a facility/option for making groups membership/ownership updates with "replace" nature.
Groups create/update of membership+ownership is limited to 20 total (i.e. 16 members and 4 owners) in a single "request" (single Bicep resource declaration). Any "true" declarative IaC for group member/owner-ships for > 20 "relationships" would be tricky (with current API implementation).

One thing definitely worth investigating is the output/reference of group members.

Known issues will be updated soon with this info.
Need to investigate output of group members.

Just thoughts
Can we have a construct that says something like this for now
replaceMembers: bool // default false, true = the group will only have whats in the members list  members: [     'string'   ]
In terms of Configuration as Code philosophy I don't see how it is useful to have add and remove constructs in the long term as, to my mind,  the whole point of bicep is to document the intended state of the infrastructure as living code. If you want something else you may as well just do clickOps or adhoc powershell/az calls.
I know the graph API is a bit tricky when it comes to volume requests so perhaps introducing
resource groupmembers<EMAIL_ADDRESS>= [for member in memberlist {  group: mygroup  member: member }]
this would compare against the current state and add and remove as required.

+1 - we should avoid having to declare items to be explicitly removed or anything of that sort. Having a property to switch between additive (PUT-AS-PATCH in ARM parlance) vs replace (strict PUT) semantics is a reasonable way to do it if we need to allow users to make this choice.

switch is not needed if it is fixed. There shouldn't be two modes one if which is not idempotent. Bicep should be idempotent so the RPs. As this is known issue it is better to just be fixed and do not allow for the current behavior.

@slavizh @petersgiles I like the idea of fully adopting IaC/config-as-code philosophy (and going with your second option Pete, to compare against the current state and add and remove as required). However, the one thing that gives me pause here, is that I could reference a pre-existing group that has 10s of thousands of members.  And through the template, if we add idempotent group membership capability without any guard-rails, I could accidentally remove all existing members.  That seems very scary to me - especially if this group was being used to provide access to a high-value application.

@dkershaw10  true but that could be said for any other critical property. People should educate themselves in advance before using it. One thing that could help is What-If functionality so you can see the results before applying them. In Azure what you usually have is things like two APIs. For example let's take Virtual networks. You can define the subnets as part of the virtual networks resource or define subnets as its own resource. In the first case any subnet that is no longer in the configuration will be removed. In the second case you just add additional subnets to those that are part of the virtual network already. I am not sure if you can do the same thing for graph but it is just in the nature of IaC to have proper idempotency.

Thanks.  Yes - we plan to add what-if functionality once extensibility is updated to support it.
Maybe I just struggle to understand why group memberships would be managed through Bicep, or IaC in general.  I get managing groups and maybe even group owners. But members is such a dynamic element, where memberships change often, and updates to memberships are expected to happen quickly to give or remove access to resources/apps. Deploying Bicep files that may "redeploy" a lot of infrastructure, could take hours, just to add a new member...
I actually have a similar question around Privileged Identity Management for Groups - in whether that is a scenario that makes sense for IaC.

@dkershaw10  The way we structure our Bicep templates is like micro-services. For example we will have a template just for deploying entra groups. That template can deploy groups with different configurations based on different Bicep parameters file. That allows doing separate deployments. These separate deployments could be due to environment - prod, dev, etc.; application, etc. This I think answers you questions of deployment taking hours. If we have groups for example where there is delegation to the owners to manage the members we either will not managed those groups in IaC or not manage the members of those groups, only the owners, Not emitting members property is also possible via Bicep with spread operator.

@mattias-fjellstrom @petersgiles @slavizh  We wanted to share a speclet on how we hope to address this issue. Please take a look and let us know what you think.
Modelling relationships in Graph Bicep
Examples of "relationships" in Microsoft Graph are the group members and owners properties.
Current challenges

Relationships are additive only. Removing relationship items from the resource definition does not delete those relationship items in the service. Many/most customers would expect the deployment operation to use replace semantics.
A relationship definition in a single Bicep file may have an unlimited number of items in the array. However, declaring more than 20 items in a Bicep file results in a 400 error during deployment.

Proposal
We propose to introduce:

a deployment level setting to choose replace semantics for relationship properties
a new type that models relationships, so that these can be differentiated from regular string array properties
changes to the extension, so that deployments handle:

an unlimited number of items in a relationship, and
replace semantics, by first reading and then based on the diff, create/update or delete resources.

Deployment level setting
provider microsoftGraph with {
   // By default, the "safe" additive semantics is used (i.e. false)
   useReplaceSemanticsForRelationships: bool
}

If set to true, all relationships defined in the Bicep file will be deployed using replacement semantics.
New relationships type
We'll introduce a new type that will indicate that the property is a relationship. This will directly map to Microsoft Graph's relationship properties (modelled as OData non-contained navigation properties). This concept is not generally present in ARM APIs. This example shows usage of the new type (as opposed to the current string array).
resource group<EMAIL_ADDRESS>= {
  displayName: groupName
  mailEnabled: false
  mailNickname: 'myGroup-2024-06-11'
  securityEnabled: true
  uniqueName: groupName
  owners: {
    relationships: [
        'ae1dbad7-a45f-4b68-b387-d005c458e33d'
        'ae1dbad7-a45f-4b68-b387-d005c458e331'
    ]
  }
  members: {
    relationships: [
        'ae1dbad7-a45f-4b68-b387-d005c458e33d'
        'f0891b1b-cefe-4f15-a1f1-6ca6cc71d23a'
        'b7436f41-4977-4c76-b737-0a551e95a562'
    ]
  }
}

Other options considered
Relationships as resources
If we modelled a single relationship as an individual resource, it provides some advantages. If you're using regular deployments, then you'll get update semantics; if you're using Deployment Stacks (once supported for extensible resources) then you'll get replace semantics.
However, we decided against this option (in favor of putting relationship replace semantics in the extension):

We won't be able to provide a human-readable client provided name for any new relationship resource type.
We will not be able to batch requests to Microsoft Graph, which would impact performance.
Using relationship resource types will lead to a more verbose Bicep file, although using a for-loop would remove much of this verbosity.

@dkershaw10 Thanks for this, it certainly is heading in a good direction.
My thoughts
Proposal:

all good, addresses the concerns we are having

Deployment level setting:

seems reasonable, setting replace semantics at the top level is a good solution, one in all in, so to speak.
as mentioned before some doco on the philosophy of Config as Code, why replace semantics are critical and ultimately why this setting should default to true in the future

New relationships type and the other option:

your proposal definitely better than what is currently there so on a pragmatic level I'll like to see this sooner than later
However
I don't really understand your hesitation with relationship as resources. IMHO it would be way more flexible. especially as group membership will change more often than the existence of a given group. I'd prefer to manage a separate bicep file just for these relationships with its own pipeline. One thing I do when managing change is to establish my repos of config to match the cadence of environmental change or in my team's parlance according to their perceived volatility. This also addresses your concern about performance because I can run the more volatile things at an appropriate cadence without having to rerun things I know don't change often.

My two cents, I'd prefer something like this.
resource group<EMAIL_ADDRESS>existing = { ... }

// excuse syntax taking an educated guess here 😄
// mymemberlist is human readable
resource members<EMAIL_ADDRESS>existing = [for m in mymemberlist: {
  name: m.name
  ...
}]
var memberIds array = [for i in range(0, length(members)): {
  id: members [i].id
}]

resource ownerelationships<EMAIL_ADDRESS>= { // batch-able
 type : <'owner' | 'member' >
 group: group
 members: memberIds
}

My take on this:
Having a setting that is in the provider definition seems too static to me and not flexible at all. Basically removes any scenarios where you want to deploy multiple groups with same template and have different behavior based on a choice from end user. The way we develop templates is making them general and than distribute to different end users for usage. Based on their different needs they can provide different parameters and deploy different configurations.
I liked the idea of deployment stacks and regular deployments. If deployment stacks support is added sooner than later may be it is better choice to make this happen without requiring any changes. Meaning the syntax stays the same and if you want to add members without removing existing deployments - use regular deployments. If you want to have full idempotency and only have the members that are in the configuration and remove any that does not exists - use deployment stacks.
Not being able to use existing syntax puts are two steps behind. The existing syntax is one of the main features for MSGraph bicep. When you apply configuration with members you want to know which these members are. Using uniqueName can tell you that in human readable way. GUIDS cannot do that.
Unfortunately, to me the current proposal does makes things worse with this different syntax that needs to be set on the template and the different syntax that needs to be used for existing resources. I can propose of having child members resource but I am not so familiar in depth of Graph to know it is suitable.

Thanks @petersgiles and @slavizh for taking the time to provide your feedback, which is super valuable. We've been discussing your feedback and thinking about some other options. We'll be working on a couple of proposals and a series of questions (in the form of a poll), which we'll present at the upcoming monthly Bicep Community call.  Hopefully this will give more folks an opportunity to chime in with their feedback and help guide us to a good solution here.

@dkershaw10 I mentioned the proposal to @majastrz and he suggested that we change useReplaceSemanticsForRelationships to an enum to make it more extensible, e.g.:
provider microsoftGraph with {
   relationshipSemantics: 'append' | 'replace' // Default is 'append'
}


vSpehere Nodetemplate Folder Selector Update

When using folders in vSphere we have the ability to do full folder paths and the last element of the path is not enough to be specific enough when using this feature. If someone has /dc/vm/dev/k8s and /dc/vm/prd/k8s they'll see only k8s twice on the drop down. Will need to either grab more from the path or something more interesting.

rancher/rancher:v2.3-head
rancher/rancher:master-head

Folder dropdown shows the full path and all subdirectories.
The node is created in the correct folder.


Add v8-canary release

Description:
Download v8 canary releases from https://nodejs.org/download/v8-canary in case if version has-v8-canary as a suffix or a part.
test build  https://github.com/akv-demo/setup-node-test/actions/runs/3425995155
Related issue:
Add link to the related issue.
Check list:

[x] Mark if documentation changes are required.
[x] Mark if tests were added or updated to cover the changes.

I'm going to close the pull request in favour of this: https://github.com/actions/setup-node/pull/655


CLI & Basic Functionality is Ready, We now need jawDropping GUI

it should be later compiled of course...
GUI will be done with Kivy

The more manhours (FREE libraries I'm using in the project, the better it is


Add Wen Quan Yi fonts series

Wen Quan Yi (WQY) fonts series are a group of open source CJK fonts
designed for GNU/Linux Desktop Environment.
Website: http://wenq.org/

There is a small mistake we need to correct before merging: to interpolate version in url, double quotes should be used. Could you amend the commit?

Already fixed it.
Sorry for the mistake.

Could you squash the commits?

Done

Thanks.

:+1:


Allow hitting empty viewgroups

This was implemented previously to get around an issue with overlays.
This was wrong and should be implemented by making overlays
non-focusable instead.

Looks good 👍


Please add thumbs up/down to the android app and android wear

As I was unable to use ssh commands to do that while the pc is locked.
Thanks!

Wrong repository.  The android app is Ain a different repo


Consider adding workspace members as sources in uv init

Initializing as workspace member adds it to the root package workspace members but does not add it as a dependency, e.g.:
❯ uv init
❯ uv init foo
Adding `foo` as member of workspace `/Users/zb/workspace/example`
Initialized project `foo` at `/Users/zb/workspace/example/foo`
❯ cat pyproject.toml
[project]
name = "example"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = []

[tool.uv]
dev-dependencies = []

[tool.uv.workspace]
members = ["foo"]

uv add will do so:
❯ uv add foo
❯ cat pyproject.toml
[project]
name = "example"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
    "foo",
]

[tool.uv]
dev-dependencies = []

[tool.uv.workspace]
members = ["foo"]

[tool.uv.sources]
foo = { workspace = true }

We should something like:

Add a toggle to control adding to the current workspace in a single invocation
Determine the default behavior
If not added by default, show a hint suggesting how to add it

Not in love with a toggle for this, let's just pick a good default IMO. What does Cargo do?

I think it makes sense to add it as a dep here.

I would like to do it, but I need some hint or consultation here.

Do we assume here that we need all 3 types of deps: production/dev/optional or just production?
Do we want to create new functions for above? Current implementation of add_dependency(...)  is connected strictly with implementation of uv add with usage of requirements which is not used in scope of init implementation.


First iOS bridge version

Based on ZoomingPDFViewer
(https://developer.apple.com/library/ios/samplecode/ZoomingPDFViewer/Introduction/Intro.html)
closes cnjon/react-native-pdf-view#4
TODO

add zoom property
add onLoadComplete callback that return page count

Cool~!


Test:  end2end from PDI --> AZ

Write end-to-end test cases that represent our initial use case - starting from Prime Data Input (PDI) data, and transforming it into the format Arizona's Public Health Dept (PDH) wants to receive.
See this prime-central ticket for info on the formats:   https://github.com/CDCgov/prime-central/issues/84

I have sample Mirth Instances in docker containers which could be used to simulate the AZ department.

Duplicate.


IApplicationBuilder.UseWhen does not work

Describe the bug
I noticed that a middleware inside of a UseWhen block is executed even when the predicate function returns false:
app.UseWhen(predicate: context => false, appBuilder => {
   app.UseEndpoints(endpoints => {
       endpoints.MapControllers();
   });
});

With this code my controller actions are still reachable. Only when commenting the endpoints.MapControllers(); out I get 404 responses as expected.
To Reproduce
Steps to reproduce the behavior:

Add above code to an ASP.Net Core Web API project
Use curl to access any controller action
Notice that the controllers are still reachable
Comment endpoints.MapControllers(); out and restart
Controllers are not reachable anymore

Expected behavior
To my knowledge the middlewares inside of the UseWhen block should be ignored when predicate allways returns false.
Additional context
.NET Core SDK (gemäß "global.json"):
 Version:   3.0.100-preview9-014004
 Commit:    8e7ef240a5

Laufzeitumgebung:
 OS Name:     ubuntu
 OS Version:  19.04
 OS Platform: Linux
 RID:         ubuntu.19.04-x64
 Base Path:   /home/marcus/dotnet/sdk/3.0.100-preview9-014004/

Host (useful for support):
  Version: 3.0.0-preview9-19423-09
  Commit:  2be172345a

.NET Core SDKs installed:
  3.0.100-preview9-014004 [/home/marcus/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.App 3.0.0-preview9.19424.4 [/home/marcus/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.0.0-preview9-19423-09 [/home/marcus/dotnet/shared/Microsoft.NETCore.App]

Nevermind, I forgot to replacce app with appBuilder in the sample code. It has to look like that:
app.UseWhen(predicate: context => false, appBuilder => {
   appBuilder.UseEndpoints(endpoints => {
       endpoints.MapControllers();
   });
});


[WIP] Deppy as Framework Example

I didn't have a ton of blocking comments, so I'm cool with merging this once the CI checks are green.

closing PR as it's been broken down into a few PRs that have already been merged


[Bug]: the buff of  eventloop.cache  used  cannot be released

Actions I've taken before I'm here

[X] I've thoroughly read the documentations on this issue but still have no clue.
[X] I've searched the Github Issues but didn't find any duplicate issues that have been resolved.
[X] I've searched the internet for this issue but didn't find anything helpful.

What happened?
the buff of eventloop.cache always occupied

Major version of gnet
v2
Specific version of gnet
Linux 6.2.0-39-generic x86_64
Operating system
Linux
OS version
Linux 6.2.0-39-generic x86_64
Go version
1.21.6
Relevant log output
1

Code snippets (optional)
1

How to Reproduce
the buff of eventloop.cache always occupied after no data communication
Does this issue reproduce with the latest release?
It can reproduce with the latest release

The eventloop.cache is supposed to retain for the life of your gnet application, which is how this was designed.
Did it lead to any issues?

The eventloop.cache is supposed to retain for the life of your gnet application, which is how this was designed.
Did it lead to any issues?
the issue is:
When the data traffic is very low, the memory previously occupied by eventloop.cache cannot be released and continues to occupy a large amount of memory.

There is one buffer for each event loop and the number of the event loops is typically equal to the number of CPU. Besides, the buffer size is not expected to be large because it only caches the bytes every time you read data from the connection.
When you said "a large amount of memory", how many bytes were you referring to? Any statistics you can show me?

71 %  after data traffic decrease

There is one buffer for each event loop and the number of the event loops is typically equal to the number of CPU. Besides, the buffer size is not expected to be large because it only caches the bytes every time you read data from the connection.
When you said "a large amount of memory", how many bytes were you referring to? Any statistics you can show me?

71 % after data traffic decrease

This is uncanny, normally eventloop.cache shouldn't grow this big. Could you show me the code you write in OnTraffic?

reduce the code:
func (cm *connectionManager) OnTraffic(c gnet.Conn) (action gnet.Action) {
	for c.InboundBuffered() > 0 {
		// 1. decode
		if h, msg, err := ZeroCopyDecode(c); err != nil {
			if err == io.ErrShortBuffer {
				return
			}
			return gnet.Close
		}

		//... handle the msg
	}

	return gnet.None
}

// used for gent receive message
func ZeroCopyDecode(c gnet.Reader) (*Header, pb.Message, error) {
	total, err := c.Peek(MaxIntSize)
	if err != nil {
		return nil, nil, err
	}
	lenSize, length := DecodeInt(total)
	if lenSize > length {
		return nil, nil, proto.ErrorInvalidPacket
	}
	buff, err := c.Peek(length)
	if err != nil {
		return nil, nil, err
	}

	defer c.Discard(length)
	return DocodeBody(buff[lenSize:])
}

func DocodeBody(buff []byte) (h *Header, msg pb.Message, err error) {
	// 1. decode header
	h = FetchHeader(0)
	h.ReadFromBytes(buff)

	// 2. deocde body length
	bodySize, bodyLen := DecodeInt(buff[h.Size():])
	if bodyLen != len(buff)-bodySize-h.Size() {
		err = proto.ErrLenMismatch
		return
	}

	// 3. decode body
	msg = proto.NewMessage(h.Uri)
	if msg == nil || bodyLen == 0 {
		return
	}

	throughputBytesDetail.WithLabelValues(ToUri(h.Uri)).Observe(float64(bodyLen))
	err = pb.Unmarshal(buff[h.Size()+bodySize:h.Size()+bodySize+bodyLen], msg)
	return
}

This
The code has been pasted above.

This is uncanny, normally eventloop.cache shouldn't grow this big. Could you show me the code you write in OnTraffic?
The code has been pasted above.

total, err := c.Peek(MaxIntSize)

What's this MaxIntSize? Is it the maximum value of int type? If so, it should be the first thing you need to fix because that's the root cause of this issue. You should peek one packet at a time, otherwise the eventloop.cache will be bloated if you peek a large size.

total, err := c.Peek(MaxIntSize)

What's this MaxIntSize? Is it the maximum value of int type? If so, it should be the first thing you need to fix because that's the root cause of this issue. You should peek one packet at a time, otherwise the eventloop.cache will be bloated if you peek a large size.

const (
MaxIntSize          = 8
)

total, err := c.Peek(MaxIntSize)

What's this MaxIntSize? Is it the maximum value of int type? If so, it should be the first thing you need to fix because that's the root cause of this issue. You should peek one packet at a time, otherwise the eventloop.cache will be bloated if you peek a large size.

actually, we decode the one packet every time as the code pasted above:

ZeroCopyDecode a packet  to get a msg, and then
handle the msg
util meet the error io.ErrShortBuffer  or read buff empty.

How big is a packet? Also, what's the version of gnet you're using? You didn't fill out the issue template right.

How big is a packet? Also, what's the version of gnet you're using? You didn't fill out the issue template right.

Sorry，gent version is 'v2.5.2', mistakenly viewed the gnet version as the linux version.
The average size of packets should generally not exceed 32k; under certain exceptional circumstances, it may double,  may be grow to a few megabytes.

If you keep reading data until io.ErrShortBuffer in OnTracffic, the eventloop.cache shouldn't wind up to be bigger than your maximum packet size. Are you absolutely sure there is no some particularly large packet coming in?

Like over one hundred megabytes?

Like over one hundred megabytes?

impossible to exceed 10 M

I think using bsPool to fetch memory and release it in Discard func might be a solution.

This could work for Conn.Peek(), but not for Conn.Next().
I'll run some tests with big packets and see if it can reproduce your issue. Next move will depend on the test result.

#660 should fix this issue.
However, I discovered another uncanny "issue" when I did pprof on gnet transmitting 10MB packets, idle connections would have inuse memory of the elastic.RingBuffer, which should have been released:

Did you see this when you ran pprof with your gnet server? @szza

Idle connections still occupy memory, which the ringbuf cannot release.

Enable ET mode is a temporary solution ?


Fix AtlasTexture::draw_rect flipping for non-zero margin

AtlasTexture::draw_rect was incorrectly handling flipping an AtlasTexture with non-zero margins (flipping is done by passing a destination rect with negative width/height).
This was noticable e.g. in TextureRect (which included incorrect workaround for that) when stretch_mode != STRETCH_KEEP_ASPECT_COVERED as that's when it uses CanvasItem::draw_texture_rect (which ends up calling AtlasTexture::draw_rect).
This PR makes AtlasTexture::draw_rect use AtlasTexture::get_rect_region to handle flipping logic etc. the same way as in AtlasTexture::draw_rect_region.
Properly fixes #37526 (#37615 was incorrect, it only made the issue hardly noticable for the test case reported in there specifically because of almost equal top/bottom margins; see the red/green discrepancy in the image below).
Modified MRP from #37526 with the examples below: Testing-AtlasTextureFlip4x.zip

TextureRect incorrectly flipping AtlasTexture with non-equal top/bottom margins (TestScene.tscn):

Before(v4.3.beta2.official [b75f0485b])
After(this PR)

Setup:

Animating the margin, also comparing with Sprite2D (TestSceneWithAnim.tscn):

Before(v4.3.beta2.official [b75f0485b])
After(this PR)

Thanks!


containers-by-image view collapses all images provided by a docker registry on non-standard port

When using images from a docker registry on a non-standard port, it looks like the logic to collapse multiple versions of the same image is also collapsing all containers from the registry.
e.g.
docker-registry.domain.name:5000/image1
docker-registry.domain.name:5000/image2

are both displayed as docker-registry.domain.name in the containers-by-image view.
adding a version doesn't help:
docker-registry.domain.name:5000/image3:latest

is also collapsed into docker-registry.domain.name.

@kawaja good catch, thanks for the report!  I'll fix this right away.


googlechrome: Fix Google Chrome Auto Update Issue

Close #5506
Use my fork to replace the broken API provided by @SukkaW.
The version and installer can be updated correctly now.

Note that the original api is still broken with the latest commit.

Anyone reviews this PR or give me some suggestions?

Apparently the original API back online and works again.

Because Travis CI disabled all the build on travis-ci.org while I haven't migrated the CI to GitHub Action/New Travis CI.
But the CheckChrome project is already dead. Scoop-extra should use the information from Google directly.
https://github.com/SukkaW/CheckChrome/blob/e600a467366f6760d79afe23634ded97c9b38df6/util/checker.sh#L7-L16

Hi Sukka, I have already created a PR for that repository to fix the error. The solution should work.

My fork is dead now.

Migrate to Github Actions in my fork now.


Event index

Description

Figma link
Implement event index page
Possible Implementation

use datatable, integrate with backend as well.
Out of scope

Requirements / Restrictions

Hey team! Please add your planning poker estimate with ZenHub @AnnieTran13 @pascwhale @luigibesani

Closing this due to it being merged to feature branch.


CI: Front-End Test Framework

Feature Description
I will continue to update this over time and ultimately aim to run a vote in the next few days if a clear contender doesn't emerge.
As discussed in #18302 and #14639, gitea is in need of a visual testing framework to prevent changes from breaking existing parts of the UI.
Requirements:

Need to render JS, HTML, Vue, and CSS to detect if differences occur between accepted and proposed changes
Need to have a method to store accepted state of UI (i.e. screenshot)

Considerations:

Cross platform and mobile testing would be ideal, but might add too many permutations
The ability to screencap specific UI elements would also be helpful
Whatever we select we need to figure out where to save the screenshot files.

We can't really commit images directly to the repo because it would simply be too much data
One option is LFS, but we don't really want to add a new dev dependency
Some of the testing frameworks have a "Dashboard" that should host the screencap images automatically in a database (ex. Cypress). Need to verify this.
Can we use git notes to link to an S3/Minio bucket which contains the test images? Has anyone tried something like this?

Does this play well with JS testing framework (ie. Jest)

Options

Tool
Description
License
Visual Test
JS Assertions
Pros
Cons

Cypress.io

Y
Y

Playwrite

Y
Y

~TestCafe~
End-to-end testing, simplified

N

No visual testing

Percy

BackStopJS

Y
?

TBD
I haven't included Selenium here, as I figured that would require us building our own testing framework, which, given all of the options above, I don't think is necessary. If someone has examples of a good implementation I can include it.
Questions

Can we use the existing integration test framework to emulate an instance of Gitea or do we need to spin up a new gitea instance in CI to run the visual tests? For example, we can have a separate Drone pipeline run in parallel that starts an instance of gitea and runs the front-end tests.
How many permutations do we need / can we afford? For ex. Firefox, Chrome, Safari, Mobile + we should test on Windows/Ubuntu/Alpine? Will need to follow up with some tests.

Roadmap
TBD

So at this point, I'm not sure if visual testing really is the way to go. Besides the problem with screenshot storage, I can see it becoming a nuisance when doing far-reaching styling changes.
I have to say thought, I have no experience with visual testing so maybe my fears are unwarrented. To me it sounds like visual testing is probably something best done on a external service that takes care of screenshot storage and diff presentation, I don't know if such a service exists.
I think it it'd overall be more valuable to have coded UI integration tests that perform common actions like operate on issues/pr, create commits on the web editor, which could be described using a headless browser like playwright which integrates well with jest.
The only complexity we face is that we need the backend available during these tests, but I'm certain this can be achieved with some setup code in jest.

Same feeling with @silverwind , I am afraid pixel-level UI comparing is too heavy and it would lead to lower willing to do UI refactoring or improvement.

I think it it'd overall be more valuable to have coded UI integration tests that perform common actions like operate on issues/pr, create commits on the web editor, which could be described using a headless browser like playwright which integrates well with jest.

pixel-level UI comparing is too heavy

I agree that coded assertion testing, like Playwright, Mocha, etc. is a requirement. It will help us catch issues with templates and javascript/Vue, especially for the JQuery port.
However, the thing it won't catch is CSS issues. I imaging migrating from Fomantic to Tailwind would be incredibly difficult without that.
I think it makes sense to do a proof of concept to see if visual testing would be too heavy (at least we'll learn). If we can get 80% of the benefit with 20% of the effort from having just something like Playwright then I could definitely be convinced.

@silverwind @wxiaoguang I tried to get Cypress set up and it just felt too heavy. Install took a while and it wasn't clear how managing screenshots would work. In the PR above I took a swing at setting up Playwright. It seemed a lot more straightforward.
It does support screenshots in case we want to take the leap on adding that in the future (I still think LFS would be the way to go, but that convo could be had later).
Feel free to take a look - happy for some feedback.

Interesting article: https://docusaurus.io/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing


Handle discord privacy problems

Sometimes a user will have their privacy settings locked down and the bot will be unable to send them messages, we need to implement friend request sending and error messages.

Closing for now as the "ugly" fix is committed but I plan to re-open this if the discord api improves.


Farming Contract Timers

Would be cool if runelite could pop up a little square similar to the slayer tasks square, that keeps track of your current farming contract and its growth time left. Fiddling around with the current timer menu, and having to remember what contract you are on can be tedious.

Duplicate of #7634


Front-end startup failed

I’m very sorry to bother you. After updating the front-end code, I encountered an error while viewing the webpage content. I'm not sure if it’s my issue.

Hi @rookieR99 can you share error you are getting in the inspect

Hi,This is the error message I see in the browser.

Have you followed valid ENV values

Which property in the ENV is related to this?

I am not able to see full error can you full inspect screen shot

I am sure you missed the ENV values in the frontend folder please read the readme before the setup

I created the frontend/.env file using copy/paste. The contents of the .env file are as follows:

Oh~,I got the desired result. Thank you for your help!


Error in nvim-dap-ui

An error occurs in the nvim-dap-ui plugin when running PackerSync.
packer.nvim: Error running config for nvim-dap-ui: ...packer/start/nvim-dap-ui/lua/dapui/config/highlights.lua:74: bad argument #2 to 'format' (number expected, got nil).
The problem disappears after commenting these highlights:
-- DapUIStop = { link = "Error" }, --guifg=#F70067"
-- DapUIUnavailable = { link = "Comment" }, --guifg=#424242"

weird, I couldn't rerproduce the error but highlights were not right, should be fixed now https://github.com/rebelot/kanagawa.nvim/commit/fb733c1043a462155b52cd97efd920f1dd72d33a

After the update, the error is gone. Thank you.


Added configuration of the settingsstoragepath

Fixed a few errors as well.

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


initialize the minLog2TileColumns and maxLog2TileColumn

minLog2TileColumns, maxLog2TileColumns are output parameters of GetTileNBits function and will be filled inside. No explicit initialization required for this code

Code scan reports this issue. We will discuss it with PM. Thanks


BUG: Potential regression for thermal conductivity in pure components in latest update

After updating to the latest version of the thermo package, the Chemical class is missing thermal conductivity for some pure components which were previously present. Potentially related to #52.
Minimal working examples:
Previous behaviour:
$ pip show thermo
Name: thermo
Version: 0.1.40

>>> from thermo.chemical import Chemical
>>> fuel_name = "Ethanol"  # Similar for "Water"
>>> fuel = Chemical(fuel_name, T=303.15)
>>> print(fuel.kg)
0.01164343539939321

After updating:
$ pip show thermo
Name: thermo
Version: 0.2.10

>>> from thermo.chemical import Chemical
>>> fuel_name = "Ethanol"  # Similar for "Water"
>>> fuel = Chemical(fuel_name, T=303.15)
>>> print(fuel.kg)
None

Accessing other properties still work as expected:
>>> print(fuel.Cp)
2477.71998173878
>>> print(fuel.alpha)
8.443183815819819e-08

Hi Stefa,
Thanks for reporting this! I believe this is because the previous behavior of chemicals would cycle through methods until one would work. This behavior has been deprecated in favor of extrapolation, which helps keeps properties continuous and consistent, but there are still a few issues with this...
The gas thermal conductivity method depends on the gas molar volume method (Vmg). The default method for Vmg is 'EOS', which fails at that temperature and pressure. To fix your issue, you can change the method for Vmg:
>>> from thermo.chemical import Chemical
>>> fuel_name = "Ethanol"  # Similar for "Water"
>>> fuel = Chemical(fuel_name, T=303.15)
>>> fuel.VolumeGas.method_P= 'TSONOPOULOS_EXTENDED'
>>> print(fuel.kg)
0.011656785631933345

@CalebBell, let me know if I missed anything here.
Thanks!

Thank you very much for the quick response. Setting the method worked for me.


backup problem

Describe the issue
Arch.exe backup return error:
Running backup Script.
If a password is requested, please enter the root password.

tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.
bash: line 1: --exclude: command not found
bash: line 2: --exclude: command not found

To Reproduce
execute Arch.exe backup
Expected behavior
backup runs without any error
Enviroment:

Windows build number:  10.0.18363.535
Security Software: avast
WSL version 1/2: WSL1
ArchWSL version: <IP_ADDRESS>
ArchWSL Installer type: zip update
Launcher version: 19111602

If the fix was not successful, please reopen this issue.


torch._C._LinAlgError: cusolver error

Hi, I just made the conda environment, and downloaded the Apartment dataset and tried to run NICE-SLAM, with
python -W ignore run.py configs/Apartment/apartment.yaml
code, but it shows the error, saying
torch._C._LinAlgError: cusolver error: CUSOLVER_STATUS_EXECUTION_FAILED, when calling cusolverDnSgetrf( handle, m, n, dA, ldda, static_cast<float*>(dataPtr.get()), ipiv, info). This error may appear if the input matrix contains NaN.
Not sure where this error comes from, any ideas?

Hey, it might be that your environment is not very correct. Since others can run without any problem. Please double-check. Good luck!


[BUG] pickled classes have different checksums on Cython 3.0 Vs 0.29

Describe the bug
It looks like classes pickled in a module compiled in Cython 0.29.x cannot be reloaded when the module is recompiled in Cython 3.0 because the checksum has changed. See https://github.com/pandas-dev/pandas/pull/46029#issuecomment-1066294846
I'm putting https://github.com/cython/cython/commit/f00af64bcc2cef4c3fb1433ed670ab5f9970e2cd as the most likely cause, but I haven't properly bisected it yet.
To Reproduce
I don't have a tested minimal example myself yet, but I imagine
cdef class C:
   pass

would be sufficient.
Expected behavior
I'm not sure how far we should guarantee the long-term stability of our pickle output. 3.0 seems a reasonable time to break if, if we're going to. I wonder if we should have some way of ignoring the checksum though, just to help people preserve their old data.
Environment (please complete the following information):

Cython version 0.29.28 and 3.0 master (plus some in-progress patches)

Added a test fix here: https://github.com/cython/cython/commit/685f7a7e4b4578f4c74f88185b99f5ede97bd42c


cl21 cl22 - lost fix - Khronos Bug 15438 generic address space language_union test issues

Fix is present only on cl20_trunk branch

All PRs merged, closing.


Question-Answer Transformation using a Quora Question Paraphraser

This transformation creates new QA pairs by generating question paraphrases from a T5 model fine-tuned on Quora Question pairs.
This transformation acts like a paraphrase generator. Generated questions can have a very different surface form from the original question making it a strong paraphrase generator. A T5 model was fine tuned on the Quora Question Pairs dataset and is being used to generate question paraphrases.
Here is the performance of the model mrm8488/bert-tiny-5-finetuned-squadv2 on the validation[:20%] split of the squad dataset
The accuracy on a subset of squad = 60.31220435193945
The accuracy on its perturbed set generated from QuoraT5QaPairGenerator = 47.161778618732264
This ~13% would also be attributed to paraphrasing errors.

Thanks @sebastianGehrmann very much for your comments. I've fixed those.


Korean dataset

Already here: https://github.com/e9t/sejong-sanitizer
Will run it soon.

Please let me know if we need more data.
Otherwise, could we consider that this issue is resolved?

Yes, we can close it.


Update stm32f3 to 0.9

This PR updates to stm32f3 v0.9.
Also, register access methods where upgraded to use the variant based methods, introduced in the svd2rust version 16 (see the CHANGELOG).
I reduced the scope to change only the peripherals, where it worked seamless.
I've prepared PR's for the missing peripheral modules, but I did'nt include them, as stm32f3 does not provide the variant methods for all stm32f3 devices, because they are'nt documented yet.

I wasn't able to get serial or USB HID to work with this upgrade :confounded:
Simple things like blinking LEDs, semihosting, and using alloc all worked.

Okay. I'll have to investigate. Will check this tomorrow.
Thanks for testing it! :)

Okay, i could confirm, that USB is not working.
It seems like, that the clearing of the reset pin is important (sometimes?)
I remove the clear_bit part, because sometimes it says in the reference
manual, that writing 0 to the reset register "has no effect".
On other occasion it say's "does not reset the " as for USB.
stm32f3 does not expose a unreset variant method.
As the reset register are read-write registers and it worked before, i readded
the clear_bit par

I think we should be good to go on this one. @Sh3Rm4n feel free to merge :+1:


unknown module "undefined" error

Describe what happened
Hello, I'm trying to upgrade @datadog/mobile-react-native and @datadog/mobile-react-navigation, but I'm getting errors on launching the app. Any idea how to resolve?

Steps to reproduce the issue:
Add
"@datadog/mobile-react-native": "^1.1.3",
"@datadog/mobile-react-navigation": "^1.1.3",
to package.json, run yarn install & pod install, and build the app on the iOS simulator.
My react-native version is 0.63.4.

Hi @eueddem, thanks for reaching out!
Could you share the version of react in your package.json?
If your version is below 16.14.0, this issue will be fixed very soon in version 1.1.4.

Hi,
Version 1.1.4 of @datadog/mobile-react-native has been released and should fix your issue.
Please do tell me if this is not the case and we'll help you troubleshoot further.

Hello @louiszawadzki , it works! Thanks for the quick fix. My project is on react 16.13.1

Thanks for your feedback @eueddem!
I'm closing the issue, feel free to open a new one if you encounter any other problem :)


Add search on subsnippets in fe

relates to #163

@wakonig : as discussed, I've removed the global flag from inside a subsnippet.
From discussion with Stephan, and making it similar to gDOCS, the search from the overview now searches inside subsnippets too (paragraphs: see #163 for be logic)
It should close: #64


setup CI

This PR attempts to set up the continuous integration for the project.

Welcome to Codecov :tada:
Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.
Thanks for integrating Codecov - We've got you covered :open_umbrella:


Add: Zabbix monitoring for Tivoli Storage Manager (TSM)

We wanted to thank you for your contribution to the development of the community, but we can't take your PR. Please correct the directory structure.
Example:

template_name

\_5.0
|   \_template_<name>.xml
|   |_README.md
|   |_files
|       \_other_files
|       |_ ...
|_5.4
|   \_template_<name>.[xml,yaml,json]
|   |_README.md
|   |_files
|       \_other_files
|       |_ ...
|
|_...

Community Templates are published under the MIT license. Third-party licenses, even compatible (for example, GPLV2 / 3) are not accepted

fixed

We wanted to thank you for your contribution to the community development, but we cannot take your PR. More information and examples are available in the documentation.


Add basic alpha version of the UE4 plugin

Adds the basic initial version of the UE4 client, right now it just attaches a routing token and version to the end of the packet.

Another thought on having someone with UE4 knowledge give a LGTM - just to double check everything is included, and where it should be. Not something I can do.

I can't say I'm an UE4 expert but this code looks good to me, properly structured as UE4 plugin and just wraps the FUniqueSocket for all calls.
LGTM!

Awesome. Then the only thing blocking for me is getting some documentation into the Guide!


Application can't be build on local

I try to run npm install, following by yarn start as the doc guide. But the app throw error, the installation process also throw a lot of warning about packet vulnerabilities. Have you guys test your app carefully before push it here?

@lehai2909 Having the same issue myself right now. This project is very outdated (last commit is over 1 year ago). React has had many changes over the last year. Biggest one for many boilerplate React apps is deprecation of create-react-app....
Project may not work anymore

These issues have now been fixed and the entire app has been updated to work with latest version of React (19) and Next (14).


Update readme badges to use main branch

This PR updates the badges the reflect the change from master to main. (Also updated the link of the license badge).
See also #1369.

Coverage remained the same at 96.945% when pulling 0f05461c6d11ccdb95381d40a44b8a15dd0f3405 on Ruwann:feature/update-readme-badges into 71e27e162ced7de874562bfcb266c21e89ea250c on zalando:main.