depending on parallelproj might create a problem for C++ build

I was trying to make a dev version for stir-feedstock at https://github.com/conda-forge/stir-feedstock/pull/79 but hadn't updated the recipe to use libparallelproj yet.
I got some surprising build errors. Extracing lines from https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=701585&view=logs&jobId=b14d9056-66e9-58f5-fe70-f09b2dad5d2c&j=d0d954b5-f111-5dc4-4d76-03b6c9d0cf7e&t=841356e0-85bb-57d8-dbbc-852e683d1642:

Conda package stuff

libparallelproj:                      1.3.7-cuda111_h12f7317_200      conda-forge
parallelproj:                         1.3.5-cuda110_py310h5096daf_201 conda-forge

STIR CMake stuff

-- Found parallelproj 1.3.7 (will use its CUDA support)

Conda checks

2023-05-05T22:56:37.6344803Z WARNING (stir,bin/generate_image): Needed DSO lib/libparallelproj_cuda.so.1.3.7 found in ['libparallelproj']
2023-05-05T22:56:37.6345772Z WARNING (stir,bin/generate_image): .. but ['libparallelproj'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely)

errors during running

import stir
   from _stir import *
     ImportError: libparallelproj_cuda.so.1.3.7: cannot open shared object file: No such file or directory

It seems that requiring parallelproj  in host got a version mismatch, and that running it didn't install libparallelproj. (I still don't understand the host/ test / run stuff sadly).
This could be partly because of the cuda trickery we had before, but the last bit doesn't seem to have anything to do with that.
I've now modified the STIR PR to use libparallelproj
https://github.com/conda-forge/stir-feedstock/pull/79/commits/0ce25b428935e1b4ebc6faabf3d59101bd9bd821
and likely all problems disappear, but it could point to some underlying problems in this feedstock, so I thought I'd post it here. Feel free to close.

I should have added that parallelproj was not installed by conda for the tests, hence the run-time failure

I've now modified the STIR PR to use libparallelproj https://github.com/conda-forge/stir-feedstock/commit/0ce25b428935e1b4ebc6faabf3d59101bd9bd821 and likely all problems disappear,

they did

@KrisThielemans  Completely missed that one.
If I understand correctly, right now there is no issue for Stir when requiring libparallelproj?

correct. I haven't tried going back to depending on parallelproj. There are far more pressing things to look into though, and as it all works now, probably best to close this.


Support for Prefix / Postfix as well

love this plugin! But I have a small request.
Is it possible to add prefix / postfix along as well.
For my team setup, it checks for Fixed: Ticket-123 and then update the ticket status according.
And the same if brackets can be optional as well, now that we can add prefix message
Thank you!

Never mind, I see that this is resolved in another issue. Thanks
For Reference
https://github.com/nemwiz/jira-commit-message-intellij-plugin/pull/4


output data

I was wonder if there is a way to print out the x, y, z coordinates only without anything else on the tycmd monitor?

Sure just change the code.
On Wed, Apr 22, 2020, 00:46 amralabsi<EMAIL_ADDRESS>wrote:

I was wonder if there is a way to print out the x, y, z coordinates only
without anything else on the tycmd monitor?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ashtuchkin/vive-diy-position-sensor/issues/71, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEZKHO35BCUCKUN6CF742LRNZZARANCNFSM4MN2RU4A
.

I am not sure what can I change in the code to get it to print that way i read almost every file in it but i am still not sure can you point me to the folder name or file name please? I want the output to be just the x y z because I am sending it to my phone over hm10.

This is where the position is printed:
https://github.com/ashtuchkin/vive-diy-position-sensor/blob/master/src/formatters.cpp#L56
--
Alexander Shtuchkin
On Wed, Apr 22, 2020 at 3:17 PM amralabsi<EMAIL_ADDRESS>wrote:

I am not sure what can I change in the code to get it to print that way i
read almost every file in it but i am still not sure can you point me to
the folder name or file name please? I want the output to be just the x y z
because I am sending it to my phone over hm10.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ashtuchkin/vive-diy-position-sensor/issues/71#issuecomment-617977903,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEZKHPS2UKNL67MGWUQZZDRN47DFANCNFSM4MN2RU4A
.


duplicated vimtex source problem

Thank you for your efforts,
If I configure cmp-vimex, CmpStatus shows me the vimtex sources are duplicated
In nvim-cmp lazy.nvim setup, I called the cmp-vimtex plugin as dependencies.
Case 1) If I don't configure cmp-vimtex
dependencies = {
  'hrsh7th/cmp-buffer',       -- source for text in buffer
  'hrsh7th/cmp-path',         -- source for file system path
  'hrsh7th/cmp-cmdline',		-- source for commandline, [command], [path]
  'hrsh7th/cmp-nvim-lsp',     -- using LSP for source
  'f3fora/cmp-spell',			-- source for vim's spellsuggest
  'L3MON4D3/LuaSnip',         -- snippet engine
  'saadparwaiz1/cmp_luasnip', -- using LuaSnip for source
  'mstanciu552/cmp-matlab',   -- source of matlab
  {
    'micangl/cmp-vimtex', 		-- source of vimtex for latex
  },
},

Cmp-vimtex loaded just once for unused source names (I didn't load this source to confirm how many this source is called just.)

Case 2) If I configure cmp-vimtex
dependencies = {
  'hrsh7th/cmp-buffer',       -- source for text in buffer
  'hrsh7th/cmp-path',         -- source for file system path
  'hrsh7th/cmp-cmdline',		-- source for commandline, [command], [path]
  'hrsh7th/cmp-nvim-lsp',     -- using LSP for source
  'f3fora/cmp-spell',			-- source for vim's spellsuggest
  'L3MON4D3/LuaSnip',         -- snippet engine
  'saadparwaiz1/cmp_luasnip', -- using LuaSnip for source
  'mstanciu552/cmp-matlab',   -- source of matlab
  {
    'micangl/cmp-vimtex', 		-- source of vimtex for latex
    config = function ()
      require('cmp_vimtex').setup({})
    end
  },
},

Cmp-vimtex loaded twice as below

Could you know where the vimtex source are called one more?

Thanks for raising the issue! May I ask @benbrastmckie if he is seeing the same output (vimtex listed twice in CmpStatus), as I  see that he has a similar configuration?
It shouldn't, in any case, interfere with anything.

Sure, Of course.
I checked the config repository of @benbrastmckie. He configured the cmp-vimtex like this,

configure cmp-vimtex in a file vimtex-cmp.lua  separately and use lazy=false loading
use cmp-vimtex as dependencies of nvim-cmp without any configuration

I applied above configuraiton before and It worked fine because it only loads once and configuration can be applied.
But The downside is that it makes nvim loading time longer than before because cmp-vimtex is loaded at startup always with long load time (~200ms)
I want to lazy-load cmp-vimtex when nvim-cmp is loaded.
But If he set lazy true in vimtex-cmp.lua, the vimtex will be called twice as the same with what I said

@Jaehaks Unfortunately, there doesn't seem to be a way with lazy to call the setup function before the after/plugin/ files are sourced. This is what happens with the "normal" plugin loading process, and is necessary to keep the source compatible with non-lazy loaders.
At the moment I'm completely swamped so, since this is not a bug which prevents the plugin from working, I'll have to postpone finding a fix, as there doesn't seem to be an immediate one.

I have a similar issue, where if I configure cmp_vimtex separately, every entry in the autocomplete list appears twice. This affects the usability seriously, since of the two entries, the citation info is only shown for one. I think the solution is to let setup() return a source, and have the after/plugin register the source. I am happy to open a PR to implement this.

As I said in the last comment, there doesn't seem to be a fix for this. Unfortunately, the loading processes of the various plugin managers are too different for me to provide a solution. I hope it won't be too annoying, sorry.


Concertando

