Programming Languages - "Flask" Complete Resources

Pull Request
Description
Hey @jfmartinz I have added the resources of Flask
 ./Programming Languages
    /Flask
     /readme.md

Please take a look, Thank you.
Closes #1015
Type of change

[x] Adding a new Resource
[ ] Adding a new Category
[ ] Documentation enhancement or fixes
[ ] Website enhancement or fixes

Checklist:

[x] I read carefully CONTRIBUTING.md
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation

Screenshots (if appropriate):
Please add screenshots to help explain your changes.
Additional

@jfmartinz Please have a look

@jfmartinz could you Please label level2 atleast.


Add search landmark role to form.

Example here on how to add the search landmark.
https://www.w3.org/TR/wai-aria-practices-1.1/examples/landmarks/search.html?

Fixed!


Packages without current source of licenses

The following packages do not seem to have publicly available sources, and the latest release (cached on the package servers) do not have any associated license file in them. I believe therefore that there is no permission for anyone to use that code, or even cache it on the package servers. I think these packages should be removed from the registry.
BigG
Estapir
GAPTypes
InfrastructureSensing
MeshFinder
MirroredArrayViews

(PS: there are quite a few other packages in the registry without licenses, but since they have associated github repos, I will ping their authors first. If there is no response, we will have to take a similar call about those. But that's for later)

I just checked InfrastructureSensing on JuliaHub to see how much usage it got which yielded nothing but intererstingly on JuliaHub the package is credited to @rbalexan. I'm not sure where JuliaHub gets that info but assuming this is correct maybe you could find other authors in this way?

Searching GAPTypes brought me to https://discourse.julialang.org/t/swizzling-the-super-type-of-a-foreign-julia-type-or-how-evil-must-i-be/33733 by @fingolfin

Ah, https://github.com/JuliaRegistries/General/issues/19033#issuecomment-873333386 has a bunch of authors: @moelf for BigG, @PetrKryslUCSD for MeshFinder, @lucianolorenti for Estapir, and @slmcbane for MirroredArrayViews

pinging @fingolfin

Great detective work, looks like all packages can go into the "ping author" pile (and looks like at least some of the authors are still active in the community so that's helpful).
Thanks Avik for looking at this, it's one of those things that potential enterprise users might (rightly!) freak out over.

While I don't disagree that we should remove these, I think that we should probably add terms of service to the registry, stating that by registering a package, you give at least some right to use the code. It's a little hard to pick terms; we may need to talk to a lawyer about this. I do also think that there's a pretty decent legal case to be made that by publishing and registering code, you obviously intended for people to use it, so that seems like some kind of implicit permission, but obviously we'd rather have explicit permission with clear terms.

in my case it was superseded by https://github.com/tlienart/Franklin.jl so can we just delete it? I'm sure nobody ever used it

I wonder if these could be removed from the registry?
https://github.com/PetrKryslUCSD/MeshPorter.jl
https://github.com/PetrKryslUCSD/MeshKeeper.jl
https://github.com/PetrKryslUCSD/MeshMaker.jl
https://github.com/PetrKryslUCSD/MeshFinder.jl
Their original raison d'etre passed.

Wouldn't the easiest way forward here for the authors to just retrospectively slap an MIT license on this and then there's no need to yank anything?

I believe these particular repos have all been deleted, so they would need to be reconstituted

In my case the repository was deleted, I guess it can be removed from the registry

Julia's pkg server is designed so that even if author deleted original repo, packages are still installable -- this is a good design.
deleting stuff from pkg server is a separate item, need manual review for sure

That's what I understood, and I apologise if I'm just confusing the issue here but I thought the problem was exactly that
(i) there are packages that are installable from General,
(ii) but don't have a license and therefore expose users to litigation risk, and
(iii) as a point of principle we don't want to yank things from General due to the promises we make on reproducibility.
It seemed to me that to the extent that authors are still contactable it might be feasible to get their permission to just retroactively add an MIT license to wherever these package now exist and General is getting them from, solving the litigation risk issue without yanking.
I might be misunderstanding though and again sorry if I'm just adding noise here.

from Slack, it sounds like from the copyright point of view, it might be OK if the authors just write something in this issue like "I waive copyright to the code in package XYZ", since that is a thing they have the right to do, and it would alleviate users from issues. It wouldn't solve the problem of there are packages without OSI-approved licenses (which is against General's policy in general) but it would mean that in such cases those problems aren't very impactful.

I regret but I have already deleted all of those packages!

https://github.com/PetrKryslUCSD/MeshPorter.jl https://github.com/PetrKryslUCSD/MeshKeeper.jl https://github.com/PetrKryslUCSD/MeshMaker.jl https://github.com/PetrKryslUCSD/MeshFinder.jl

As suggested above, I wish to state for the record that I waive the copyright to the above four packages.

In many jurisdictions you can not just "waive copyright". Certainly not in Germany.
at the same time, let's not blow things out of proportion. "expose users to litigation risk" is not very plausible. Yes, a hypothetical risk exists, but there are many hurdles against that (like: you must actually use that package AND it's copyright holders must decide to sue AND they must have standing (package non-trivial -- difficult to argue for eg GAPTypes) and a bunch more. The argument given above that  registering a package indicates intent to enable others to use your code also has legal weight. So it's not as black and white as some expressed it here. IANAL though (but I was involved centrally in legal proceedings against companies violating the GPL on code I hold
copyright on, which involved talking to lawyers about this quite a bit)
oh and indeed: conversely, even if there is a license attached you are not free of risk... eg you might VIOLATE that license. And get sued for that ;-)

@aviks What is the list of remaining packages that are still missing licenses?


cannot use hasure's claims_map with NHOST_JWT_SECRET

I am trying to use setting supported in HASURA_GRAPHQL_JWT_SECRET by Hasura like claims_map with nHost but I am getting error in the UI
Trying to set this
{
  "type": "HS256",
  "key": "my-secret",
  "claims_map": {
    "x-hasura-allowed-roles": { "path": "$.roles" },
    "x-hasura-default-role": "viewer",
    "x-hasura-user-id": { "path": "$.sub" },
    "x-hasura-org-id":  { "path": "$.org", "default": "public" }
  }
}

nHost UI only allow:
{
  "type": "HS256",
  "key": "my-secret"
}

while the UI doesn't let you set it right now I may be able to set it for you if this is a blocker. Feel free to DM me on discord and I can fix it for you.

@dbarrosop  really appreciate your support.
just sent you email with JSON I needed for NHOST_JWT_SECRET
it also contain key I am using.


Optimization of workflows: merge several YML flows into one

Task
Description:
Merge publish-jar.yml, publish-docker-img.yml and create-release.yml into one YML file.

Please consider the javadoc.yml file too. I think the Javadoc should be published only at the new version tag.


Can't limit the fps value when recording?

I have tried the command line to enter
scrcpy --max-fps = 60 -record file.mp4.
But the recorded video is around 30fps.
Then I went to check the source code and found that the recording is just writing the received Packet, and there is no place to set fps.
Does this mean that the recorded fps is entirely dependent on the refresh rate of my screen?
But oddly enough, if I don't limit the --max_fps, the video I record is only about 12fps.

https://github.com/Genymobile/scrcpy/blob/master/doc/video.md#frame-rate

The frame rate is intrinsically variable: a new frame is produced only when the screen content changes. For example, if you play a fullscreen video at 24fps on your device, you should not get more than 24 frames per second in scrcpy.

The --max-fps option just limits the frame rate (it prevents to be higher than the value that you set).


Fix exception when there is no color to pick

Fix "TypeError: Cannot read property 'substring' of null" when trying to use the color picker over an area with no color and only a background image.

How easy is it to hit this bug? I don't have time to test right now, but I'll do another quick release if you think it's major.

(I cannot say enough how much I appreciate your recent contributions.)

@idolize see my first comment. Does this warrant an immediate 0.4.14 release?

Not on my account. I am able to repro the bug on my end, but it isn't a feature I use often anyway, so it's your call.

OK. I think I'll go ahead and do a quick release, otherwise this might go unfixed for weeks. Thanks for weighing in.


Add Used by Section to Readme

If you would like a used-by section in the Readme, Puck is now being used in production by Georgetown Disruptive Tech's ReRoto.

Oh that's awesome @William-McGonagle.
We currently have a "Made with Puck" section in our Discord, but I'd love to also add something more public (like the README or even the docs website).

Would you like me to put together a pull request for it to make your life a bit easier? I can add some of the other projects from the Discord as well.

Hey @William-McGonagle - decided this belongs in the awesome-puck repo, alongside plugins and other community packages. I've added ReRoto for you - hopefully that works!

Thank you @chrisvxd - have a wonderful day.


Fewer register_activity() calls and only doing so when there's an autostop to worry about.

Turns out via some profiling Donny did that the register_activity call to
suspend autostop is computationally expensive. Trimming it down and only doing
it for clusters where it's actually needed.

Current dependencies on/for this PR:

main

PR #489   👈

This stack of pull requests is managed by Graphite.


Error: string indices must be integers, not 'str'  When agent attempts to use LlamaIndexTool.from_query_engine

    # Attempt to initialize query_tool
    query_tool = LlamaIndexTool.from_query_engine(
        query_engine,
        name="Knowledge Graph Tool",
        description="Use this tool to answer the user query.",
    )

    chatAgent = Agent(
     ... other config ...
      tools=[query_tool]
)

2024-08-29T13:32:02.389-04:00
Action: Knowledge Graph Tool

2024-08-29T13:32:03.132-04:00
Action Input: {"query": "bhp343"}
2024-08-29T13:32:03.132-04:00
I encountered an error while trying to use the tool. This was the error: string indices must be integers, not 'str'.
The agent works correctly without setting the tool. When i add the tool list to the agent config with the llamaindex tool it gives this error and does not use the tool.

llama-index==0.10.58
crewai==0.41.1
crewai_tools==0.4.26
langchain_aws==0.1.13
I rolled back crewai, crewai_tools, langchain_aws, and llama-index a few versions and was able to get the tool to work.


Add wayfarer and trek-router to benchmark

Thanks for the repo 👍. I've added two more routers to the benchmark. Not sure if you would prefer to run the benchmark yourself to update to README?

Hi! Thank you for contributing!
I'm not that sure on add trek-router, because it just find the route, but it does not build an usable route object, it does not call the correct handler and it does not strip the url from the query/hashes.
Same for wayfarer, indeed I'm using server-router, which is the server implementation of wayfarer :)

No problem 😄, will close the PR in that case.

Thank you anyway for contributing!
Please, if you find some other router fire a pr! :)


ion-back-button not displaying anything in Android or IOS

Bug Report :
Ionic Info:
  Ionic CLI                     : 5.2.3 (C:\Users\lsingh\AppData\Roaming\npm\node_modules\ionic)
  Ionic Framework               : @ionic/angular 4.4.0
  @angular-devkit/build-angular : 0.13.9
  @angular-devkit/schematics    : 7.2.4
  @angular/cli                  : 7.3.9
  @ionic/angular-toolkit        : 1.4.1

 Cordova:

 Cordova CLI       : 8.1.2<EMAIL_ADDRESS> Cordova Platforms : android 7.1.4, ios 4.5.5
 Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.0.0,
 (and 10 other plugins)

 Utility:

 cordova-res : not installed
 native-run  : 0.2.8

 System:

  Android SDK Tools : 26.1.1 (C:\Users\lsingh\AppData\Local\Android\Sdk)
  NodeJS            : v10.16.0 (C:\Program Files\nodejs\node.exe)
  npm               : 6.9.0
  OS                : Windows 10

Describe the Bug :
The ion-back-button doesn't show the icon in Android .
Steps to Reproduce:
      1)<ion-header>
          <ion-toolbar>
            <ion-buttons slot="start">
              <ion-back-button></ion-back-button>
           </ion-buttons>
          </ion-toolbar>
      </ion-header>
      2)run command in terminal :  ionic cordova run android -l

Expected Behavior
The icon should be visible.
Current Behavior :
Icon is invisible but when clicked on particular area where button should exist, it navigates back to the last visited page.
Additional Context:
1)My app is running in Android Simulator.
2)
When i mention property defaultHref="home"  the back icon shows up but i do not get navigated to last Visited Page. I get navigated to home page which is the expected behaviour i guess.In such case how do i navigate back to also visited page also.

Thanks for the issue. Can you try this again on the latest version of Ionic?

Hi @liamdebeasi , i cloned one basic project from 'https://github.com/ionic-team/photo-gallery-tutorial-ionic4/'  and following code of tab1.page.html
      <ion-header>
         <ion-toolbar>
           <ion-title>
                <ion-back-button ></ion-back-button>
              Tab One
        </ion-title>
        </ion-toolbar>
        </ion-header>

Please let me know why it is not working here it has latest version of ionic.

I can confirm this issue still exists with the latest version of Ionic

Do you think is there any alternative @andypotato?

Thanks for the issue. You are not using ion-back-button correctly. ion-back-button only appears if there are other pages in the navigation stack. In the app you provided, tab 1 is the root page and has no other pages in the navigation stack, so the back button is not going to show up.
I am going to close this as this is more of a support request. For further questions I recommend posting on our forums or our slack.


Not working when I manually add a tracker to the plugin

I changed the Instance param of the tracker section to accept the entire tracker URL. I'm not sure exactly what commit resolved this issue, but I believe it is resolved, at least as far as I can tell


JAV-14 Updated Coverage Configuration

Updated the UT configuration for Service Center
Note: After this pull requests is merged please enable the service-center project in https://coveralls.io and change the link in the Readme.md

Changes Unknown when pulling 3de17c489445d03d44a5a779ac495254376d73bd on asifhuawei:latest into ** on ServiceComb:master**.

Changes Unknown when pulling 6f22c3d10fd12eccd028e386e40182367f75029b on asifhuawei:latest into ** on ServiceComb:master**.

Changes Unknown when pulling 4ef0b2070c080c7e6cf555a7d05a3509b86dd2ee on asifhuawei:latest into ** on ServiceComb:master**.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@61e3690). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #11   +/-   ##
=========================================
  Coverage          ?   49.56%
=========================================
  Files             ?        6
  Lines             ?      458
  Branches          ?        0
=========================================
  Hits              ?      227
  Misses            ?      215
  Partials          ?       16

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 61e3690...4ef0b20. Read the comment docs.


Updating Textrowsets for high CPU script

#84 @troymoen1 could you review.

@gambit9009 can you review and provide any feedback


.js syntax highlighting not working

Issue Type: Bug

download https://github.com/mishoo/UglifyJS2/blob/master/test/compress/evaluate.js
open it in VSCode
observe that syntax highlighting is mostly dysfunctional

It works without a glitch a few versions ago.
VS Code version: Code 1.23.1 (d0182c3417d225529c6d5ad24b7572815d0de9ac, 2018-05-10T17:11:17.614Z)
OS version: Windows_NT x64 10.0.14393
Extensions: none

Thanks @mjbvz :+1:

still not working for some file

@tomwang1013 Open a new issue. Please include the source code as text of all screenshots


Improve: Open by its ID

It would be great to be able to initialize multiple modals with a generic JS code (with Modal from '@wide/modulus-modal') and open a modal with its ID.

Hi @MatHackDev
You already can do it.
When using data-modal HTML attribute, instead using a modulus component name as value, use an ID selector.
<button data-modal="#modalOne">Open Modal One</button>

<div class="modal" role="dialog" id="modalOne" is="modal">
  ...
</div>

Best regards


MAHOUT-1775 FileNotFoundException caused by aborting the process of downloading Wikipedia dataset

Instead of putting mkdir, downloading dataset, and extracting inside one single if block, put them into three separate ones.

LGTM

Merged, fixes MAHOUT-1775


Error during parse binary warc package

I found that current CommonCrawler implementation returns wrong result if a warc file contains binary parts.
It happen beacause of bufio.Scanner: according to golang documentation: 'Scanning stops unrecoverably at EOF, the first I/O error, or a token too large to fit in the buffer."  And I think its the third case. One can check this with following commands: "cat -v path_to_file | grep some_word" vs "cat path_to_file | grep some_word" on any warc file with large binary sections.

I'll fix it myself, it anyone wouldn't mind

@LastPossum, thanks, man! Appreciate looking into those edge cases!


Update menu

Moving from

to

cc @timkim

@timkim thanks for merging, can you pls deploy the changes ? I don't have permissions.


[REGRESSION][yandexmusic] full tracks / implement authentication

Checklist

[x] I'm reporting a broken site support
[x] I've verified that I'm running youtube-dl version 2020.05.29
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose log
$  youtube-dl --playlist-items 1 -v https://music.yandex.ru/album/33865/
[debug] System config: []
[debug] User config: ['-i', '--write-info-json', '--download-archive', 'archive.txt', '-o', '%(artist)s - %(release_year)s - %(album)s/%(playlist_index)s - %(title)s.%(ext)s', '-f', 'bestvideo[ext=mp4,height<=720]+bestaudio[ext=m4a]/best[ext=mp4]/best']
[debug] Custom config: []
[debug] Command-line args: ['--playlist-items', '1', '-v', 'https://music.yandex.ru/album/33865/']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2020.05.29
[debug] Python version 3.8.2 (CPython) - Linux-5.5.19-un-def-alt1-x86_64-with-glibc2.2.5
[debug] exe versions: ffmpeg 4.2.1-alt1
[debug] Proxy map: {}
[yandexmusic:album] 33865: Downloading album JSON
[download] Downloading playlist: Kraftwerk - The Man Machine (1978)
[yandexmusic:album] playlist Kraftwerk - The Man Machine (1978): Collected 6 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
[yandexmusic:track] 336579: Downloading track JSON
[yandexmusic:track] 336579: Downloading track location url JSON
[yandexmusic:track] 336579: Downloading track location JSON
[info] Writing video description metadata as JSON to: Kraftwerk - 1978 - The Man Machine/1 - Kraftwerk - The Robots.info.json
[debug] Invoking downloader on 'http://s48man.storage.yandex.net/get-mp3/4c61e976634d0303703761d6be13f6aa/0005a716df58c758/rmusic/U2FsdGVkX1_Xp1ykosAWCH59YitF_GqIaNXWgEje2r9oS4DgRPrNsBUeS_fuLr7rrBt-jWZaEKct0QG4WcA_N4O8BTvAVhc2_X9znc0e3G0/e939b7c2b2b97799c97ebe42193f8559f1fc38b3656b2e4ba762802bb9287ce5?track-id=490916 '
[download] Destination: Kraftwerk - 1978 - The Man Machine/1 - Kraftwerk - The Robots.mp3
[download] 100% of 469.84KiB in 00:00
[download] Finished downloading playlist: Kraftwerk - The Man Machine (1978)

Description
Yandex recently stopped giving full tracks to anonymous users. Only 30 seconds preview can be listened or downloaded.
Please implement authentication to restore full tracks support.
Thanks a lot for this awesome program!

workaround: using cookies saves the day


[BUG] ./install.sh: line 587: ip: command not found

In raising this issue, I confirm the following:
{please fill the checkboxes, e.g: [X]}

[X] I have read and understood the contributors guide.
[X] The issue I am reporting can be replicated.
[X] The issue I am reporting is directly related to the pivpn installer script.
[X] The issue I am reporting isn't a duplicate (see FAQs, closed issues, and open issues).

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Run 'curl https://raw.githubusercontent.com/pivpn/pivpn/master/auto_install/install.sh | bash on installed pi.'
Attempt to install
See error

Expected behavior
Simply getting PiVPN installed
The problem was a missing iproute/iproute2 package. Should the installer not install this?

It's weird that iproute2 is not installed, which OS are you running?

No response in a while, closing.


feat(workspace): add wallpaperBackground support for wallpaper

Removed plasma-apply-wallpaperimage due to limitations

I really don't know why the CI is failing