Concerto
Please note that if you are trying to update your website, this is the wrong place to do so. Please carefully follow the Beautiful Jekyll instructions (found at https://github.com/daattali/beautiful-jekyll#readme) and make sure you submit changes to your version of the project.
If your intention is to submit a Pull Request, please describe what your pull request achieves.
Thank you!

Aprovando para preview dos cara que uso windows 👎


[Bug]: e2e-matrix-generator.py fails when running alone

Is there an existing issue already for this bug?

[X] I have searched for an existing issue, and could not find anything. I believe this is a new bug.

I have read the troubleshooting guide

[X] I have read the troubleshooting guide and I think this is a new bug.

I am running a supported version of CloudNativePG

[X] I have read the troubleshooting guide and I think this is a new bug.

Contact Details
No response
Version
1.22.0
What version of Kubernetes are you using?
1.28
What is your Kubernetes environment?
Self-managed: kind (evaluation)
How did you install the operator?
YAML manifest
What happened?
When running the e2e-matrix-generator.py we get this:
python3 e2e-matrix-generator.py
Traceback (most recent call last):
  File "/home/zeus/src/cloudnative-pg/.github/e2e-matrix-generator.py", line 86, in <module>
    with open(E2E_TEST_TIMEOUT) as json_file:
         ^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '.github/e2e_test_timeout.json'

We should at least fix this error and have a proper output and the timeout shouldn't be required at all
Cluster resource
No response
Relevant log output
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Your issue is that you needed to run it from the repo's root. It could be helpful to make it resilient to run from any directory and check that the environment is set correctly at the start instead of throwing a random error during the execution.


Related courses.

Description
As a user I would like to be able to see courses and/or content related to what I am currently watching in order to complement what I am learning.
Acceptance criteria

Recommended content should be related to the course topic or a topic not covered in depth within the current course.

Open a course or content item.
Check the "Recommended Content" section for related or supplementary topics.
Select a recommended item to verify it aligns with the current course content.

Validation Criterion:
Relevant recommended content is displayed alongside the main course.


Duplicate methods in ctkEASignalPublisher_p.h

The following methods are duplicated in f56fc6d

Thanks, pull request done.


Add API server tech-preview doc

Description

Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

None required

@caseydavenport - something that has just cropped up is that because libcalico-go has it's own error types and these get passed up the stack.  Some of the k8s componentry (clients / reflectors etc) only understand the k8s error types.
This has caused us a problem where libcalico-go is wrapping a resource version error type so that client side it doesn't know what to do with it.
I think this is something that'll need to be addressed, but wanted to get your thoughts on perhaps removing libcalico-go errors in preference to using k8s errors.  Also, making sure we pass k8s errors unchanged up the stack.  Anyway, just commenting here to get a convo started ... and it's related to the API server.

Some of the k8s componentry (clients / reflectors etc) only understand the k8s error types.

This should be fixed by this PR: https://github.com/projectcalico/libcalico-go/pull/1392

LGTM as far as the manifest goes.


django tastypie REST query filtering based on authorised user

I have added EndpointResource to dojo/api.py:
class EndpointResource(BaseModelResource):
    class Meta:
        queryset = Endpoint.objects.all()
        resource_name = 'endpoints'
        fields = ['product', 'protocol', 'host', 'path', 'query', 'fragment']

        list_allowed_methods = ['get']
        detail_allowed_methods = ['get']
        include_resource_uri = True
        filtering = {
            'product': ALL,
            'protocol': ALL,
            'host': ALL,
        }
        authorization = DjangoAuthorization()
        authentication = DojoApiKeyAuthentication()
        serializer = Serializer(formats=['json'])

class Product contains:
authorized_users = models.ManyToManyField(User, blank=True)
class Endpoint contains:
product = models.ForeignKey(Product, null=True, blank=True, )
Currently, Users can authenticate to /api/v1/endpoints/ and they will see all Endpoints.
curl -v --header 'Authorization: ApiKey sue:5b632d76ef1a38b8375383e3498d063515b356d4' http://example.com/api/v1/endpoints/

However, I am looking to implement desired behaviour in that Users should only be able to access Products they are authorised for, along with related entities to these products.
From within a python session I can do:
>>> from dojo.models import User, Product, Endpoint
>>> User.objects.get(username='sue').product_set.all().get().endpoint_set.all()
[<Endpoint: goliath.sue.local>, <Endpoint: goliath.suelimited.co>, <Endpoint: <IP_ADDRESS>>]

These objects, associated with 'sue' are the ones that I want returned by the API.
What would be the best way to get this going with tastypie?
Any help much appreciated, let me know if I need to post up further info.
>>> from dojo.models import User, Product, Endpoint
>>> User.objects.get(username='sue').product_set.all().get().endpoint_set.all()
[<Endpoint: goliath.sue.local>, <Endpoint: goliath.suelimited.co>, <Endpoint: <IP_ADDRESS>>]

These objects, associated with 'sue' are the ones that I want returned by the API.
What would be the best way to get this going with tastypie?
Any help much appreciated, let me know if I need to post up further info.

Using the code at the link
https://github.com/OWASP/django-DefectDojo/blob/master/dojo/finding/views.py#L68
as a guide, the following method was added to class EndpointResource:
def get_object_list(self, request):
    return super(EndpointResource, self).get_object_list(request).filter(product__authorized_users__in=[request.user])

It performs as I described but interested to get feedback to see if it's proper practice.


[Feature]: eslint markdown, json

Package Scope
etc
Description
Lint!
Possible Solution
No response
etc.
No response

I believe applying @eslint/markdown could help us write code blocks more consistently. Would it be okay if I take a look into this?

I believe applying @eslint/markdown could help us write code blocks more consistently. Would it be okay if I take a look into this?

Sure!

json is not must have so I close this issue!❤ @kangju2000 Thanks!


Should Mithril be a regular dependency?

Shouldn't it be a regular dependency instead of a devdependency? I don't know that this package makes much sense without also having mithril installed. You'd also then be explicitly tying it to a mithril version, which would be good in case mithril changes the underlying format of the data structure returned by m(), thus breaking this module.
I can send a PR your way if you agree, it's a pretty small change ;)

I don't think this should be a regular dependency, because you don't really need mithril to use this module. The virtual DOM the module consumes can be produced by any other system as well. This is currently not the case but may be in the future.
Also if you declare this as a subdependency, the module loader in you app will not find it, since it always walks upwards the directory tree, never downwards.
Or am I wrong here?

Oh, duh. I guess a peerDependency would be a bit closer but those have their own problems. Ignore me!

ok,
no problem :)


rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Thanks. Normally this shouldn't require a build bump, but Travis CI changed their default image.


feat: adding matrix build

Description
Todos

[ ] Unit tests
[ ] Manual tests
[ ] Documentation
[ ] Connect epics/issues
[ ] Tag type of change
[ ] Upgrade handler

Steps to Test
Expected Behaviour
Other Notes

you tested this in another branch right ? can i see the outcome there ?

Please do not delete the binary signing logic in the workflow

Nevermind - please ignore this.


Missing information

Hi, I think there is a lot of missing information in the "Extend exisiting tool windows". Here are the tutorials that I was looking for when I was looking to "extend existing tool windows":
Extend existing tool window functionality: https://docs.microsoft.com/en-us/visualstudio/extensibility/extending-the-solution-explorer-filter?view=vs-2019
Add functionality to existing tool windows: https://docs.microsoft.com/en-us/visualstudio/extensibility/adding-a-command-to-the-solution-explorer-toolbar?view=vs-2019
Which both qualify, in my opinion, as "extending existing tool windows". Furthermore, I notice that the link to "Extend the Properties, Task List, Output, and Options windows" link is duplicated? Would be good to fix this.
Thank you for your consideration

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

ID: de8f3d05-2544-c058-390a-e891f884fa17
Version Independent ID: 498f1db6-4ff2-b317-84df-3377eef4bb75
Content: Extending and Customizing Tool Windows - Visual Studio
Content Source: docs/extensibility/extending-and-customizing-tool-windows.md
Product: visual-studio-windows
Technology: vs-ide-sdk
GitHub Login: @madskristensen
Microsoft Alias: madsk

@DMX-DCardinal Thank you for the feedback.
The documentation has been updated.


Merge Latest FTCRobotController Updates (Initial INTO THE DEEP Season Code)

Woops- didn't see this. INTO THE DEEP season code has already been merged. Apologies.


Wrong infoText/TTS in gubal_library_hard.js

Description
Wrong infoText/TTS in ui/raidboss/data/03-hw/dungeon/gubal_library_hard.js
Inside "if" statement:
lines 79 and 80
lines 84 and 85
      if (sameMarkers) {
        return {
          en: 'Away from boss',
          fr: 'Eloignez-vous du boss',
        };
      }
      return {
        en: 'Close to boss',
        fr: 'Près du boss',
      };

Additional information
It suppose to be the other way around:
If sameMarker, should be "Close to boss"
else: "Away from boss"
      if (sameMarkers) {
        return {
         en: 'Close to boss',
         fr: 'Près du boss',
        };
      }
      return {
          en: 'Away from boss',
          fr: 'Eloignez-vous du boss',
      };

That's definitely a substantial mistake! Not sure how that happened. I'll put together a pull request to fix it tonight.

Should be fixed now, thanks for the report.


changed chromosome list to allow for simulation of any focal chromoso…

I noticed previously, that setting "chrm_list" to any specific chromosome number in the config.json would simulate chromosomes 1 through that number (e.g. "chrm_list" : 22 would simulate chromosomes 1-22). I changed the Snakefile and the readme so that now you can just use a string, where all chromosomes you want to simulate are separated by a comma (e.g. now "chrm_list" : "chr1,chr2,chrX" simulates only chromosomes 1, 2, and X). I did not alter the functionality of using "all" to simulate all chromosomes for the genome.

looks good to me @jradrion. gonna merge.


Mockup Schedule Page (prototype draft 01)

This pull request adds a new page to represent a mockup schedule page.
The information of the page is hardcoded. Currently, the schedule page includes a header with the garden name, the owner, and the location, a section for stats, members, and plants being grown, and a section to include the garden's daily tasks with the option to select a date.
The schedule page can be accessed by going to  .../page/schedule-page . On the MVP, this page should be accessed whenever the user clicks on their desired garden.
As seen from the picture below, the toolbar does not contain the tabs intended for this project (these will be added in a different PR).

LGTM (with regard to overall structure). Though I'm unsure how to git-surgery our changes into something that's neater (just take a look at the other PR, into which I've combined both our commits).

As discussed in our peapod meeting (Kayla, Cody, and I), this PR will be structural and colors (except for the button) will not be part of it. Here's the current look of the page:


BiopythonDeprecationWarning: This method is obsolete; please use str(my_seq) instead of my_seq.tostring().

When I run reconstruct_contig.py, I get this issue and error.
2.17-r943-dirty
/home/wangyali/anaconda2/lib/python2.7/site-packages/Bio/Seq.py:341: BiopythonDeprecationWarning: This method is obsolete; please use str(my_seq) instead of my_seq.tostring().
BiopythonDeprecationWarning)
Traceback (most recent call last):
File "/home/wangyali/yaliwang/Software/Cogent/build/scripts-2.7/reconstruct_contig.py", line 347, in
main()
File "/home/wangyali/yaliwang/Software/Cogent/build/scripts-2.7/reconstruct_contig.py", line 250, in main
run_Cogent_on_input()
File "/home/wangyali/yaliwang/Software/Cogent/build/scripts-2.7/reconstruct_contig.py", line 165, in run_Cogent_on_input
homo_nodes = filter(lambda n: G.has_edge(n, n), G.nodes_iter())
AttributeError: 'DiGraph' object has no attribute 'nodes_iter'
can you fix this script?
Thanks!

This issue should not exist if using networkx v2.3 and higher and with the latest Cogent v6.0.0 (for Python 3.7). Re-open if needed.


[WIP] Feature/exec time

It adds a timestamp when a scenario is started, as well as for each client execution.
It needs more work on the representation side, and also a finished timestamp.

Will commit directly in the project


Allow creating PR on the original project from a branch on a fork

Sorry, can you explain a little better? What are you trying to do? What have you tried so far? What hasn't worked?

@mislav This is how I believe it works and doesn't work currently. Lets' say we have two repositories:

A: Original project
B: Fork of A

I work on a feature using B, create a feature branch and push to remote. The feature branch is solely a branch of the fork.
At this point I want to create a pull request for the original project, so I run my usual command
hub pull-request

Now, instead of getting PR for A, I get the PR for B.

I use this workflow regularly, and it works correctly for me. However, there could be an issue with your repository settings. I believe that the branch that you fork from needs to be tracking to the original repository instead of the forked repository.
For example, let's say I have my remotes set with origin as the original repo, and jpry as my fork:
git remote -v
jpry	https://github.com/JPry/hub.git (fetch)
jpry	https://github.com/JPry/hub.git (push)
origin	https://github.com/github/hub.git (fetch)
origin	https://github.com/github/hub.git (push)

The master branch is tracking to origin. I then made a new branch from master named jpry_test. This branch is pushed to the fork repo, and is tracked there. Here are my branches:
git branch -vv
* jpry_test 5cf2e79 [jpry/jpry_test] Add test file
  master    e39364d [origin/master] Merge pull request #1563 from github/environment-variables-docs

If I run hub pull-request, then it correctly points to the original repo, because the original branch is tracked to the original repo. The following line is in the commented section of the Pull Request text:
Requesting a pull to github:master from JPry:jpry_test

I hope that helps you get things working correctly.

Thank you @JPry for your guidance.
@HaraldNordgren Hub also takes note of how your git remotes are named and makes assumptions about the "main" project based on that. For instance, it looks for remotes named "upstream", "github", and "origin" (in that order), and when it finds one it assumes that it points to the canonical version of the project (project A in your case) that PRs should be opened against.
How are your git remotes named?

I never added an upstream remote because I didn't realize that I should. So, yes this works:
git remote add $url
hub pull-request

Although the PR title was not filled with the first paragraph from the commit message like I would have expected. Minor thing.
I'll close this. Thanks!

@HaraldNordgren Thanks for the update! If the PR title keeps being what you don't expect, you can open a new issue detailing what you're inputting in the text editor, what your expectation was, and what happened instead. Don't forget to include the hub version number!


Longer training and stronger augmentation do not work for Cifar 100

Hi,
I am trying to use the RandAug instead of RandCrop and cosine learning rate schedule to train the whole Cifar100 dataset. But they do not work. The baseline is RandCrop with step learning rate schedule (initial learning rate is 0.1 and divided by 2 at [60, 120, 160] epochs with 300 epochs in total). The closed-set accuracy of baseline is 0.75, and RandAug and cosine learning rate schedule (restart 0 or 2 times for 600 epochs) does not work, can you give me some advise?
Best regards.

Hello, apologies for the (very) late response!
We performed all ablations on TinyImageNet, taking the best setting for this and transferring it to the other tasks. If I recall, we only tuned the RandAugment hyper-parameters for each of the other datasets.
As a rule of thumb, best OSR performance will be given by optimising hyper-parameters for the test (or val) closed-set accuracy of the dataset you are working with.


Refactor: CreateCollection

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
1st issue is the component registration, while dynamic import (lazy-loading) component registration in this syntax works on nuxt-bridge, it doesn't work on nuxt 3.
2nd issue is the unnecessary re-registration of watcher inside a submit function. This may cause bugs or may affect performance. Everytime the function is run, another watcher watching the same reactive reference & doing the same logic is created.
This issue is also present in

bsx/Create/CreateToken.vue
collection/drop/DropContainer.vue
rmrk/Create/CreateCollection.vue
rmrk/Create/CreateToken.vue
stmn/Create/CreateCollection.vue

Do we want to this changes and change all the above files as well?
PR Type

[x] Bugfix
[ ] Feature
[x] Refactoring

Context

[x] Closes #6959
[ ] Requires deployment <snek/rubick/worker>

Before submitting pull request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality

Optional

[ ] I've tested it at </ksm/collection>
[ ] I've tested PR on mobile
[ ] I've written unit tests 🧪
[ ] I've found edge cases

Did your issue had any of the "$" label on it?

[x] Fill up your DOT address: Payout

Community participation

[ ] Are you at KodaDot Ecosystem Telegram?

Screenshot 📸

[ ] My fix has changed something on UI; a screenshot is best to understand changes for others.

Copilot Summary

🤖 Generated by Copilot at 5621f42
Refactored component imports and added feedback for collection creation in CreateCollection.vue.

🤖 Generated by Copilot at 5621f42

To make the code more compact
Some components are imported direct
And when you create
A collection, you'll see
A feedback message that's perfect

#7016 preventing me from testing

I think this PR has been made redundant by

#6974

I think this PR has been made redundant by

refactor: unify create collection #6974

That looks good. It's better to unify them all as it is indeed redundant


How are inverse relations handled in the deposit API?

do we normalize inputs so relations always have the work DOI as an object?
how do we specify the DOI prefix field on the deposit/relation model?

See #493. In almost all cases the DOI is the object. The exception are a few agents where the opposite direction makes more sense.


Avoid hard-coding container names and use docker-compose…

… instead of docker

Motivation and context

We can't run multiple cvat on the same host because the container names are hardcoded (and clashes with the already running containers). Omitting container_names allows to use the default ones which are the name of the service, prefixed by the project name (--project-name which is by default the directory name) so eg. cvat becomes cvat_cvat_1 if we cloned the repo to cvat/ (the _1 is because it's suffixed to allow multiple containers of the same image).
So now we just have to clone to another directory, change the 8080 port, and it works because everything is prefixed. Small change: it's better to use docker-compose something because it will find the containers of the current project, instead of having to prefix the names manually (ie. use docker-compose exec cvat bash instead of docker exec -it cvat_cvat_1 bash). I updated the documentation.
How has this been tested?