Improvement: Use ChartApp Version as default for Images

Hi,
We noticed some problems with the current version of your helm chart.
At first, we block in our environment the latest tag due to Security Reasons and Rollback Problems.
The ‘latest’ tag does not actually mean latest, it doesn’t mean anything. It's also not possible at the moment to Rollback to an older Version if anyone noticed problems. In older helm chart versions is also the latest tag used and this mean at the end you Rollback from latest to latest.
The second problem is a possible version drift between Nodes. If a new version were released and re-tagged with "latest"
it could happen that multiple Versions are running on the different Nodes with out knowing this. You only see that the latest tag/version is used. It's hard to identify the correct version at the end if some node has trouble.
You need to calculate the sha256 hashes to know which versions is used on the different Nodes.
You describe in your values.yaml that an semantic versioning is used "ChartApp Version", but this is not the Case.
https://github.com/CrowdStrike/falcon-helm/blob/675a957c7acea0d28a86d4e1c55db53804b00f92/helm-charts/falcon-sensor/values.yaml#L40-L41
https://github.com/CrowdStrike/falcon-helm/blob/675a957c7acea0d28a86d4e1c55db53804b00f92/helm-charts/falcon-sensor/values.yaml#L139-L140
You describe also to use a specific Version to use different Sensor Versions. But, this is at the moment also not working due to the used "latest" Image Tag.
The only thing that is not clear to me at the moment is, which Sensor Version is the current release.
I think it's not the current Chart App Version, or?
https://github.com/CrowdStrike/falcon-helm/blob/675a957c7acea0d28a86d4e1c55db53804b00f92/helm-charts/falcon-sensor/Chart.yaml#L23
You describe in the Readme.MD other semantic Versions.

Helm chart Version
Falcon Sensor Version

<= 1.6.x
<= 6.34.x

>= 1.7.x
>= 6.35.x

Feel free to update this PR and to set the correct ChartApp Version that matches to current Sensors Version.
Last but not least, we switched also Image Pull Policy to 'ifNotPresent'. This reduced the ImagePulls and it prevents to reach the rate limit on docker hub.
Signed-off-by: dschunack<EMAIL_ADDRESS>

Hey,
We know that we are able to overwrite the options with our own values.yaml, but this is not why I created this PR.
The most of the common Projects like Grafana,Prometheus did exactly what i wrote and they used the AppVersion in the Chart.yaml as default for the ImageTag if you have a Chart per App. On larger charts with multiple different app containers its defined in the values.yaml with semantic version. Sorry, I don't noticed that you use two different images for the node mode in the Chart. In this case it make no sense to use the Chart AppVersion as ImageTag, but it make absolutely sense to use Semantic Versions instead of the "latest" Image Tag due to the known Reason. It reduced also the Pulls of the Image.
Short example, on one of our EKS we start 32k PODs per day on 150 Nodes.
In the Node Mode, you use the Sensor node Image twice for the init and the normal Container.
With "latest" Tag and Pull "Allways" the Image is 64k pulled per day.
With Semantic Versioning and Pull "IfnotPresent" it's only 150 pulled per Day.
This reduced the API requests, Starting time and also the Bandwidth a lot.
Anyway, my intention was to have a real Helm Package with a stable Chart and App version, but without a ImagePullSecret it's not possible to Pull an Images. CID is not enough here.

Sounds good. Thanks!


Yarn version greater than or equal to version 1.0.2

The previous package.json file had strictly defined yarn version 1.0.2. I have updated the file to accept at minimum yarn version 1.0.2 while working with any new versions as well.

Deploy preview processing.
Built with commit 90bc31cfe33fe5e77646804ddff0184c359099ac
https://app.netlify.com/sites/fcccolumbus/deploys/59dccd240b79b74e15b83da5

Coverage remained the same at 100.0% when pulling 90bc31cfe33fe5e77646804ddff0184c359099ac on jwoo92-patch-1 into 60c30dc950d3abdbef75ad5237fe7ae024ab4620 on master.


Added Noom to Custom Pet CL

Description:
Added Noom, pet from Celestara, to custom pets cl
Changes:
title says
Other checks:

[ ] I have tested all my changes thoroughly.

Done


Bump Version to 1.21.1 and build number to 209

Error trying doing the automated Cherry picking
exit status 1


Add EV and empty capacitors

Empty has 0 storage, EV has the same as the IC2 lapotron crystal.
I'm thinking we can use the empty one like the AE2 storage housing for drives, while also allowing its use in the LSC as a filler block to reduce costs. The EV one can be used if you don't want to make the energy orb, and also reduces costs.
See https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/7090.

Empty, then EV-UHV. Clearly, I'm not an artist, so if anyone wants to make them fancier or w/e, that's fine.
empty

ev

empty+crystal=ev

empty+orb=iv

Unpackaging gives the empty one for EV/IV instead of screws.

We probably need to define an minimal LSC capacity as well. Otherwise people will make LSCs made out of 100% empty cells (or with mostly empty cells) and call it an active transformer.

Any suggestions on how to do this? I could check for X million EU, but 10 EV ones would be only 1 IV one. So it could be 180M, filling out a min size, but still only 2 of the IV ones.

@Prometheus0000 the count of each kind of capacitor is stored in array capacitors. Maybe check if empty capacitor count is more than 50% (or something like that) of total capacitor used.

Moved switches to functions, and added a check for > 50% being not empty. This could be changed to a lower amount if people aren't happy with it.
I did get an intermittent problem where the structure check still counted as valid when it shouldn't sometimes after adding the check, but I couldn't verify what caused it. Also, I'm not sure why it doesn't crash if you have all empty capacitors since it should be doing 18/0 for a min sized LSC. Nor could I find a way to deal with this using google if it did crash.


Binaries that statically link SDL2:x64-windows-static-md are exporting symbols

Statically linking SDL2 build using the x64-windows-static-md triplet causes "dumpbin /exports out.exe" to output exported C symbols from SDL2.
I think this is also stopping the linker from doing dead code removal because it thinks the symbols are required. Can this be fixed? Thanks.

This issue hasn’t been updated in 3 month, if it is still an issue, please reopen this issue


Warning CA2007: "Consider calling ConfigureAwait on the awaited task"

It is important to fix this warning as described here:
CA2007: Do not directly await a Task: https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2007

after a talk with @ysmoradi, we decided to suppress this warning globally at the BlazorUI assembly level.


"use of global instead of use of value" mutator (rebase and squash)

Readdressing #397

@Jacarte it looks like this might have introduced an infinite loop when running the tests? cargo test --all used to take ~6 minutes in previous CI runs, and we are at ~22 minutes for that task in the current CI and there is nothing being printed to stdout or anything like that.

Actually I think this is wasm-shrink getting into an infinite loop when given an infinite iterator from wasm-mutate. Fix on the way.

Actually I think this is wasm-shrink getting into an infinite loop when given an infinite iterator from wasm-mutate. Fix on the way.

I could not see this locally


Explore running under 3.6

Not obvious it is possible, as it currently fails during test discovery - we might be using some asyncio features that are not possible in 3.6.

This is now working in CI! Wooo!


Delete with multiple field condition

Clean records based on multiple fields.

	// Delete all documents by sandrae
	q := elastic.NewTermQuery("user", "sandrae")
	res, err := es.DeleteByQuery().Index(PageIndexName).Query(q).Pretty(true).Do(context.TODO())
	if err != nil {
		return err
	}

How to attach other conditions, a user belongs to city :'Alaska'?

I am expecting bulk Delete API to perform the same operation

[{
   "user":"peter", "interest": ["photography", "swimming"]
},
{
   "user":"sandra", "interest": ["marshal-arts"]
} ]

Again multiple fields but for bulk operations. Any references or wiki could be helpful

All types of queries can be passed into DeleteByQuery, so you can achieve what you want by e.g. a BoolQuery.

All types of queries can be passed into DeleteByQuery, so you can achieve what you want by e.g. a BoolQuery.


Add multi-processes export support for unix uris by glob pattern matching

You should have a Prometheus exporter per HAProxy process, service discovery is not the responsibility of exporters.

Hi, @brian-brazil，thanks for your reply and cool works.
This feature is built for supporting haproxy nbproc, when stating multi-processes, we need to specify one socket file per haproxy process. Even though it's multi-processes, it's essentially in one haproxy configuration file. By supporting grob syntax it makes things easier, instead of starting 16 haproxy_exporter instances, we need only one.
An multi-processes haproxy configuration example:
        nbproc 4
        stats socket /run/haproxy/stats1 process 1
        stats socket /run/haproxy/stats2 process 2
        stats socket /run/haproxy/stats3 process 3
        stats socket /run/haproxy/stats4 process 4

The intention is that you run one haproxy exporter per haproxy process.

The intention is that you run one haproxy exporter per haproxy process.

.

By supporting grob syntax it makes things easier, instead of starting 16 haproxy_exporter instances, we need only one.

@brian-brazil, I want to note also that the data exported will look like this in Prometheus, it's a really nice extension:

We have discussed this previously at length. This change won't be accepted.

Hi, @brian-brazil, it's quite a shame that this pr isn't accepted. Could you point out to me where I can find relevant discussions? Thanks. :)

I'm using @bom-d-van's version and I think it's really useful, I probably lack some background to understand why this change won't be accepted, but in our case it is a life saver, we are running multiple dedicated haproxy nodes in a K8s cluster that implement a type of Ingress Controller (internally built), each haproxy is running multiple processes (now 2, but will probably need to increase to 4 or 6 soon).
Having multiple exporters per each process is quite a headache to manage and track and this PR helps us a lot.
Another approach I might suggest is to use (prometheus-aggregate-exporter)[https://github.com/warmans/prometheus-aggregate-exporter], it can collect metrics from multiple endpoints and present them to Prometheus as a single view, this approach requires a bit more orchestration (compared to this PR) but it can be quite easily automated (we've tested it with a wrapper script that enumerates the number of sockets available from haproxy and launches haproxy_exporters per socket).

So, I came across this session by @juliusv
I totally agree that an uber-exporter approach is not one that fits the Prometheus model, actually it will have more cons then pros, having said that - I think the case here is different, all the haproxy processes are actually "bound" to a single entity being monitored, they cannot exist separately and it is just a way to scale a single instance of haproxy, so I'm failing to see how running a separate exporter per process here is a better way.
Anyway, I'm probably missing something here and would appreciate to be educated on what I'm misunderstanding.
Thanks!

@grobie Can this be closed, or is this debate worth to be revived?

@grobie @beorn7 hoping this enhancement is still being considered :smile:

also note that haproxy now supports multithread, even know it is still experimental, this might be a good reason to close this issue - assuming stats are common to all threads

@wdauchy indeed with HAproxy 1.8 a new multithread mode is introduced which should eliminate this issue, however multi process mode is still a viable option (AFAIK) and it would take some time until everyone makes the upgrade to 1.8.
Also, this also assume that stats are indeed unified in this mode, although I would expect that they are indeed.

So in general I agree that the current approach is tedious and requires quite a bit of additional custom configuration mangement support. Finding an easier approach would be great, but HAProxy exporter would become the first to change our current design idea of one exporter instance per target.
I'm going to meet with HAProxy developers in January to discuss native Prometheus metrics support in HAProxy itself, so fortunately we'll get the easiest installation type possible 🎉 Therefore, I wouldn't start a discussion about whether it makes sense in all cases to require one exporter per process at this point.

@grobie just curious if anything came out from your discussions with haproxy devs?
We are now working on upgrade to haproxy 1.8, but seems like we are still going to be using multiple nbprocs (in combination with threads), so managing this is still going to be a pain 😞
By the way, we are still running @bom-d-van patched exporter and it works great for >6 months 👍


Fixed #32754 -- Made AdminSite.catch_all_view() respect SCRIPT_NAME.

@SlavaSkvortsov Thanks for this patch :+1:  Welcome aboard :boat:
I added release notes and test for the server-provided  SCRIPT_NAME.


Fix loading of local config in Docker

Q
A

Fixed tickets

License
MIT

For real this time 😅

@sstok could you rebase please?


Add script to generate runtime dependencies for each project - first draft

This PR needs a bit of rework, will work on it this week

Will revisit this at a later point or if requested


Fix bug - load more button appears below an empty search gallery

Fixes #287
Description

Updated appendToGrid() method in the file ./src/popup/searchModule.js
Used the variable msnryObject.cols in the above method to check for empty results and display "load more results" button accordingly.
Other information

Checklist:

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the master branch of the repository.
[x] My commit messages follow best practices.
[ ] I added tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

Thank you so much @makkoncept
I truly appreciate your help and I look forward to contributing more here.
Best,
Vivek


FIPS issue submitting DDPJobDefinition job from the CodeFlare Notebook

Describe the Bug
On non-FIPS, when you submit the guided-demos/2_basic_jobs DDPJobDefinition mnisttest, the job is scheduled as pending, then switches to running and then completes.
On a FIPS cluster, I'm noticing the following error - (I'll post the entire output below in a comment)
Issue with path: /tmp/torchx_workspacel83oit3q
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
File /opt/app-root/lib64/python3.8/site-packages/ray/_private/runtime_env/working_dir.py:64, in upload_working_dir_if_needed(runtime_env, scratch_dir, logger, upload_fn)
     63 try:
---> 64     working_dir_uri = get_uri_for_directory(working_dir, excludes=excludes)
     65 except ValueError:  # working_dir is not a directory
....
ValueError: directory /tmp/torchx_workspacel83oit3q must be an existing directory or a zip package

Codeflare Stack Component Versions
Please specify the component versions in which you have encountered this bug.
Codeflare SDK:
pip list |grep codeflare-sdk
codeflare-sdk            0.8.0

MCAD: Unknown, integrated into CodeFlare Operator v1.0.0-rc.1
Instascale: Unknown, integrated into CodeFlare Operator v1.0.0-rc.1
Codeflare Operator: v1.0.0-rc.1
Other: OpenShift 4.12.22 with FIPS enabled:
All master and worker nodes report FIPS enabled, for example:
ssh<EMAIL_ADDRESS>cat /proc/sys/crypto/fips_enabled
1
and
ssh<EMAIL_ADDRESS>cat /proc/sys/crypto/fips_enabled
1

Steps to Reproduce the Bug

Create a FIPS cluster
Install ODH 1.9.0 and CodeFlare v1.0.0-rc1 as usual
Install the kfdefs as usual
Launch the codeflare notebook as usual
Run the guided-demos/2_basic_jobs.ipynb - it works up to where you submit the job, and then reports the Issue with path: /tmp/torchx_workspacel83oit3q issue.

What Have You Already Tried to Debug the Issue?
I tried it on non-FIPS and it worked fine.  I also tried a second FIPS cluster to make sure it wasn't just a bad cluster.

Screenshots, Console Output, Logs, etc.
More detail of the codeflare-notebook error message will be posted below.
Affected Releases
main
Additional Context
Add as applicable and when known:

Cloud: 1) AWS, 2) IBM Cloud, 3) Other (describe), or 4) on-premise: [1 - 4 + description?]
Kubernetes: 1) OpenShift
OpenShift or K8s version:  4.12.22
Other relevant info
Enabled with FIPS

Full message:
/opt/app-root/lib64/python3.8/site-packages/urllib3/connectionpool.py:1045: InsecureRequestWarning: Unverified HTTPS request is being made to host 'api.jimfips.cp.fyre.ibm.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(
The Ray scheduler does not support port mapping.
Issue with path: /tmp/torchx_workspacel83oit3q
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
File /opt/app-root/lib64/python3.8/site-packages/ray/_private/runtime_env/working_dir.py:64, in upload_working_dir_if_needed(runtime_env, scratch_dir, logger, upload_fn)
     63 try:
---> 64     working_dir_uri = get_uri_for_directory(working_dir, excludes=excludes)
     65 except ValueError:  # working_dir is not a directory

File /opt/app-root/lib64/python3.8/site-packages/ray/_private/runtime_env/packaging.py:474, in get_uri_for_directory(directory, excludes)
    472     raise ValueError(f"directory {directory} must be an existing directory")
--> 474 hash_val = _hash_directory(directory, directory, _get_excludes(directory, excludes))
    476 return "{protocol}://{pkg_name}.zip".format(
    477     protocol=Protocol.GCS.value, pkg_name=RAY_PKG_PREFIX + hash_val.hex()
    478 )

File /opt/app-root/lib64/python3.8/site-packages/ray/_private/runtime_env/packaging.py:175, in _hash_directory(root, relative_path, excludes, logger)
    174 excludes = [] if excludes is None else [excludes]
--> 175 _dir_travel(root, excludes, handler, logger=logger)
    176 return hash_val

File /opt/app-root/lib64/python3.8/site-packages/ray/_private/runtime_env/packaging.py:128, in _dir_travel(path, excludes, handler, logger)
    127     logger.error(f"Issue with path: {path}")
--> 128     raise e
    129 if path.is_dir():

File /opt/app-root/lib64/python3.8/site-packages/ray/_private/runtime_env/packaging.py:125, in _dir_travel(path, excludes, handler, logger)
    124 try:
--> 125     handler(path)
    126 except Exception as e:

File /opt/app-root/lib64/python3.8/site-packages/ray/_private/runtime_env/packaging.py:152, in _hash_directory.<locals>.handler(path)
    151 def handler(path: Path):
--> 152     md5 = hashlib.md5()
    153     md5.update(str(path.relative_to(relative_path)).encode())

ValueError: [digital envelope routines: EVP_DigestInit_ex] disabled for FIPS

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
Cell In [6], line 6
      1 jobdef = DDPJobDefinition(
      2     name="mnisttest",
      3     script="mnist.py",
      4     scheduler_args={"requirements": "requirements.txt"}
      5 )
----> 6 job = jobdef.submit(cluster)

File /opt/app-root/lib64/python3.8/site-packages/codeflare_sdk/job/jobs.py:166, in DDPJobDefinition.submit(self, cluster)
    165 def submit(self, cluster: "Cluster" = None) -> "Job":
--> 166     return DDPJob(self, cluster)

File /opt/app-root/lib64/python3.8/site-packages/codeflare_sdk/job/jobs.py:174, in DDPJob.__init__(self, job_definition, cluster)
    172 self.cluster = cluster
    173 if self.cluster:
--> 174     self._app_handle = torchx_runner.schedule(job_definition._dry_run(cluster))
    175 else:
    176     self._app_handle = torchx_runner.schedule(
    177         job_definition._dry_run_no_cluster()
    178     )

File /opt/app-root/lib64/python3.8/site-packages/torchx/runner/api.py:278, in Runner.schedule(self, dryrun_info)
    271 with log_event(
    272     "schedule",
    273     scheduler,
    274     app_image=app_image,
    275     runcfg=json.dumps(cfg) if cfg else None,
    276 ) as ctx:
    277     sched = self._scheduler(scheduler)
--> 278     app_id = sched.schedule(dryrun_info)
    279     app_handle = make_app_handle(scheduler, self._name, app_id)
    280     app = none_throws(dryrun_info._app)

File /opt/app-root/lib64/python3.8/site-packages/torchx/schedulers/ray_scheduler.py:239, in RayScheduler.schedule(self, dryrun_info)
    237 # 1. Submit Job via the Ray Job Submission API
    238 try:
--> 239     job_id: str = client.submit_job(
    240         submission_id=cfg.app_id,
    241         # we will pack, hash, zip, upload, register working_dir in GCS of ray cluster
    242         # and use it to configure your job execution.
    243         entrypoint="python3 ray_driver.py",
    244         runtime_env=runtime_env,
    245     )
    247 finally:
    248     if dirpath.startswith(tempfile.gettempdir()):