Currently running 3 cvats on the same host without issues.
Checklist

[x] I submit my changes into the develop branch
[ ] I have added description of my changes into CHANGELOG file
[x] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (read github docs)
[ ] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[ ] I have updated the license header for each file (see an example below)

# Copyright (C) 2020 Intel Corporation
#
# SPDX-License-Identifier: MIT

Pull Request Test Coverage Report for Build 6187

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.01%) to 65.12%

Files with Coverage Reduction
New Missed Lines
%

cvat/apps/engine/media_extractors.py
2
77.06%

Totals

Change from base Build 6185:
0.01%

Covered Lines:
11034

Relevant Lines:
16532

💛  - Coveralls

@artemisart  Hi, sorry for the late reply and thanks for the PR, in general I agree with you that it is better not to use hard-coded names for containers, and this problem is especially relevant for multiple installation of CVAT. But I think that in most cases our users have only one installation, and it is better to have a predictable container name regardless of the compose project name and some suffix. You also missed one important detail in the documentation: any docker-compose command should run in the cvat directory. For example, I don’t need to know what name compose was generated for the cvat service or directory where the cvat code is located to run the command docker-compose logs ..., so I just ask the user to run docker logs cvat.
Anyway for multiple installations , it is possible to override the container name in the 'docker-compose.override.yml' file.

@artemisart ,
Thanks for the PR. Really great to see contributions from the community. Don't hesitate to send us new ones but discuss them before to avoid extra work on your side.

Anyway for multiple installations , it is possible to override the container name in the 'docker-compose.override.yml' file.

It looks like we have a clear way to workaround the issue. You need to update docker-compose.override.yml in any case to resolve conflicts between ports. The same can be done for container names.
I will close the PR.

@azhavoro @nmanovic I understand that not hard coding container names introduces a little bit of complexity, but it could just be detailed in the documentation to use docker-compose in the right folder? I think the alternative of overriding every container name, including the extensions, is harder.

@artemisart , let's start with a documentation how to solve the particular problem using docker-compose.override.yml. To run CVAT on the same machine you have to update ports in any case. Thus it makes sense to ask to update container names as well. Meaningful names are better than the random ones.

Just arrived here because I also ran into the issue of not being able to run multiple CVAT instances on the same machine. My use-case is that I have a CVAT v2.1.0 installation and was trying to clone it before upgrading. I'll give it a try with docker-compose.override.yml at the next attempt :) From my experience it is rather unusual to hardcode the container names.


Pass in current_epoch

Considering we calculate the current epoch in the per epoch processing section, we should be able to pass it to the update_validator_registry function.

What would the benefit of this change be?

I don't think there is a point in recalculating things that have already been calculated.

Sure, though get_current_epoch is hardly a calculation; it's just slot // EPOCH_LENGTH.


Use parquet metadata for more datasets

including text, audio and full hd image datasets

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Codecov Report
Patch coverage has no change and project coverage change: -1.65 :warning:

Comparison is base (818d288) 90.22% compared to head (317930d) 88.57%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1236      +/-   ##
==========================================
- Coverage   90.22%   88.57%   -1.65%
==========================================
  Files         180       23     -157
  Lines       10258     1637    -8621
==========================================
- Hits         9255     1450    -7805
+ Misses       1003      187     -816

Flag
Coverage Δ

jobs_cache_maintenance
?

jobs_mongodb_migration
?

libs_libcommon
?

services_admin
?

services_api
88.57% <ø> (ø)

services_worker
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

services/api/src/api/routes/rows.py
78.11% <ø> (ø)

... and 157 files with indirect coverage changes

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


update

Codecov Report

Merging #45 (3e6b2be) into main (23ec514) will decrease coverage by 5.75%.
The diff coverage is 42.85%.

@@            Coverage Diff             @@
##             main      #45      +/-   ##
==========================================
- Coverage   88.41%   82.65%   -5.76%
==========================================
  Files          33       36       +3
  Lines        2003     2197     +194
==========================================
+ Hits         1771     1816      +45
- Misses        201      344     +143
- Partials       31       37       +6

Impacted Files
Coverage Δ

internal/purchase_orders/controller/controller.go
87.87% <0.00%> (-12.13%)
:arrow_down:

internal/buyer/controller/controller.go
91.75% <100.00%> (ø)

internal/purchase_orders/service/service.go
100.00% <100.00%> (ø)

internal/product_batch/repository.go
82.35% <0.00%> (-17.65%)
:arrow_down:

cmd/server/handlers/employees.go
0.00% <0.00%> (ø)

internal/product_batch/service.go
100.00% <0.00%> (ø)

cmd/server/handlers/inbound_orders.go
0.00% <0.00%> (ø)

internal/employee/service.go
68.85% <0.00%> (ø)

internal/employee/repository.go
0.00% <0.00%> (ø)

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 23ec514...3e6b2be. Read the comment docs.


Patch for eolearn 1.5.0

Tests will fail until it is released.
Requirements need to be revised after eo-learn 1.5.0 is released in case extras changed.
Most of the changes are due to changes in parsing.

Some additional clarifications:

i decided to remove interpolating features pipeline because it was never used anyway and we dont want numba unless required
i removed some download test configs, no reason to download that much data just to check that our time-period parsers work properly


VTOL: use filtered airspeed for transition condition

We transition too fast in gusty conditions, increasing the risk of stalls.

Should consider this before changing https://github.com/PX4/Firmware/commit/aa90c0686b766102b3bd1efb2a4f7ecd28adbe61

@sanderux No, that's entirely unrelated. You need to have TECS and the VTOL control to use the same quantities, because both use airspeed to ensure sufficient lift. They can not be using different ones, only TECS can also use true airspeed to ensure a mission profile which included traveling fast enough, but that has nothing to do with having enough lift.

The commit i referrenced states exactly what you say. Thats why i referenced it ;)

I'd like to add, after another round of log analysis, that the 2 flights where our plane stalled during the transition had nothing to do with a gust induced airspeed spike but in-fact only with the (now fixed) TECS pitch integrator bug.
Using the filtered airspeed still makes sense though. We could think about taking the filter from TECS and feed it into the control state somewhere.

Here is a Log from the same issue. Early stop of quad motors due to high wind creating stall.
http://logs.uaventure.com/view/3vg29z4WwQYkfEb5gLq9ak
What is the point of setting front transition time when the switch is made by the airspeed? I don't know how it is coded. If it is set that either one of these conditions trigger the quad stop. We think it is better to make the transition such that it will be at least the time of the front transition time and then after that to check if the airspeed is achieved. This way we guarantee at least # of seconds preset for the transition independent from the weather conditions. Because otherwise just ONE gust of wind could brake camera for 15K US :).

You have set the transition speed to stall speed: VT_ARSP_TRANS = 10.0 that's a very fundamental issue. You should set the transition speed to more than your FW TRIM speed.
I also think that for your particular airframe the speeds are very low and likely very close to stall, so the slightest wind gust will stall your plane.

@tubeme

I agree with Lorenz on transition speed
Could you update to beta or at least v.1.2 for your tests? We just tested v1.2 and we get very good performance if everything is tuned and properly setup.
In this log you shared, is looks like it was already destabilized just before the transition happened, and thrust was reduced almost completely.

Also tuning: I looks like it was windy, but your system didn't seem to try very hard to hold the attitude setpoint. That is why it's wobbling around.

Here's an example in similar conditions with our Fun Cub. Note that the quad setup on our Fun Cub is not well sized (too weak). You can see that all motors are close to saturation but it still holds attitude in almost 7m/s wind. (until it lost it because of complete thrust saturation when the conditions exceeded the systems limits eventually)

In general: from the logs I saw so far, the airspeed filter would need to have a pretty large time constant to actually make a difference. Apart from Sander's malfunctioning airpseed sensor, there were never really  "spikes" as in a jump of 3-5m/s in below 1 second. So we need to find out what a gust looks like to determine the filter properties. Also what TECS does internally looks like it would not be enough.