File /opt/app-root/lib64/python3.8/site-packages/ray/dashboard/modules/job/sdk.py:203, in JobSubmissionClient.submit_job(self, entrypoint, job_id, runtime_env, metadata, submission_id, entrypoint_num_cpus, entrypoint_num_gpus, entrypoint_resources)
    200 metadata = metadata or {}
    201 metadata.update(self._default_metadata)
--> 203 self._upload_working_dir_if_needed(runtime_env)
    204 self._upload_py_modules_if_needed(runtime_env)
    206 # Run the RuntimeEnv constructor to parse local pip/conda requirements files.

File /opt/app-root/lib64/python3.8/site-packages/ray/dashboard/modules/dashboard_sdk.py:398, in SubmissionClient._upload_working_dir_if_needed(self, runtime_env)
    390 def _upload_fn(working_dir, excludes, is_file=False):
    391     self._upload_package_if_needed(
    392         working_dir,
    393         include_parent_dir=False,
    394         excludes=excludes,
    395         is_file=is_file,
    396     )
--> 398 upload_working_dir_if_needed(runtime_env, upload_fn=_upload_fn)

File /opt/app-root/lib64/python3.8/site-packages/ray/_private/runtime_env/working_dir.py:68, in upload_working_dir_if_needed(runtime_env, scratch_dir, logger, upload_fn)
     66 package_path = Path(working_dir)
     67 if not package_path.exists() or package_path.suffix != ".zip":
---> 68     raise ValueError(
     69         f"directory {package_path} must be an existing "
     70         "directory or a zip package"
     71     )
     73 pkg_uri = get_uri_for_package(package_path)
     74 try:

ValueError: directory /tmp/torchx_workspacel83oit3q must be an existing directory or a zip package

@KPostOffice created a special ray-3.0.0.dev0-cp38-cp38-manylinux2014_x86_64.whl that when installed in my CodeFlare Notebook running on the FIPS cluster, was able to succeed to run a job:
While on the FIPS cluster:

On the CodeFlare notebook from the ODH dashboard, install Kevin's custom wheel file

pip install ray-3.0.0.dev0-cp38-cp38-manylinux2014_x86_64.whl

Run the regular 2_basic_jobs guided demo, and now the step of submitting to Ray succeeds without /tmp error messages:

The Ray scheduler does not support port mapping.
2023-10-20 19:20:56,766	INFO dashboard_sdk.py:338 -- Uploading package gcs://_ray_pkg_2fd8353f5ce24329.zip.
2023-10-20 19:20:56,767	INFO packaging.py:530 -- Creating a file package for local directory '/tmp/torchx_workspacem7zl9kwn'.

The job completes as expected:

AppStatus:
  msg: !!python/object/apply:ray.dashboard.modules.job.common.JobStatus
  - SUCCEEDED
  num_restarts: -1
  roles:
  - replicas:
    - hostname: <NONE>
      id: 0
      role: ray
      state: !!python/object/apply:torchx.specs.api.AppState
      - 4
      structured_error_msg: <NONE>
    role: ray
  state: SUCCEEDED (4)
  structured_error_msg: <NONE>
  ui_url: null


Corrected Genesis

There was a json RPC element in the Genesis file, because of which Tendermint would not start with it, and gave an error. I've installed the corrected Genesis that works in Tendermint.

@dvjromashkin thanks for the PR! I edited the commit to replace the existing genesis file completely.


Whitelist product

This PR add the feature of whitelisting a specific product, related to the Whitelist Module.

Also for test coverage, you should add the files from oz to the skipFiles in .solcover.js

Wait where is the registerOtoken function and onlyFactory modifier?

Wait where is the registerOtoken function and onlyFactory modifier?

Will be done in another PR, this one only for whitelist product functionality.

Will be done in another PR, this one only for whitelist product functionality.

Cool, maybe we can put Module: functionality in the PR title?  (Not sure if it's the best way to do it)

Can we merge this one if all good ?

Good job~!! @aleone @zkoticha can we maybe finalize the descriptions for collateral, strike, underlying so we can add it into all the PRs

Cool I will merge this, and then any new descriptions modifications will add it in another PR.

Left these ideas in OtokenFactory as well:
 * @param _underlyingAsset asset that the option references
 * @param _strikeAsset asset that the strike price is denominated in
 * @param _collateralAsset asset that is held as collateral against short/written options
 * @param _strikePrice strike price with decimals = 18
 * @param _isPut is this a put option, if not it is a call


Show sensors in homekit

Got the plugin set up and running in HomeBridge. In homekit the sensors show in automations but not as accessories. Any idea what I missed?

That is very strange. Maybe you assigned it to a wrong room?


mysql broken, docker broken?

Hello, swapping to papermerge from linuxserver/papermerge docker and I have a few problems.
First of all, docker image is 2.1.5 and i see latest release is 2.1.9
Second problem is after defining environment variables for a mysql server, after I run the image i look in the logs and have a python error, something about missing mysqlclient module missing
"Traceback (most recent call last):
File "/venv/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 15, in
import MySQLdb as Database
ModuleNotFoundError: No module named 'MySQLdb'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/manage.py", line 22, in
main()
File "/app/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/venv/lib/python3.10/site-packages/django/core/management/init.py", line 446, in execute_from_command_line
utility.execute()
File "/venv/lib/python3.10/site-packages/django/core/management/init.py", line 420, in execute
django.setup()
File "/venv/lib/python3.10/site-packages/django/init.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/venv/lib/python3.10/site-packages/django/apps/registry.py", line 116, in populate
app_config.import_models()
File "/venv/lib/python3.10/site-packages/django/apps/config.py", line 304, in import_models
self.models_module = import_module(models_module_name)
File "/usr/local/lib/python3.10/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/venv/lib/python3.10/site-packages/rest_framework/authtoken/models.py", line 9, in
class Token(models.Model):
File "/venv/lib/python3.10/site-packages/django/db/models/base.py", line 141, in new
new_class.add_to_class("_meta", Options(meta, app_label))
File "/venv/lib/python3.10/site-packages/django/db/models/base.py", line 369, in add_to_class
value.contribute_to_class(cls, name)
File "/venv/lib/python3.10/site-packages/django/db/models/options.py", line 235, in contribute_to_class
self.db_table, connection.ops.max_name_length()
File "/venv/lib/python3.10/site-packages/django/utils/connection.py", line 15, in getattr
return getattr(self._connections[self._alias], item)
File "/venv/lib/python3.10/site-packages/django/utils/connection.py", line 62, in getitem
conn = self.create_connection(alias)
File "/venv/lib/python3.10/site-packages/django/db/utils.py", line 208, in create_connection
backend = load_backend(db["ENGINE"])
File "/venv/lib/python3.10/site-packages/django/db/utils.py", line 113, in load_backend
return import_module("%s.base" % backend_name)
File "/usr/local/lib/python3.10/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/venv/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 17, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
Traceback (most recent call last):
File "/venv/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 15, in
import MySQLdb as Database
ModuleNotFoundError: No module named 'MySQLdb'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/manage.py", line 22, in
main()
File "/app/manage.py", line 18, in main
execute_from_command_line(sys.argv)"
endlessly repeats same thing
BTW, same error i also get with ghcr 2.1.9

I am also switching from the LinuxServer image and MySQL/MariaDB support now seems broken in my setup too. Postgres works fine, though - even if the initial migrations fail silently if the DB is not up yet.

Maybe you give a try to version 3?
via docker: https://papermerge.github.io/documentation/3.0-dev/setup/docker/
via docker compose: https://papermerge.github.io/documentation/3.0-dev/setup/docker-compose/
or ansible: https://papermerge.github.io/documentation/3.0-dev/setup/ansible/
I will officially release version 3.0 by the end of december (this december, 2023).

3.0.2 is now out and it officially supports mariadb/mysql


Addons test utils hosseinamd

Test Utils translaion

Dear @hosseinAMD
It was just fine, I left some comments about some minor improvements.
Thanks,
Soroush


SQLite

A patch to allow for using the system library is included here: https://github.com/nicholas-rh/o3de-rpm/blob/ba85072e74feeca867ef3637e3b536cec6d14f4f/copr/o3de/SystemPackages_linux.patch#L85


Allow structs and list of structs in g/->dataset (#335)

Fixes #335, Works well for:

maps
list of maps

It's recursive so it supports maps inside maps as well.
Caveats for list of maps

All maps in the list of maps need to be of the same schema. This won't work:

g/->dataset [{:a 1 :b [{:b "c"} {:b "d" :e "e"}]}]
; Execution error (ArrayIndexOutOfBoundsException) at org.apache.spark.sql.catalyst.CatalystTypeConverters$StructConverter/toCatalystImpl (CatalystTypeConverters.scala:252).
; Index 1 out of bounds for length 1

Keys of the maps after the first one are ignored. For example:

(-> (g/->dataset [{:a 1 :b [{:b "c"} {:d "e"}]}])
      (g/collect-vals))
; ([1 ({:b "c"} {:b "e"})])

Codecov Report

Merging #336 (9da59fa) into develop (011e148) will increase coverage by 0.000%.
The diff coverage is 100.000%.

@@            Coverage Diff            @@
##           develop      #336   +/-   ##
=========================================
  Coverage   99.967%   99.967%
=========================================
  Files           36        36
  Lines         3085      3092    +7
=========================================
+ Hits          3084      3091    +7
  Misses           1         1

Impacted Files
Coverage Δ

...rc/clojure/zero_one/geni/core/dataset_creation.clj
100.000% <100.000%> (ø)

Thank you @WaqasAliAbbasi! I'll make a new release today!


Sacrificing on Max buy will cause the buy options to mess up

When i sacrificed on max buy it caused my buy options to say what the max buy amount says but also if clicked max buy it would say what the previous buy cost was like example if i have 100x buy on then switch to max it would cause the max buy to show the price of buy 100 then not show the amount you can buy of that object(and if useful I'm on chrome OS

Fixed in version 1.69.0


Avoid unnecessary assignment in Text::findCharacterPos

Minor stylistical thing but I was confused by this assignment when reading the code and had to do a double-take (i.e. "is there something I am missing? Why is this not being returned directly?") so I think it also aids readability.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.009%) to 56.813%

Files with Coverage Reduction
New Missed Lines
%

src/SFML/Graphics/Text.cpp
1
86.59%

Totals

Change from base Build<PHONE_NUMBER>8:
-0.009%

Covered Lines:
11894

Relevant Lines:
19897

💛  - Coveralls


[RuntimeError: sizes must be non-negative]  : XLnet, Large and Base

🐛 Bug

Model I am using (Bert, XLNet....): XLNet
Language I am using the model on (English, Chinese....): English
The problem arise when using:

[ ] the official example scripts: (give details)
[x] my own modified scripts: (give details)

The tasks I am working on is:

[ ] an official GLUE/SQUaD task: (give the name)
[x] my own task or dataset: (give details)

To Reproduce
Steps to reproduce the behavior:

Expected behavior

Environment

OS: Ubuntu
Python version: 3.5.2
PyTorch version: 1.20, torch 0.4.1
PyTorch Transformers version (or branch): latest
Using GPU ? YES
Distributed of parallel setup ? No
Any other relevant information:

Additional context
The issue reads almost exactly like this - https://github.com/huggingface/pytorch-transformers/issues/924
Except - the problem still appears to persist as I have pytorch 1.2 installed./
To be sure I have to use CODA 9.0 - not sure if that is causing the issue. Note - I can run - XLM, Bert and Roberta in the exact same data and code -jut swapping out the modelname .

Can you post a simple example showing the behavior and a detailed error message?

RuntimeError                              Traceback (most recent call last)
 in
127                     train_df.to_csv('data/train.tsv', sep='\t', index=False, header=False)
128                     dev_df.to_csv('data/dev.tsv', sep='\t', index=False, header=False)
--> 129                     results= run_model(args,device)
130                     cv_results.append(results[0])
131                 r = pa.DataFrame(cv_results)
~/xlm/run_model.py in run_model(args, device)
65         train_dataset = load_and_cache_examples(task, tokenizer,args,processor,logger,False, undersample_scale_factor=1)
66         #stop
---> 67         global_step, tr_loss = train(train_dataset, model, tokenizer,args,logger,device)
68         logger.info(" global_step = %s, average loss = %s", global_step, tr_loss)
69
~/xlm/train.py in train(train_dataset, model, tokenizer, args, logger, device)
64                       'token_type_ids': batch[2] if args['model_type'] in ['bert', 'xlnet'] else None,  # XLM don't use segment_ids
65                       'labels':         batch[3]}
---> 66             outputs = model(**inputs)
67             loss = outputs[0]  # model outputs are always tuple in pytorch-transformers (see doc)
68             print("\r%f" % loss, end='')
~/.local/lib/python3.5/site-packages/torch/nn/modules/module.py in call(self, *input, **kwargs)
475             result = self._slow_forward(*input, **kwargs)
476         else:
--> 477             result = self.forward(*input, **kwargs)
478         for hook in self._forward_hooks.values():
479             hook_result = hook(self, input, result)
~/.local/lib/python3.5/site-packages/pytorch_transformers/modeling_xlnet.py in forward(self, input_ids, token_type_ids, input_mask, attention_mask, mems, perm_mask, target_mapping, labels, head_mask)
1120                                                input_mask=input_mask, attention_mask=attention_mask,
1121                                                mems=mems, perm_mask=perm_mask, target_mapping=target_mapping,
-> 1122                                                head_mask=head_mask)
1123         output = transformer_outputs[0]
1124
~/.local/lib/python3.5/site-packages/torch/nn/modules/module.py in call(self, *input, **kwargs)
475             result = self._slow_forward(*input, **kwargs)
476         else:
--> 477             result = self.forward(*input, **kwargs)
478         for hook in self._forward_hooks.values():
479             hook_result = hook(self, input, result)
~/.local/lib/python3.5/site-packages/pytorch_transformers/modeling_xlnet.py in forward(self, input_ids, token_type_ids, input_mask, attention_mask, mems, perm_mask, target_mapping, head_mask)
883         if data_mask is not None:
884             # all mems can be attended to
--> 885             mems_mask = torch.zeros([data_mask.shape[0], mlen, bsz]).to(data_mask)
886             data_mask = torch.cat([mems_mask, data_mask], dim=1)
887             if attn_mask is None:
RuntimeError: sizes must be non-negative