You are very correct! We are making endurance testing so we want the least amount of quad during the transition but still on the safe side. Our Stall speed is about 7-8 m/s and we are comfortably flying it in manual at that speed 7-10m/s. For the testing we gave a little more in the parameters ie. FW_AIRSPD_MIN = 10.0. For the transition in this conditions we need 4 seconds never had any problems with the KK2 just 4 seconds made with script in the Taranis to transfer throttle. And this way we have 1:30h of run with Pixhawk in Manual. So far in Loiter we make 1:10h. Of course there is an extra cost in Loiter because of servo work and the plane banked all the time which reduces the efficiency. We preset the throttle during trnasition so we know the trust for this 4 seconds. I expect if after this 4 seconds at my preset throttle then if the airspeed is not achieved the PX4 to apply stall prevention technique by dipping a little and applying 100% throttle.

@tubeme Oh btw on your other question, the front transition timeout is only used to ramp up fixed-wing throttle. It might actually not be such a bad idea to wait with the transition until that finished, still thinking about the consequences though when there actually is steady wind.

@LorenzMeier @AndreasAntener Sometimes I think the simpler the solution the better. Why do I preset the VT transition throttle and VT time for front and back transitions if they are not constants? The the transition procedure is a constant! with one exception the airspeed. Detecting WIND and its direction is a very very big and interesting topic but it is pretty complex and should be dealt in the future when there is time for this I think. There are Autopilots that can detect wind and calculate at what spot to launch the parachute in order to reach a specific landing spot. For the transition I think just 4 seconds preset throttle is perfect, then after we see the condition for air speed. If the craft is at higher altitude we apply the stall recovery algorithm if the craft is at lower altitude we recover with quad. BTW I think that there is a need for more thorough work on stall recovery algorithms! Different techniques for different frames!

The steady wind does not mater. If the wind is front one I will just be at trim speed after the transition, no problem with that. If back wind I might experience stall approach or stall in very high gusts. Both conditions need stall recovery. I guarantee you if the quad is holding the plane for 4 seconds I will generate a lot of speed even in strong weather. You see our throttle is at 0.7 because of economy and also because we want it smooth. Our transition looks like Star Wars transitions I swear :)

We're not talking about wind detection or anything complex here, rather about the simple fact that you need airspeed to fly.
Let me ask you the following question.
Would you rather want to sell a product that transitions like this:
https://youtu.be/fqSvGcRu0YY?t=67
(sorry, couldn't find a better video)
Or like this:
https://youtu.be/eMhoDWZn5TM?t=45

We are perfect with just the seconds. Or at least can you add a parameter that we can preset the time that the quad should hold during the transition? With this for our case we will not need gust detection. Just this parameter...

Of course it is the second Video that I want to sell :)

:)
You know, I'm not changing my mind about needing airspeed here ;) but considering the following assumptions:

a smallish airframe that is able to accelerate to cruise speed in a few seconds
and that you fly in completely manual control

Then I could argue for your case in that we currently have a conceptual break for the transition because you need airspeed but for the rest of the flight you don't. So maybe this is a valid option in your case. But as soon as we're talking about more than just attitude stabilization, airspeed is necessary.

@tubeme You used incorrect settings for the controller. The equivalent of your throttle ramp is just setting a higher transition speed.
If you have tail wind the approach we have implemented will not transition if you don't reach enough speed to safely transition.

OK we will change the VT_ARSP_TRANS to higher value. We will report back. Wind is problem though we've had similar cases with VT_ARSP_TRANS =12 which is our TRIM speed. We have to remember that until we reach steady stream of air at 1-2 m/s over the stall speed we have no lift in the wings at all. And if a gust triggers the switch the plane becomes uncontrollable. Given that we  make the transition at 5-10 meters in the air it is certain crash. And we want it low because we want to save energy.

We could choose to support both considering we will probably implement minimum transition time (https://github.com/PX4/Firmware/pull/3763#issuecomment-188514226) , that combined with an (explicit or implicit) transition airspeed of 0 would give you the result @tubeme suggests.
it would indeed not be safe in a tail wind condition or if the timeout is too low.

@tubeme the minimum transition time will also address the wind gust situation

I will have a PR tomorrow: https://github.com/PX4/Firmware/issues/3850

@tubeme Start with setting your transition speed with something higher than trim and just below max. I'm pretty sure your throttle ramp overshot 12 m/s by far, so you might as well shoot to achieve the same.

@tubeme set your MPC_Z_VEL_MAX to 1.5, this will fix your backtransition wobble problem

@LorenzMeier @sanderux Thank you! We will put 14 m/s and change the parameter.

and i would increase your VT_B_TRANS_DUR to 3.5 for an even smoother back transition

You might laugh but we want to mimic what the birds are doing. Their transition starts almost immediately.

@tubeme Don't forget that your attitude tuning also looks bad. You should have better attitude control in hover.

@LorenzMeier We have more work on the PID tuning for the quad that is for sure. BTW my partner is coming to Bulgaria so we will concentrate on PID tuning of the Quad for the following couple of days. Lorenz I still cannot calibrate my magnetometer...
https://github.com/PX4/Firmware/issues/3711
I tried everything and it gives the same excessive offset error. Tried disabling the external one and calibrating only the internal one nothing changed... Really I'm clueless...

@tubeme do you have any more logs on recent versions of the firmware?

What's the current state of this? Should we centralize the filtered airspeed and publish from sensors? Could we just use EKF2 and control state airspeed everywhere?

@dagar @AndreasAntener Can we close this?

It's still a topic. The very cheap solution for VTOL is we just do a very slow lowpass over airspeed to make sure we get some more safety. But it's not the best solution. I could imagine having some form of transition progress state estimation in EKF taking airspeed and velocities into consideration so we don't just rely on one sensor. This would benefit the airspeed-less operation as well.

@LorenzMeier @AndreasAntener @sanderux @dagar
So far we have a very good results with 1.5.0. Indeed such a good results that yesterday we've had a hardware problem with one of the motors (the mount just turned 30 degrees in flight because it was not tight enough) and the vtol just span on hover at one spot (but controlled spin). So we just wanted to see if it could make a transition. And it did it just perfect transition which looks very stable even with bad hardware problem.
But there are some preconditions. 1. Perfect PID tunning.  2. Perfect Airspeed calibration.
We still have huge problem calibrating the airspeed in wind condition on the field. So what we did is make a table with the relation between temperature and pressure and change the airspeed calibration manually with the parameter on the field. Thus far the system works but it is not novice proof, and it could not be for a users.
We could not calibrate the airspeed with 1.5.2 and 1.5.3 even on a bench test. Tried probably 30 times So without airspeed sensor both 5.2 and 5.3 perform terribly given the VTL3 we are working on is 2.1m wingspan.

Closing this particular issue. I'm thinking of adding additional transition conditions. Later we should find a way to sync this with the airspeed TECS uses.


Moving Carousel and Tabs out of the sandbox

Codecov Report

Merging #328 into development will not change coverage.
The diff coverage is n/a.

@@              Coverage Diff               @@
##             development     #328   +/-   ##
==============================================
  Coverage          82.27%   82.27%
  Complexity           879      879
==============================================
  Files                 84       84
  Lines               2804     2804
  Branches             518      518
==============================================
  Hits                2307     2307
  Misses               205      205
  Partials             292      292

Impacted Files
Coverage Δ
Complexity Δ

...cq/wcm/core/components/ui/childreneditor/Item.java
68.96% <ø> (ø)
15 <0> (?)

...mponents/internal/models/ResourceListItemImpl.java
93.33% <ø> (ø)
7 <0> (?)

.../wcm/core/components/internal/models/TabsImpl.java
85.71% <ø> (ø)
4 <0> (?)

...ponents/internal/models/AbstractContainerImpl.java
92.85% <ø> (ø)
7 <0> (?)

...adobe/cq/wcm/core/components/models/Container.java
100% <ø> (ø)
4 <0> (?)

.../adobe/cq/wcm/core/components/models/Carousel.java
100% <ø> (ø)
2 <0> (?)

.../com/adobe/cq/wcm/core/components/models/Tabs.java
100% <ø> (ø)
1 <0> (?)

...components/internal/servlets/ContainerServlet.java
68.75% <ø> (ø)
11 <0> (?)

.../core/components/internal/models/CarouselImpl.java
100% <ø> (ø)
5 <0> (?)

.../wcm/core/components/ui/childreneditor/Editor.java
95% <ø> (ø)
10 <0> (?)

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 14622d0...f9e05ac. Read the comment docs.

A few things to review:

location and versioning system for newly introduced commons clientlibs and component
location (and possible versioning) for childreneditor Sling Models; also adding a package-info
removed sandbox completely as the whole development branch can be considered a sandbox


Enable silent option/mode for CLI and webpack plugins

The webpack plugin logs verbose diagnostic information to the console.
This is nice for troubleshooting but it creates unnecessary noise in logs when not.
This PR adds --silent flag to the CLI package and a { silent?: boolean } option  to the webpack plugin packages to enable switching off the verbose logging in both scenarios.
Please approve and release new package versions.

Thanks for your contribution @josundt !

Thanks for your contribution @josundt !

Thanks for releasing the fix quicky @dannyvv! 👍


[services] make build fails with go 1.20.1

Reported by @nickcernera.
Works with go v1.19.
Error:

I'm on 1.21 and services build just fine, so gonna close for now!


Example on how to make video take full width/height of container dynamically in the canvas

Hi, 👋
I am trying to load a video with react-three-fiber. It works fine but I'm struggling with trying to resize the video to fit within the canvas, I'm trying to make it fit the entire width/height of the canvas while maintaining aspect ratio. Basically, I would like to be able to plugin the React component into any container and have it automatically fill up the container base on the container's size.
Here is the example: https://codesandbox.io/s/5403oxwy4k
Any help would be greatly appreciated!

Not sure about aspect ratio, that's related to your usecase, but generally you can fetch the viewport from useThree
  const { viewport } = useThree()
  return (
    <mesh>
      <planeBufferGeometry attach="geometry" args={[viewport.width, viewport.height]} />

Ohh thank you, that helps a lot! Do you know if there's a better way to update the uniforms? Currently just using useRender(() => { material.current.uniforms.time.value = xx}) but wondering if there's a better way to do it.

useRender(() => void (material.current.uniforms.time.value += 0.01))

Is a shorter version, but useRender in general is the right tool for this.


Country

Is it possible to add a country field (with a country dropdown) to users profile?

You can add an extension to the Member object to add a Country field (and associated CountryDropdownField for selecting a country). However that's outside the scope of this module directly.


JAMES-3252 DomainList autoDection should be turned off by default

Also take this opportunity to clean default domains within all configurations

Merged


Clearly define if this is for ECC6 or S4

Clearly define if this is for ECC6 or for S4 Hosted/Private Cloud RISE

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

ID: a1688f77-7776-0990-d35b-ccf008d1865b
Version Independent ID: 419488eb-a075-00fc-f095-f8be59d961e8
Content: Exchange Online Integration for Email-Outbound from SAP NetWeaver - Azure Virtual Machines
Content Source: articles/virtual-machines/workloads/sap/exchange-online-integration-sap-email-outbound.md
Service: virtual-machines-sap
GitHub Login: @MartinPankraz
Microsoft Alias: mapankra

@MikeBakerSAV
Thank you for bringing this to our notice. I have assigned this to author to look into this further. We will do those necessary changes if they are valid.

From my point of view that doesn't matter, because the write-up concerns NetWeaver, which is the foundation for ECC, S4 and SAP managed offerings like RISE. We can call that out explicitly but SAP Basis folks, who are the primary audience for this will likely not misunderstand this.
@msftrobiro @AlastairMorrison @videshmukh do you agree? Or should we add a note to the introduction?

@MartinPankraz - While I do agree with you, I think it wont harm to add a note that it applies to old and new products alike. Plus makes searching for it easier, if one where to search for S/4 email it might not be picked up.

@MartinPankraz @msftrobiro I agree should add reference to S/4 etc for searching. Equally this would apply to SRM and other NetWeaver systems.


[C#11] Required uuid causes unnecessary CS8073 warnings / suppress 8073 with or instead of 472

Ok, assuming a definition like this:
    "/res/{operatorId}/Accounts/{accountNumber}/Login/{loginId}": {
      "put": {
        "tags": ["Account"],
        "summary": "Update Login ID",
        "operationId": "ResidentialByOperatorIdAccountsByAccountNumberLoginByLoginIdPut",
        "consumes": [],
        "produces": ["application/json"],
        "parameters": [
          {
            "name": "loginId",
            "in": "path",
            "description": "",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Residential_Data.DTO.AccountResponse"
            }
          }
        }
      }
    },

the nswag generates a code snippet like this:
public async System.Threading.Tasks.Task<AccountResponse> ResidentialByOperatorIdAccountsByAccountNumberLoginByLoginIdPut(System.Guid loginId, System.Threading.CancellationToken cancellationToken)
{
    if (loginId == null) throw new System.ArgumentNullException("loginId");
...

This now causes CS8073 warnings on loginid check, since Guid is a value type and not nullable by nature.
You are already handling this warning for ints, by using
#pragma warning disable 472 // Disable "CS0472 The result of the expression is always 'false' since a value of type 'Int32' is never equal to 'null' of type 'Int32?'
you need to replace it with a general warning exclusion for C#11 code gen:
#pragma warning disable 8073 // Disable "CS0472 he result of the expression is always 'false' since a value of type 'Guid' is never equal to 'null' of type 'Guid?'
this will also cover int check (472) for c#11 compiler.

Just started getting this today when upgrading a project from .NET 3.1 to .NET 6.0 that is using code gen. Thanks for the work around. Would love to see this fixed in the generated code though.


python3 compatibility, fix some bug

Thanks, I'll try to find some time too test these changes. Did you manage to have start-maja running on Python 3 with these changes ? Does it still run in Python 2.
Regards,
Olivier

Hello, thanks for your answer.
Start-maja is running on Python 3 in my side and it works with these changes. I think it still run on Python 2, I modified only the function "file" to "open" in start_maja.py. Concerning others scripts, mainly I put brackets in print function so it will work but the behavior of print will be different perhaps. I did not run it on Python 2.
Maybe it's a good idea to create a "Python 3 branch" meanwhile the end of support for Python 2...


Add custom company & contact page load more blocks

Add load-more logic to company’s landing page to load all the company’s content instead of page to page scroll
Add load-more logic to pull all author’s content instead of page to page scroll

@B77Mills the build is currently failing


Added Tailwind CSS

Added Tailwind CSS
@CodiumAI-Agent /review

PR Reviewer Guide 🔍

⏱ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Key issues to review
Styling OverhaulThe removal of existing CSS styles and replacement with Tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;) could lead to unexpected visual changes if not thoroughly tested across all components and pages.
Feature ReductionSignificant functionality and UI elements (like interactive buttons and links) have been removed from App.jsx. Ensure that this simplification aligns with project requirements.


Fix an issue with cloning map objects

Noticed an issue when attempting to retrieve a map from the observable store.  The cloner service needed to properly deep clone a map object.

Nice - thanks Chris! Wondering if we should get Set in there too while the changes are being made? Any thoughts on that?
In looking at http://kangax.github.io/compat-table/es6/#test-Map, Map and Set are supported pretty well across the board (something I have to worry about with changes like this) so I don't see a problem there at all which is good.

I'm going to go ahead and merge this. Let me know if you end up needing Sets at all. I haven't used those much in a "real" app at this point but others may be relying on them a lot.

Oh hey sorry, I got tied up and forgot about this.  I also havent used sets
very often.  But I can give that a shot tomorrow probably.  Also enjoyed
your talk at ng-conf, i think your project is a good starting point for my
company/group.
On Tue, May 5, 2020 at 6:58 PM Dan Wahlin<EMAIL_ADDRESS>wrote:

Merged #62 https://github.com/DanWahlin/Observable-Store/pull/62 into
master.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/DanWahlin/Observable-Store/pull/62#event-3306312074,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXMAG5JDYOKTLTMCAEDEJ3RQCKZRANCNFSM4MVUHUAA
.

No problem - I can sympathize. :-) Busy week. I'm adding a test for this (to test Map) and will try to get an updated version out there soon. Thanks again.

In doing the unit test I realized that the code you added won't be hit unless an actual Map<K,T> is added as the store state. Something like:
export class MapStore extends ObservableStore<Map<any, any>> {

}

Is that how you're using it? Do you have a (simple) example of how you're using setState() and getState() with that? For example, are you getting the Map out using getState(), updating a key or value in the Map, and then calling setState(yourMap)? Haven't used it that way before but it would provide a lot of flexibility for keys/values.

Currently I just have map used Within an interface I defined.  Instead of
just a map
On Tue, May 5, 2020 at 7:34 PM Dan Wahlin<EMAIL_ADDRESS>wrote:

In doing the unit test I realized that the code you added won't be hit
unless an actual Map<K,T> is added as the store state. Something like:
export class MapStore extends ObservableStore<Map<any, any>> {
}
Is that how you're using it? Do you have a (simple) example of how you're
using setState() and getState() with that? For example, are you getting the
Map out using getState(), updating a key or value in the Map, and then
calling setState(yourMap)? Haven't used it that way before but it would
provide a lot of flexibility for keys/values.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/DanWahlin/Observable-Store/pull/62#issuecomment-624360654,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXMAG2WDGEI4TO6LX6FZ5TRQCPBNANCNFSM4MVUHUAA
.

OK - thanks. I'm not seeing this code ever hit in the cloner service (in my unit test) when adding a map like shown above in the interface, so I'm trying to figure out what might need to be changed:
else if (value instanceof Map) {
    result = new Map(value);
    return result;
}

I think I got it figured out for both scenarios. Thanks for your quick response.


Test TestCalcNetworkLosses

Scale by 1e18
Fix loss initialization logic
Fix naive/combined variable switch
test

Should be good to go!

yeah we can figure out a longer term solution


Why the example subject to SQL Injection attack?

One of the examples has FromSql($"SELECT * FROM dbo.SearchBlogs({searchTerm})")
There is a warning not to do this
Why give an example and then warn not to use it?

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

ID: 7e1289d5-8364-18a4-3445-6bba05c6854b
Version Independent ID: 2680e647-f64a-7991-f821-3b5e2a845960
Content: Raw SQL Queries - EF Core
Content Source: entity-framework/core/querying/raw-sql.md
Product: entity-framework
Technology: entity-framework-core
GitHub Login: @rowanmiller
Microsoft Alias: divega

If you look at the api or IntelliSense you'll see it's not accepting a string but instead a FormattableString, this means the string isn't actually interpolated and is actually safe.

Duplicate of #410


Input validation missing for comment body edge cases.

Just found this project from the reddit thread! I like what I see - the whole project appears well-structured and clean. This issue is to help in validating user inputs.
Example of the behaviour this issue seeks to address: https://www.reddit.com/r/xkcd/comments/erydbl/introducing_ubobbytablesbot/ff7a610/
This is probably pretty obvious but pointing out all the same - validation on the inputs looks to be necessary at either 1 where the the body of the comment is pulled out, or 2 where the find_numbers actually makes use of the input. Looks like the one case where user input has been shown to cause a problem is when the input is simply too large, in which case you could curb this from breaking by doing one or multiples of the following:

Introduce a try/except block so a single user's invalid input doesn't cause the whole bot to stop for everyone, just for the one request.
Try to prevent a large input (like when a user writes an essay into a comment body, which could be unlikely to ever invoke the bot anyway) by truncating the body string to a manageable size. One could introduce a simple heuristic like...

body = comment.body[:1_000]

This heuristic ensures your comments can only ever be a certain size, and doesn't fail in the case that the input is an empty string. This of course relies on the input actually being a list-like object (as strings are in Python) so if for some reason the comment object were malformed this would fail. In that case, a try/except block within handle_comment() would help here.

Add further logic to valid_comment() to handle more of these cases. The truncation approach is likely a good addition here.

I'm working on a fix.

@jhonnystene are you still working on a fix for this? If not, I'd like to take a crack at it.

@aamirrasheed No, I'm not. Go ahead.

I'm assuming this is still open? Seems quite approachable for 'my first issue' :)
Is deshy-fs' solution insufficient? I suppose technically you could run into a 'y2k' problem but assuming 1 comic a week (I can't remember the posting frequency, it's been ages since I've regularly browsed xkcd), that's about 20 thousand years....
Are there other specific edge cases you want to handle? Ones that aren't solved by just ignoring what the user is inputting?