Works perfectly with xlm, bert and roberta

Ok, this should be fixed on master with 45de034.
You can test it either by installing from source or using torch.hub and tell us if it doesn't work.


Release 0.16.1

Added

Every processing unit can be persisted into (and loaded from) a bytearray

Codecov Report

Merging #634 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #634      +/-   ##
==========================================
+ Coverage   88.85%   88.86%   +0.01%
==========================================
  Files          59       59
  Lines        3257     3261       +4
  Branches      611      611
==========================================
+ Hits         2894     2898       +4
  Misses        260      260
  Partials      103      103


URL encoding issue in linked image names

On DYLEN page we have two image files with umlauts in the name and when the server tries to load them it uses URL encoded versions of the name and doesn't find the files.
The links in question are here:
https://github.com/acdh-oeaw/howto/blob/main/content/posts/dylen/index.mdx#L136
https://github.com/acdh-oeaw/howto/blob/main/content/posts/dylen/index.mdx#L142
Shall I rename the files or do we want to address this in a different way?

fixed in new version.


LICENSE file installed under /usr/lib/python*/site-packages/LICENSE

Hello,
while try to packaging telegram-text for Gentoo Linux, I noticed an errors that comes from our package manager:
>>> Install dev-python/telegram-text-0.1.1 into /tmp/portage/dev-python/telegram-text-0.1.1/image
 * python3_10: running distutils-r1_run_phase distutils-r1_python_install
 * The following unexpected files/directories were found top-level
 * in the site-packages directory:
 *
 *   /usr/lib/python3.10/site-packages/LICENSE
 *
 * This is most likely a bug in the build system.  More information
 * can be found in the Python Guide:
 * https://projects.gentoo.org/python/guide/qawarn.html#stray-top-level-files-in-site-packages
 * ERROR: dev-python/telegram-text-0.1.1::x-portage failed (install phase):
 *   Failing install because of stray top-level files in site-packages

So atm it would install the LICENSE file as /usr/lib/python3.10/site-packages/LICENSE and it is certainly wrong.

Hi!
Please provide more instructions of how did you install the package and additional system information such as Linux distributive, version, and CPU architecture to reproduce the error
Thank you

Hello, as said the issue was discovered during the packaging on Gentoo Linux, because our package manager warns about common errors.
In any case you can see the issue also while installing the package via pip install telegram-text it installs the LICENSE file as /usr/local/lib/python3.9/site-packages/LICENSE and as /usr/local/lib/python3.9/site-packages/LICENSE
 ~ # find /usr/local/ -name LICENSE
/usr/local/lib/python3.9/site-packages/telegram_text-0.1.1.dist-info/LICENSE
/usr/local/lib/python3.9/site-packages/LICENSE

 ~ # diff -ru /usr/local/lib/python3.9/site-packages/telegram_text-0.1.1.dist-info/LICENSE /usr/local/lib/python3.9/site-packages/LICENSE

 ~ #

So the directory site-packages is supposed to contain directories of the python modules instead of strya files like LICENSE.
Hope it is clear now.


update bpf_ct_tests.c to use node_config.h

This commit avoids code-duplication.
Signed-off-by: Sahid Orentino Ferdjaoui<EMAIL_ADDRESS>

/test-runtime

IIRC, this is covered in the privileged unit tests

This is covered by BPF checks / coccicheck (pull_request).

I don't think so. I introduced the coccichecks and they shouldn't even compile the code.

Looks like it is now running via the bpf linter:
$ git grep run_bpf_tests
.github/workflows/lint-bpf-checks.yaml:          make -C test run_bpf_tests || (echo "Run 'make -C test run_bpf_tests' locally to investigate failures"; exit 1)
test/Makefile:.PHONY = all build test run k8s k8s-kind nightly clean run_bpf_tests
test/Makefile:run_bpf_tests:

Uh, that doesn't make a lot of sense either. I'd expect the linter to have one static checks.
Well, at least it's passing so marking ready to merge.


Utilities: avoid use of raw string literals

Escape the quote in the string rather than use the literal support as
the behaviour differs across versions:
error: multi-line string literal content must begin on a new line

@swift-ci please test

@swift-ci please test Linux platform

@swift-ci please test Linux platform

@compnerd the Linux boxes seem to be having a tough time at the moment. Pinged @shahmishal.

@swift-ci please test linux

Thanks @tomerd, sorry about the breakage


Domains that need to be registered on EKS in a proxy environment

I would like to install SAS viya on our EKS, which is connected to the internet via a proxy.
We use zscaler(cloud proxy) and I need to register specific domains to be able to install and use SAS viya.
Could you provide me a list of the domains that need to be registered for this purpose?

Hey,
Does the documentation around the ingress FQDN here to set your domain help?
https://github.com/sassoftware/viya4-deployment/blob/main/docs/CONFIG-VARS.md#ingress

Marking as stale/inactive. If there are further questions please open a new GitHub issue.


Fix the way tests are counted.

The code prior to this patch was undercounting the number tests expected. If you added a console.log to check the value of pending in the test-run task, you'd see it go into the negative. The upshot was that Gulp would consider the tests done before they were actually done.
I discovered this while resuming work on #494. The test should have failed but I was not able to get a failure until I fixed the counting issue.

Thanks!


[ci] load_boston has been removed in sklearn 1.2