deshy-fs's solution seems to be sufficient, although he never added tests which are nearly essential at this point. If you are wondering why the pull-request never got merged, it is because he closed the issue himself.
Feel free to fork this repository and utilize some of his code if you would like. If you get to a point where you would like to merge your changes into this repository, please make sure you have added some tests. It gives me peace of mind and is great practice for your future in software development!

@yao-charlie
deshy-fs's solution seems to be sufficient, although he never added tests which are nearly essential at this point. If you are wondering why the pull-request never got merged, it is because he closed the issue himself.
Feel free to fork this repository and utilize some of his code if you would like. If you get to a point where you would like to merge your changes into this repository, please make sure you have added some tests. It gives me peace of mind and is great practice for your future in software development!

Sounds reasonable. I'll take a look. I'm probably going to look into generalizing it - e.g. scrape the latest comic # and set that as an upper bound - that way it's theoretically indefinitely scalable, as long as URL formatting doesn't change. Let me know if you think that's already a bad path to go down :)

There is already a function to retrieve the latest comic which you might find useful.
I will leave it up to you to decide how you would like to implement your solution. I think that I myself would just truncate the number to a relatively small amount of digits, but in no way am I claiming that it is the best solution. No pressure either way though, just try to learn something and have fun!

I think I've mostly got it working but trying to write the test cases... I just want to check that whenever I call get_comic(self, number), that 'number' is already stripped to be just an int being passed? Your unit tests suggest that's the case since you're not testing anything but ints for numbers but want to double check my assumptions.
As an aside, is it bad form to ask about someone else's code in a production environment where the 'answer' is in the code? For this, python seems a little less careful since you don't explicitly specify the argument type.
Also, you suggestion re: function was very helpful!

@yao-charlie I too noticed that we are passing integers to get_comic in the tests, even though in bot.py we're actually passing strings.
But that isn't an issue since firstly, Python sets the variable type based on the value that we assign to it and secondly, get_comic uses f strings, to form the comic's URL and the logging messages, which evaluate the provided expression and always produce a string.
So passing int or str won't make a difference except if we pass 404 as an int, because get_comic compares number with the string "404" which will evaluate to False.
Still, I think we should always pass strings just to be safe.
@joeyvanlierop  Please correct me if I'm wrong. :+1:

@deshy-fs - thanks for the feedback! I understand how Python's EAFP model works with variables and it can be mostly easier to work with. I get that most of the tests don't need to compare 'numbers', I just wanted to double check that when I was about to compare numbers as I'm doing a greater than check vs. the latest comic number, that I was intentionally converting it to an int and won't expect a 'real' string ever in the future. Of course, as I'm not familiar with all of Python's functionality, maybe I'm missing something that can be done with such operations with f strings.
That said, as I've explored more of the code, I'm thinking the crash was not really due to lacking the comparison function within get_comic(), but perhaps more in the saving the comment? I'm assuming requests doesn't have a weird upper bound and the xkcd site doesn't have a problem returning 404 for what seems like that arbitrarily large number, so the error must happen before. Just want to check as I don't think the unit tests cover this well - but I could be wrong being a novice and only looking over the code for a few hours.

@yao-charlie I'm sorry, I don't understand. What crash are you talking about? Are tests failing or is the bot crashing? And what error messages are you getting? It would help if you could post relevant parts of your code. Thanks.
For future reference: I looked a bit more into the comic_ids list and it seems that it's being filled both with strings and integers. But again, this doesn't break get_comic since we use f strings.

match_token returns a list of strings
get_latest_comic returns an integer
match_random returns a list of integers

@deshy-fs re:crash, just what was stated as the reason for reviewing this item - that reddit comment which crashed the bot. I don't think there are actually unit tests which target it right now (unsurprisingly). I'll check into your other statements.

@yao-charlie Does the bot actually crash? Or does it just hang / not respond? I don't think there's a problem with http requests or python strings when it comes to processing large input (I'm sure there's a limit but it must be much higher).

@deshy-fs I don't know. I've not run the bot myself so I haven't replicated the exact crash. I've been working on some other stuff since so I haven't looked more in depth yet. Will advise when I do.

@yao-charlie @joeyvanlierop It seems that for the input in question an exception is raised, which is caught here, so it just skips the comment instead of crashing.
The exception message is "Expecting value: line 1 column 1 (char 0)" which after a bit of digging I found out that it is raised by the json method on the statement config = response.json() below:
(link to code here)
        if response.status_code == 404:
            logger.warning(f"Comic {number} returned a 404 status code")
            return None
        elif response is None:
            logger.warning(f"Comic {number} returned none")
            return None
        else:
            logger.info(f"Got comic with number {number}")
            config = response.json()
            return config

So basically, because the comic doesn't exist, the response is not in json format and the json method raises an exception. I thought the first if statement would prevent this but it seems in this case the response code is 503 instead of 404.
Which is probably sent as a response when the input is too big? I'm not sure.
So a simple solution would be to check if the response code is 200 before proceeding to set config, to make sure the server returned the document that was requested which should be in json format.
I still think we should truncate the comment body down to let's say 10_000 characters and perhaps modify the regex to only match ids up to 5-6 digits long.
Let me know if you want me to work on this.