Description
The Boston dataset has been removed in sklearn 1.2 due to ethical issues. However, our test cases use the dataset for many times. The removal causes our CI jobs to fail.
Reproducible example
(https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879)
>           raise ImportError(msg)
[3900](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3901)
E           ImportError:
[3901](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3902)
E           `load_boston` has been removed from scikit-learn since version 1.2.
[3902](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3903)
E
[3903](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3904)
E           The Boston housing prices dataset has an ethical problem: as
[3904](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3905)
E           investigated in [1], the authors of this dataset engineered a
[3905](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3906)
E           non-invertible variable "B" assuming that racial self-segregation had a
[3906](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3907)
E           positive impact on house prices [2]. Furthermore the goal of the
[3907](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3908)
E           research that led to the creation of this dataset was to study the
[3908](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3909)
E           impact of air quality but it did not give adequate demonstration of the
[3909](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3910)
E           validity of this assumption.
[3910](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3911)
E
[3911](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3912)
E           The scikit-learn maintainers therefore strongly discourage the use of
[3912](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3913)
E           this dataset unless the purpose of the code is to study and educate
[3913](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3914)
E           about ethical issues in data science and machine learning.
[3914](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3915)
E
[3915](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3916)
E           In this special case, you can fetch the dataset from the original
[3916](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3917)
E           source::
[3917](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3918)
E
[3918](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3919)
E               import pandas as pd
[3919](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3920)
E               import numpy as np
[3920](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3921)
E
[3921](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3922)
E               data_url = "http://lib.stat.cmu.edu/datasets/boston"
[3922](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3923)
E               raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
[3923](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3924)
E               data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
[3924](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3925)
E               target = raw_df.values[1::2, 2]
[3925](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3926)
E
[3926](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3927)
E           Alternative datasets include the California housing dataset and the
[3927](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3928)
E           Ames housing dataset. You can load the datasets as follows::
[3928](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3929)
E
[3929](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3930)
E               from sklearn.datasets import fetch_california_housing
[3930](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3931)
E               housing = fetch_california_housing()
[3931](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3932)
E
[3932](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3933)
E           for the California housing dataset and::
[3933](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3934)
E
[3934](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3935)
E               from sklearn.datasets import fetch_openml
[3935](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3936)
E               housing = fetch_openml(name="house_prices", as_frame=True)
[3936](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3937)
E
[3937](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3938)
E           for the Ames housing dataset.
[3938](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3939)
E
[3939](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3940)
E           [1] M Carlisle.
[3940](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3941)
E           "Racist data destruction?"
[3941](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3942)
E           <https://medium.com/@docintangible/racist-data-destruction-113e3eff54a8>
[3942](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3943)
E
[3943](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3944)
E           [2] Harrison Jr, David, and Daniel L. Rubinfeld.
[3944](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3945)
E           "Hedonic housing prices and the demand for clean air."
[3945](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3946)
E           Journal of environmental economics and management 5.1 (1978): 81-102.
[3946](https://github.com/microsoft/LightGBM/actions/runs/3654388214/jobs/6174767879#step:5:3947)
E           <https://www.researchgate.net/publication/4974606_Hedonic_housing_prices_and_the_demand_for_clean_air>

Thanks @shiyu1994 , but we already have an issue for this (#4793) and a PR to fix it (#5581).

@jameslamb Thanks. Sorry for missing that...

No problem! Appreciate you reporting this, and sorry we didn't get the fix merged sooner.


IPAM: Make sure we have a ring before calling tryOps()

because otherwise the pending ops can be modified from inside Try()
Fixes #2892

LGTM.

LGTM.


Git Extensions dropped linux support

I was trying to install Git Extensions on linux and it seems that it's no longer compatible. Their "how to install on linux" page asks the user to download the Mono version, but Mono support was deprecated in version 3 last december.
If all it takes to make the change is remove "linux" from Git Extension's entry in guis.yml I can send a PR if you'd like.

@eliocamp thanks for raising the issue! :)
from what I can see, there's still a version that supports linux  (https://github.com/gitextensions/gitextensions#version-25x) and that will receive security updates. So it still provides a linux version (even if not 100% updated) right ?

Oh, ok. I missed that as I was only looking at the latest release.
Sorry, then!


Added Azure ML Policies

This PR fixes
Added Azure Machine Learning Policies:

Audit-MachineLearning-PrivateEndpointId
Deny-MachineLearning-HbiWorkspace
Deny-MachineLearning-PublicAccessWhenBehindVnet
Deny-MachineLearningAks
Deny-MachineLearningCompute-SubnetId
Deny-MachineLearningCompute-VmSize
Deny-MachineLearningComputeCluster-RemoteLoginPortPublicAccess
Deny-MachineLearningComputeCluster-Scale

Hi everyone, any updates or changes required before we can merge this?

Hi everyone, any updates or changes required before we can merge this?

Still in progress - will revert shortly

Looks good to me. @krowlandson - can you pls have a look at the naming convention and suggest any changes as needed?

My concern is less with what the name is, more that we keep it consistent and do not change at a later date.
That said, for consistency it might be better to consistently use -MachineLearning- in the name, such as:

Audit-MachineLearning-PrivateEndpointId
Deny-MachineLearning-HbiWorkspace
Deny-MachineLearning-PublicAccessWhenBehindVnet
Deny-MachineLearning-Aks
Deny-MachineLearning-Compute-SubnetId
Deny-MachineLearning-Compute-VmSize
Deny-MachineLearning-ComputeCluster-RemoteLoginPortPublicAccess
Deny-MachineLearning-ComputeCluster-Scale

@marvinbuss can you align on the above? Also one final catch; pls have proper description and details for each policy, and not use the resource name for these properties.

My concern is less with what the name is, more that we keep it consistent and do not change at a later date.
That said, for consistency it might be better to consistently use -MachineLearning- in the name, such as:

Audit-MachineLearning-PrivateEndpointId
Deny-MachineLearning-HbiWorkspace
Deny-MachineLearning-PublicAccessWhenBehindVnet
Deny-MachineLearning-Aks
Deny-MachineLearning-Compute-SubnetId
Deny-MachineLearning-Compute-VmSize
Deny-MachineLearning-ComputeCluster-RemoteLoginPortPublicAccess
Deny-MachineLearning-ComputeCluster-Scale

Sorry for the delay. I am OOF, but I just changed the names according to your comment. Let me know, if any other changes are required! 👍


How to use TCA and TCACoordinators with a custom tabbar implementation

Hi :)
First of all, I really like this architecture and have been using it for a while in one of my new apps (not yet released). Despite the deep learning curve it has really been worth the ride once I understood it all. (Well, almost)
Now, I've built my own custom TabBar using TCA and it works but my implementation together with TCACoordinator still makes me question whether I've done it right because it's looks a bit naive to me.
I have a MainView which combines the screens on each Tab and then the TabBar itself everything wrapped in a VStack like this:
    var content: some View {
        GeometryReader { geometry in
            ZStack(alignment: .center) {
                VStack(spacing: 0) {
                    Spacer()

                    MainCoordinatorView(
                        store: self.store.scope(state: \.tabBarContentFeature, action: MainFeature.Action.tabBarContentFeature)
                    )

                    TabBarView(store: self.store.scope(state: \.tabBarFeature, action: MainFeature.Action.tabBarFeature), geometry: geometry)
                }

                popUpViews
            }
        }
    }

My MainCoordinatorView looks likes this:
struct MainCoordinatorView: View {
    let store: Store<MainCoordinator.State, MainCoordinator.Action>

    var body: some View {
        TCARouter(self.store) { screen in
            SwitchStore(screen) {
                CaseLet(
                    state: /MainScreen.State.home,
                    action: MainScreen.Action.home,
                    then: HomeCoordinatorView.init
                )
                CaseLet(
                    state: /MainScreen.State.forum,
                    action: MainScreen.Action.forum,
                    then: ForumCoordinatorView.init
                )
                CaseLet(
                    state: /MainScreen.State.more,
                    action: MainScreen.Action.more,
                    then: MoreCoordinatorView.init
                )
            }
        }
    }
}

And then I have my MainFeature which keeps track of selected Tabs and corresponding screen:
struct MainFeature {
    struct State: Equatable {
        init(appState: AppState) {
            let homeFeature: HomeFeature.State = .init(appData: appState.appData)
            let moreFeature: MoreFeature.State = .init(appData: appState.appData)
            self.forumFeature = .init()
        }

        fileprivate(set) var tabBarContentFeature: MainCoordinator.State
        fileprivate(set) var tabBarFeature: TabBarFeature.State = .init(tabBarItems: [
            .init(tab: .home, isSelected: true),
            .init(tab: .forum, isSelected: false),
            .init(tab: .more, isSelected: false)
        ])
        fileprivate(set) var homeFeature: HomeFeature.State
        fileprivate(set) var forumFeature: ForumFeature.State
        fileprivate(set) var moreFeature: MoreFeature.State
    }

    enum Action: Equatable {
        case tabBarContentFeature(MainCoordinator.Action)
        case tabBarFeature(TabBarFeature.Action)
    }

    struct Environment {
        @Inject
        private var userUseCase: UserUseCaseSchema

        func isLoggedIn() -> Bool {
            userUseCase.isLoggedIn()
        }
    }