@deshy-fs Sorry for the late response - as noted some other items I was focusing on.
I'm certainly a newbie for response code behaviour but would a web browser return a different value from response.status_code? I would assume not but as noted, no expert. I get '404' when typing 'pi' less the decimal from the reddit attempt. Of course, if that were a simple case, I would assume the test cases in get_comic() would be sufficient to catch this.
As for your note, again from my limited understanding, technically there are ranges response codes which could also throw similar errors so perhaps it's better to check for a range for success?
Else, re: truncating, and matching ID lengths, I think it's a fine solution. I was trying to be more generic and set a variable to check against for the latest comic # so that it's infinitely scalable - but that only works if the error was in the code rather than due to a dependency, which is why I asked.
'Edit': hilariously enough, for some reason, I tried going to xkcd again with 'pi' but this time I got a "header overflow" error. Limited knowledge but seems to be a CSS-related error?

I get '404' when typing 'pi' less the decimal from the reddit attempt. Of course, if that were a simple case, I would assume the test cases in get_comic() would be sufficient to catch this.

I always get a 503 response.

As for your note, again from my limited understanding, technically there are ranges response codes which could also throw similar errors so perhaps it's better to check for a range for success?

That's what I think. Although from my knowledge, the requested file is only returned when the status code is 200. 201 creates the resource but doesn't send it, and 202 accepts the request but creates the resource later(?). I need to look more into "success" codes. But from my understanding, we only receive the JSON file when the code is 200.

I was trying to be more generic and set a variable to check against for the latest comic # so that it's infinitely scalable

If you can make it work indefinitely, that would be even better. Although requesting the latest comic every time could slow down the bot a bit. If I'm not mistaken, it takes about 1-3 seconds for each request (at least for me), whereas the truncation and regex solution probably costs a couple of ms. Feel free to do it however you think is best though!

I tried going to xkcd again with 'pi' but this time I got a "header overflow" error. Limited knowledge but seems to be a CSS-related error?

"Header overflow" probably means that an HTTP header overflowed. I don't think it's related to CSS in any way.
Let me know if you need anything else :smiley_cat:

@deshy-fs
I'll check more on what response I'm getting - let you know if I am getting differences but perhaps it's just the way a web browser communicates incomplete/failed requests on the front end.
I added a case to the code to return if we're not getting 200. It might be too restrictive but take it as a placeholder for now if we get to understanding more server response code behaviour.

Although requesting the latest comic every time could slow down the bot a bit. If I'm not mistaken, it takes about 1-3 seconds for each request (at least for me), whereas the truncation and regex solution probably costs a couple of ms.

You're right that it's a trade off. I've tried to limit its scope by carrying a variable to check against before making the request for a latest comic - thus it should only experience the slowdown if we're requesting a comic out of range. I think that's a fair trade-off as it should be pretty rare as is since mostly we're looking at typos or people doing this maliciously.
I do think both solutions are fine - it's more like 'what would you do in the real world to solve this' vs. 'what could theoretically happen to limit this' types of solution. An engineer would say the approximation is sufficient, whereas a mathematician wants it to be true in general. I've always preferred the latter but in a business and real life context, the former is generally better for being sufficient.
I guess you can check out my revisions here.

@yao-charlie Any update on this?

@deshy-fs I linked my suggested revisions and haven't heard anything more about what's causing the error. Not sure of the protocol otherwise - didn't feel appropriate to issue a pull request unless the behaviour was better defined but linked my revision in case it was sufficient.

@yao-charlie
I think the "Does not exist yet!" response for requests beyond the latest comic is a nice touch although I would personally skip the requested comic instead of responding, to make the bot as fast as possible but maintainers should have the final word on this.
Always checking if the response code is 200 should be sufficient to solve this issue but I think it's best to also truncate the comment's body down to 5-10k characters in order to avoid any future bugs/unwanted behavior when we receive unusually large input. Also, I think it's best to first check if response is None before proceeding to check what the status code is, to avoid any exceptions.
Lastly, we could also modify the regex to only match up to 6 digit numbers, although I don't think this is necessary as long as we truncate the comment's body. I guess it comes down to personal choice.
When you feel your changes are sufficient to solve this issue, feel free to create a PR.


[WIP] Add support of pattern detection for TOSCA topologies

Signed-off-by: Marvin Wohlfarth<EMAIL_ADDRESS>Add support for automatic detection of cloud computing patterns in TOSCA topologies.

[x] Ensure that the commit message is a good commit message
[x] Change in CHANGELOG.md described
[ ] Tests created for changes
[ ] Screenshots added (for UI changes)

Can one of the admins verify this patch?

I would recommend to re-iteratore on http://eclipse.github.io/winery/dev/ToolChain#github---prepare-pull-request. Especially the git reset upstream/master part and the usage of git gui to collect the contents of the commit.

Bump 😇

Please follow the steps at http://eclipse.github.io/winery/dev/ToolChain#github---prepare-final-pull-request to ensure that it is

one commit
only the changes you did are in place.


feat: auto-create dist in TS Actions

This is now being used in bcgov-nr/action-pr-description-add.


How can I use Processor

I want to create a multi-project template based on conditional. Simply I want to use #if like
           # if (condition/custom parameter)
		<SolutionFolder Name="$projectname$.ML" CreateOnDisk="true">
			<ProjectTemplateLink ProjectName="$projectname$.MLTrain" CopyParameters="true">
				App3.ML\App3.MLTrain\MyTemplate.vstemplate
			</ProjectTemplateLink>
			<ProjectTemplateLink ProjectName="$projectname$.MLConsume" CopyParameters="true">
				App3.ML\App3.MLConsume\MyTemplate.vstemplate
			</ProjectTemplateLink>
		</SolutionFolder>
           # endif

I get a custom parameter value from the user using IWizard implementation.

@KannanKrish Thank you for the question.
Right now, this only seems possible using XSD with Project templates (see this post).
For something built-in please consider starting a dialog with the product team under Suggest a Feature in the Visual Studio community.

@msebolt thanks for your help.
Can I get any kind of source code sample to follow?
Thanks

On second thought, this is a lot easier by just using Choose and When.
Here's an example that checks for a file called 'c.txt' and adds either 'a.txt' or 'b.txt' to the project accordingly:
<Choose>
        <When Condition="Exists('c.txt')">
            <PropertyGroup>
                <ProjectFile>a.txt</ProjectFile>
            </PropertyGroup>
        </When>
        <When Condition="!Exists('c.txt')">
            <PropertyGroup>
                <ProjectFile>b.txt</ProjectFile>
            </PropertyGroup>
        </When>
    </Choose>
  <ItemGroup>
    <Content Include="$(ProjectFile)" />
  </ItemGroup>

For more information, see Conditional constructs.

Closing the issue now, please add comments if there any concerns.

Choose and When I can't use it in the multi-template project. Exactly in root.vstemplate. I have a problem with selecting project not project items. I can use MSBuild Constructs after the project created. But I want to select a project I want to create.
For example, in xamarin Forms project I can create an Android, iOS, UWP project. Based on this user can select project type in the wizard. For example, I only selected the android project. Then Xamarin shared a project and Xamarin.Android project needs to create.
I am looking for that kind of solution.

@KannanKrish I see, at this point I can only recommend using a Multi-project template and keeping each project empty until you get the user's input and can then pull in the that particular project's items.
Since this is a limitation, start a dialog with the product team at Visual Studio community and they can either add it to the new feature list or perhaps know of a way this can be done currently.

Thanks @msebolt

Sure, no problem, apologies there's nothing more at this point.
Please refer back to this issue if you decide to involve the product team.


Add landscape orientation

changes

move LFLiveKit outside of cocopods to become a xcode project itself
enable all device orientation
lock the screen rotation when live capturing starts, and release the lock after capture is closed
pass UIInterfaceOrientation to LFLiveKit's LFLiveVideoConfiguration.defaultConfiguration call so that captured images are sized properly

Why are so many files changing in this PR? Should we be git-ignoring something?

@heff basically those files are entire set of the LFLiveKit. i need to extract them from cocopods so that i can modify them

Ok, that approach though makes it hard to tell where you made changes to LFLiveKit, and hard to push any improvements back to LFLiveKit if we want. Tell me if you think this approach would work.

Make a Mux fork of LFLiveKit.
Commit changes to the Mux fork with clear commits that show what changed
Point pods to our fork for LFLiveKit
If what we're changing about LFLiveKit is improving it, make a pull request back to LFLiveKit from our fork.

@heff it make perfect sense

find a better way to support all orientation without change the LFLivekit. Close this for now. open a new one soon