    static let reducer = Reducer<State, Action, SystemEnvironment<Environment>>
        .combine(
            MainCoordinator.reducer.pullback(
                state: \.tabBarContentFeature,
                action: /Action.tabBarContentFeature,
                environment: { _ in .live(environment: MainCoordinator.Environment()) }
            ),
            TabBarFeature.reducer.pullback(
                state: \.tabBarFeature,
                action: /Action.tabBarFeature,
                environment: { _ in .live(environment: TabBarFeature.Environment()) }
            ),
            .init { state, action, environment in
                switch action {
                case let .tabBarFeature(.tabBarItem(id, .didTapTabItem)):
                    if let tab = state.tabBarFeature.tabBarItems[id: id]?.tab {
                        switch tab {
                        case .home:
                            if environment.environment.isLoggedIn() {
                                state.homeFeature.setIdleState()
                                state.tabBarContentFeature = .initWithScreen(.home(.initWithFeature(state.homeFeature)))
                            } else {
                                state.tabBarContentFeature = .initWithScreen(.home(.initWithNeutral(state.neutralFeatureHome)))
                            }
                        case .forum:
                            if environment.environment.isLoggedIn() {
                                state.forumFeature.setIdleState()
                                state.tabBarContentFeature = .initWithScreen(.forum(.initWithFeature(state.forumFeature)))
                            } else {
                                state.tabBarContentFeature = .initWithScreen(.forum(.initWithNeutral(state.neutralFeatureForum)))
                            }
                        case .more:
                            state.moreFeature.setIdleState()
                            state.tabBarContentFeature = .initWithScreen(.more(.initWithFeature(state.moreFeature)))
                        }
                    }
                    return .none
                case .tabBarContentFeature(.routeAction(let index, let action)):
                    switch action {
                    case .home(let homeAction):
                        if case let .home(feature) = state.tabBarContentFeature.routes[index].screen {
                            if case let .home(homeFeature) = feature.routes[index].screen {
                                state.homeFeature = homeFeature
                            }
                        }
                        return .none
                    case .forum(let forumAction):
                        if case let .forum(feature) = state.tabBarContentFeature.routes[index].screen {
                            if case let .forum(forumFeature) = feature.routes[index].screen {
                                state.forumFeature = forumFeature
                            }
                        }
                        return .none
                    case .more(let moreAction):
                        if case let .more(feature) = state.tabBarContentFeature.routes[index].screen {
                            if case let .more(moreFeature) = feature.routes[index].screen {
                                state.moreFeature = moreFeature
                            }
                        }
                        return .none
                    }
                case .tabBarContentFeature(.updateRoutes(_)):
                    return .none
                }
            }
        )
        .debug()
}

I have removed some code in MainFeature in this example to not confuse too much with other features that i pulled back in this already
For me it feels weird that I have MainCoordinator.State pulled back in my MainFeature's state. Normally, based on the examples I looked on, you have a Feature pulled into a Coordinator defining all screens and then a CoordinatorView switching screens based on Coordinator's state and then a View.init for each case. But here, I feel like i'm doing a bit of a hack. Another drawback is that I'm trying to update MainFeature state based on state changes on each screen (Home, Forum or More screen) when any of their child state changes but that only works when you select a different tab than the one you're already on.
I hope anyone in this community can help out with a better solution. It would really be helpful to me. Please also comment on this if you have any questions of understanding my problem then I will try to clear it out.
Thanks.
/Dave.

Thanks @dsb92, sorry it's taken a while to respond. I have a rough understanding of how you've set things up. I think I would try to set things up more like you would with a standard TabBar, e.g. like in the example app.  I wouldn't use a TCARouter to switch between the tabs - just a SwitchStore. If any of those tab features need to manage navigation, I would let each of them handle that themselves with their own TCARouter. That should avoid the MainFeature needing to juggle state: it would only need to keep track of the selectedTab, and would pullback each of the tab content's reducers so they can each manage their own state without intervention.


redactor-rails with AWS S3 buckets

Is it possible to get this gem working with a AWS S3 bucket for image uploads? I can successfully upload and manipulate files directly on the Rails Models using carrierwave/fog, but having a hard time to make Redactor to list and upload files to S3.
Already tried the example provided by the Imperavi guys (http://imperavi.com/redactor/examples/s3/) but no progress with Redactor-Rails. Any insights?
Best.

It should work if you change
storage :file

to
storage :fog

in the app/uploaders uploaders.


Also, seeing as how this game is considered to be DLC for a base product that seemingly no longer exists, it seems that a different game from this developer would have to be looked at instead. Will leave this issue open incase this turns out to be a form of DRM created by the game developers themselves for use in their games.


How can i verify multiple topics at once ?

Hi, thanks for your labor.
Suppose that there are two different topics such as topic1 and topic2. I want to verify both topics at once. I used a property like the given below. It was enough but not anymore.
( { topic : topic1 } -> { data : XXX } ) and ( { topic : topic2 } -> { data : YYY } )
Now, i want to write a property that include both data coming from different topics such as
{ data1 : XXX } and { data2 : YYY }.
How can i use both data coming from different topics in my property?

Hi,
Thanks for your message. Very interesting question. If I am getting it right, you want to specify a property that requires both data1 and data2 to be present at the same time.
The simplest way is to tackle this at the source, which means, you can create a topic that collects both topic1 and topic2, then you pass that topic to the monitor. At that point, inside the property, you can refer to both data1 and data2, just because you have both info in your event.
The reason for this is that you are really asking for the two events to be observed at the same time. Since ROSMonitoring handles messages one by one, if you want to handle multiple info from multiple messages, you can do that by merging the messages and then checking them inside the oracle.
Let me know if this answers your question, and above all if you have other questions/comments.
Thanks.

Yes, you are getting it right. I'm aware of ROSMonitoring handles messages one by one,  and I already applied what you said by merging messages. But it isn't sufficient for my use case anymore.
To be clarify,
for 2 robotic arms, i want to verify that these robotic arms don't collide at all. So, i have to get their position info and compare them each other. But these 2 robotic arm are independent and each has its own ROS topics. it isn't possible to merge all data into a ROS topic. But my property required such data coming from different topic.

Hi,
That is very interesting indeed. Yes, that would be an interesting solution. In this way, if I got it right, you would keep track of the latest values for the topics. Consequently, every time the monitor would send a message to the oracle, instead of just sending the message, it would now send multiple messages merged into one with more information (the two positions in this specific case).
I am not sure I am understanding your doubt about the key used in dict. Can you make an example?
Thanks.

You know the dict type has key-value architecture. In your monitor code, currently, each message is sent as dict type one by one with some keys (topic, time, data ..)
There is no problem if you send messages separately but when it comes to merging them into one dict type "messages", i have to specify different "key" for them. Because if i dont, "key" will be duplicated.
I can handle it using a prefix for each topic. The solution could be like:
messages["robot1_distance"]=value
messages["robot2_distance"]=value
No worry about it. I got my answer already. Thanks for all your answer.

Hi,
Perfect, thanks for explaining what you did. Makes sense to me. For anything else, do not hesitate to contact us.
Cheers


Basic algorithm scripting "where do I belong"

Challenge Bonfire: Where do I belong has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:
function where(arr, num) {
  var newArray=arr.sort();
  for(var i=0; i<newArray.length; i++){
    if(num<=newArray[i]){
      return i;
    }
  }
  return newArray.length;
}

where([5, 3, 10, 3], 5) ;

The code works when you change the 10 to a 9 or any single digit. It should work for both single and double digit numbers.

From the linked docs for Array.sort():

If compareFunction is not supplied, elements are sorted by converting them to strings and comparing strings in Unicode code point order. For example, "Cherry" comes before "banana". In a numeric sort, 9 comes before 80, but because numbers are converted to strings, "80" comes before "9" in Unicode order.

You need to supply a compareFunction when you call arr.sort();
For example,  var newArray=arr.sort(function(a, b) {     return a > b;   });
That way, your array will be sorted properly and your code will work.

This is a code issue, not a site issue.
In the future, please check in the Help Room prior to submitting an issue.
Thanks and happy coding!


Fallback to xclip

On GNU+Linux, there are two common programs for clipboard access. xsel is already implemented, but xclip could be as well. If ran without any flags, it accepts stdin and writes it to the clipboard buffer. If passed in -o, it outputs the clipboard buffer to stdout.
https://qa.debian.org/popcon.php?package=xclip
https://qa.debian.org/popcon.php?package=xsel
They have almost the same amount of installs on popcon!

Yes, I intended to open an issue about this actually. I had problems getting xclip to work when spawned. It stalled forever until I copied something while it was running. Happy to take a pull request for this though.

@sindresorhus Yeah I absolutely intended to implement this! I've just been a bit busy. About the "just working", xclip is an incredibly tiny program and we could make an optional pre-built dependency for it if you wanted.

@misterhat That would be awesome :)

@misterhat Still interested? No worries if not.


Pr/jrajahalme/policy selectorcache deadlock

Make IdentitySelectionUpdated() callbacks lock-free by queueing them
while still holding selectorcache lock (to keep FIFO order) and
calling from a goroutine not holding any locks. This prevents
deadlocks caused by the implementation of IdentitySelectionUpdated()
taking locks such as endpoint or selectorcache locks.
Potential deadlock in pod identity updates has been fixed.

Fixes https://github.com/cilium/cilium/issues/16236

test-me-please

the unit tests have failed:
 	 # github.com/cilium/cilium/pkg/fqdn/dnsproxy [github.com/cilium/cilium/pkg/fqdn/dnsproxy.test]
	 pkg/fqdn/dnsproxy/proxy_test.go:184:36: not enough arguments in call to testSelectorCache.UpdateIdentities
	 	have ("github.com/cilium/cilium/pkg/identity/cache".IdentityCache, nil)
	 	want ("github.com/cilium/cilium/pkg/identity/cache".IdentityCache, "github.com/cilium/cilium/pkg/identity/cache".IdentityCache, *sync.WaitGroup)
	 make: *** [tests-privileged] Error 1

test-me-please

the unit tests have failed:
 	 # github.com/cilium/cilium/pkg/fqdn/dnsproxy [github.com/cilium/cilium/pkg/fqdn/dnsproxy.test]
	 pkg/fqdn/dnsproxy/proxy_test.go:184:36: not enough arguments in call to testSelectorCache.UpdateIdentities
	 	have ("github.com/cilium/cilium/pkg/identity/cache".IdentityCache, nil)
	 	want ("github.com/cilium/cilium/pkg/identity/cache".IdentityCache, "github.com/cilium/cilium/pkg/identity/cache".IdentityCache, *sync.WaitGroup)
	 make: *** [tests-privileged] Error 1

Fixed, thanks!

test-me-please

Test flake #14598 hit in test-1.21-4.9, seems unrelated (deathstar.default.svc.cluster.local not resolved by kube-dns even though the service exists and has 3 backends).

rebasing to pick up CI fixes.

test-me-please

unrelated CI fail on test-1.21-4.9 tracked in slack: https://isovalent.slack.com/archives/C0139GWK3QU/p1626094042225600

test-1.21-4.9

ConformanceEKS test flake caused by #16867, fixed in https://github.com/cilium/cilium-cli/pull/422