ARROW-13112: [R] altrep vectors for strings and other types

Currently work in progress to deal with converting string Arrays into R altrep vectors.
This needs more work, and other altrep vectors perhaps need to change as well. The string implementation is mostly inspired from the R_deferred_string_class in base R.
This uses static methods because things like Dataptr() or even Elt() might jump and so we need to correctly unwind. This right now creates a dissymmetry. Perhaps all classes should just use static methods, like it used to be, and like things are usually done.
Once this experiment is finished, we can start being more ambitious about converting more things to altrep, i.e. have altrep classes that uses the (potentially redesigned Converter code from array_to_vector.cpp).

Could you use your fork https://github.com/romainfrancois/arrow instead of https://github.com/apache/arrow for creating a feature branch?


Problem loading the module with Angular Seed

My project seems to struggle with loading the contextmenu module. When I launch the app, I get this console error:
(SystemJS) XHR error (404 Not Found) loading http://localhost:5555/node_modules/traceur.js       Error: XHR error (404 Not Found) loading http://localhost:5555/node_modules/traceur.js 	    at XMLHttpRequest.wrapFn [as __zone_symbol___onreadystatechange] (http://localhost:5555/node_modules/zone.js/dist/zone.js?1492524996291:1199:29) [<root>] 	    at Zone.runTask (http://localhost:5555/node_modules/zone.js/dist/zone.js?1492524996291:165:47) [<root> => <root>] 	    at XMLHttpRequest.ZoneTask.invoke (http://localhost:5555/node_modules/zone.js/dist/zone.js?1492524996291:460:38) [<root>] 	Error loading http://localhost:5555/node_modules/traceur.js 	Unable to load transpiler to transpile http://localhost:5555/node_modules/ngx-contextmenu/lib/index.js 	Error loading http://localhost:5555/node_modules/ngx-contextmenu/lib/index.js as "ngx-contextmenu" from http://localhost:5555/app/app.module.js
I want to highlight the last bit Error loading http://localhost:5555/node_modules/ngx-contextmenu/lib/index.js as "ngx-contextmenu" from http://localhost:5555/app/app.module.js as it seems that the module is not being loaded. Am I supposed to use some other name than ngx-contextmenu as the module name?
From the sources tool in Chrome, I can confirm that it's not being loaded. It is however in my project. Any input for what might be wrong here?

I'm not packaging it correctly for SystemJS.  See #5.  I'll close this issue since I'm tracking it in the other issue.  I'll try to work on it by the end of the week.  PRs welcome!

any progress on this ?

Nope, but when there is issue #5 is where I'll post about it.


Labels of images won't be set correctly

Hi there,
when using "images()", the labels of each image will not be populated.
In Models/Images/Image.php:231 you do not call the constructor with the last param:
return new self($input->id, $input->type, (property_exists($input, 'status') ? $input->status : null), $input->name, $input->description, $input->image_size, $input->disk_size, $input->created, $input->created_from, $input->bound_to, $input->os_flavor, $input->os_version, $input->rapid_deploy, Protection::parse($input->protection));
As you can see from the constructor, the fifteenth param ($labels) is missing:
public function __construct(         int $id,         string $type = null,         string $status = null,         string $name = null,         string $description = null,         float $imageSize = null,         int $diskSize = null,         string $created = null,         $createdFrom = null,         int $boundTo = null,         string $osFlavor = null,         string $osVersion = null,         bool $rapidDeploy = null,         Protection $protection = null,         array $labels = []     )
As you are parsing the "input" variable from the json as an object and the constructor wants to have a plain array for the labels, you will have to somehow transform the "$input->labels" from stdclass to array. I did a quick hotfix for this (not nice, but works. :) ):
return new self($input->id, $input->type, (property_exists($input, 'status') ? $input->status : null), $input->name, $input->description, $input->image_size, $input->disk_size, $input->created, $input->created_from, $input->bound_to, $input->os_flavor, $input->os_version, $input->rapid_deploy, Protection::parse($input->protection), json_decode(json_encode($input->labels),1));
Would you add a fix in your repo?
And: Thanks a lot for your work on this module!

Thank you! I have released a new version 1.8.1 with a cleaner fix for this :)
FYI: You can use get_object_vars for easily transforming an object (the properties) into an assoc array.


https://maven.pkg.github.com/trustwallet/wallet-core   is  404

What's the latest version's maven url ?

you need to setup github token to access: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry#authenticating-to-github-packages


Prefix /blog to blog post URL

Since the blog site is mounted at ipfs.io/blog it's appropriate to add this detail here and not in the blog site i.e. the blog site makes no assumptions about where's it's mounted

@alanshaw deploying this new version of the website created a error where the posts that appear are old ones instead of the new ones:

nvm, it was just DNS caching issues:

all good! 🛳


CacheQueriesContainingTableNames - Exclusive list

Summary of the issue
Need support for exclusive list of tables.  CacheQueriesContainingTableNames is very useful functionality but it seems to be sweeping up volatile tables into cache when they are joined/included with cachable tables.  I was imagining a CacheQueriesContainingOnlyTableNames function that would provide and exclusive list of table names so that, if a query included any table name that was not in the list, it would not be cached.  Is there a way to do this already that I am missing or not understanding?
Environment
.NET (Core) SDK version: 3.1
Microsoft.EntityFrameworkCore version:  3.1.11
EFCoreSecondLevelCacheInterceptor version:  3.0.0
Database: (e.g. SQL Server, SQLite, etc.): MySQL
Cache provider: (e.g. in-memory, redis, etc.): in-memory + redis

Example code/Steps to reproduce:
Expecting just the tblAppSetting data to get cached.
var tablesToCache = new List<string> {
                        "tblAppSetting"
                    };
                    options.CacheQueriesContainingTableNames(CacheExpirationMode.Sliding, TimeSpan.FromMinutes(efCacheTimeoutMin), tablesToCache.ToArray());

But queries involving both volatile customer data and tblAppSetting cause the volatile data to be cached as well.
Output:
Exception message: NA
Full Stack trace: NA

If you click at the provided link you can find this new option.

Also @VahidN let me know if you prefer me to open a new issue.


Bootstrapped frontend

Please review 💯
@Fohin
@Workata
@FilipJQ77
@pfedorczak98
@d-kurowski

Great job!

Good job!

Looks cool.

Look good to me 🥇

You can use reaction, instead of comments. It's good when you just accept commit


Can you explain what thsi does (so we can help)

Hi Juan pointed this out to me on https://github.com/ipfs/py-ipfs/issues/29#issuecomment-330000178 but its unclear to me (absence of Readme or comments or tests) which exact problem you are working on, if I could get clarity on that we can figure out whether we should be interfacing with this, building something else, or helping you finish it :-)
Problem I'm trying to solve is turning a file (on a disk, or more likely read via a HTTP call) into one or other version of the IPFS IPLD structures, i.e. something we can return a IPFS multihash to.
This is as part of a project to build a gateway between some of the Internet Archive collections and IPFS.

Hi @mitra42, sorry I just started working on this yesterday.
https://github.com/ipld/ipld/issues/24 should give you some context.
As far as the current status goes, there is no usable implementation for now and I will be working on implementing a DAG and add protobuf support next. I have implemented the basic building blocks
required with:

https://github.com/multiformats/py-multibase
https://github.com/multiformats/py-multicodec
https://github.com/ipld/py-cid

I am assuming that when you say "IPFS IPLD structures" you are referring to the MerkleDAG, which is under development in this repo. Does this answer your question or give you additional context?

To be honest @dhruvbaldawa I'm not sure if that is what I mean because the terminology on IPFS is seriously confusing, I'm refering to the format in https://github.com/ipld/specs/tree/master/ipld and specifically, the part about taking a large file and sharding it into pieces and returning the JSON that represents that, its called a "chunked file" in that spec.
The goal of this project is to serve up a file, from our (Internet Archive) disk, (which we've found by other methods). Since IPFS cannot consume the entire file in one block we'll compute an IPLD (and return a multihash (e.g. /ipfs/Q.....). We'll cache that JSON structure, and enough info to retrieve the shards from the middle of the files.
I'd hoped to find some code that does this conversion. Ideally in Python or Javascript, but we'll convert from Go if necessary, though if we have to build that module as well, it will take time from the Hackathon that could be used to build the gateway.

@mitra42 I think this is what you are looking for - https://github.com/ipfs/js-ipfs-unixfs-engine

@mitra42 I think this is what you are looking for -- https://github.com/ipfs/js-ipfs-unixfs-engine

Thanks - that is useful, presuming there is no Python implementation, do you know if there is a Go one, I'm guessing that Go may be easier to port to Python given JS's asynchronicities.

Yes, you can check the Go implementation over here -- https://github.com/ipfs/go-ipfs/tree/master/unixfs

closing for archival


fix(cloudmux): add remotefile guest power status

What this PR does / why we need it:
add remotefile guest power status
If yes, write the release branches name in the below format and submit the related cherry-pick PR:

release/3.10

/cc @ioito

@gouqi11 需要 cherry pick 到 release/3.10


lora support for FLUX GGUF

its still not working ...
all other runs fine

can you please tell me the right Diffusion in Low Bits

and VAE / Text Encoder are the normal 3 one?

one time it works but the lora was bad implemented and my gpu 16GB VRAM
and my RAM 64GB are overloaded

ups sry


AoT compilation error | scrollListener is private

I want to report a similar issue of this: https://github.com/Gbuomprisco/ng2-tag-input/issues/224
But at this time, is happening with TagInputDropdown.
Property 'scrollListener' is private and only accessible within class 'TagInputDropdown'.

Fill the template please


Add battery O&M and self-discharge

Add battery O&M in $ / kW-installed and $ / kWh-installed, defaulted to $0
Add battery self-discharge as a fraction per day loss based on stored kWh, defaulted to 0.0

@lixiangk1  Three quick comments from an initial review!

Could you please update the CHANGELOG?
Could you investigate why the tests are failing and try to get all tests to pass?
Could you add a test to runtests.jl for both the O&M costs and the self-discharge?

@adfarth Thanks for your review! Do the latest changes address your comments? As for the tests, it seems that the Windows/MacOS ones are passing but the Ubuntu ones timeout - do you know why that might be happening? Is it something specific to this branch?

@adfarth Thanks for your review! Do the latest changes address your comments? As for the tests, it seems that the Windows/MacOS ones are passing but the Ubuntu ones timeout - do you know why that might be happening? Is it something specific to this branch?

Recapping our convo here!

Expected that the ubuntu tests will fail so if the others are passing it's all good (but my latest merge of develop into this branch did seem to cause some to break :( )
Going to double check that a "self discharge fraction based on stored energy per time step" makes practical sense
Then, rename variable and help text, adjust calculation in the constraints
Test/document difference in results if discharge is applied to previous timestep's stored energy vs current one

@lixiangk1 any plans to finish this? I could probably support with a charge code in Q1.


How to Run the project?

When i am opening the file in Android studio it is displaying nothing to show?

Why would you open a Visual Studio project in Android Studio? Their solution files are clearly incompatible, not to mention the programming languages used.

@BrandedAlok This player is not an Android project/app. It's written in C# and WPF/XAML and if you want to open the solution you need at minimum Visual Studio 2015 Community Edition.


Azure pipelines should use buildVersion from build-tools

While investigating #10372, I discovered that the build-version script in the pipeline is "hardcoded." Rather than just update it, this change updates the pipeline to install the latest build-tools from npm and use the scripts from there.

Closing since this was actually addressed as part of #10372.


Allow saving the view settings for a table

Looking at a table (F4), dBeaver allows to customize the view, f.e. column widths or ordering by ... ASC / DESC. As it simplifies my work, I'm using these options quite often for several tables.
Unfortunately all my effort is gone, as soon as I close and re-open that table.
Therefore I'd appreciate an option to store those settings, similar as for filters (described here).
Thanks a lot for dBeaver and your work!

Duplicate of https://github.com/dbeaver/dbeaver/issues/21948


Potential Problem(s) Arising From Need ID Collisions

Need IDs will be randomly generated at the client (owner application) and therefore it is possible (but very unlikely) that two clients generate the same ID.
Implications:

The WON Node must check for duplicate entries and respond with a "duplicate ID - create need not accepted" message.
In the success case such a response will find its way back to the sender via the new need ID but this ID is ambiguous in the duplicate case.

Solutions:

all the participants in the communication keep their low level addressing information until a proper response (or a time out) has occurred
the response will be send back to all receivers but the one which is already confirmed just drops the message (works only if the need creation is not happening simultaneously)
the response contains the signature of the initial message so the receivers know if they are meant

in this case only a really minor chance of an undefined situation is left, which is that the same owner creates the completely same need twice and two identical IDs are generated

We currently use UriAlreadyUsedCheckingWonMessageProcessor before starting processing the message at node, - it returns failure response in case an already used uri (of need or message) is used. There is still a tiny chance though, for simultaneously incoming several messages/needs with the same uri - that one of them is past this check but not saved yet, then the other one will pass this check as well, - this case we haven't addressed yet in the implementation.
Solution: we should make the need and messagevent repositories through an Exception in case a need or message with already saved in that repository uri is being saved.


[AsahiShimbunAJWBridge]: Fix title extraction

This was broken for a while now, and I did notice it, but never got the chance to fix it.

I think you can use null coalescing operator here.


Code Validation: Hint popup box user interaction

This always requires user interaction to close the hint box.  Can be a pain.
I feel like I would want to close the popup if I click outside it or click on the editor to start coding again.
But I know we want to keep it open for kids to follow along while coding, but these boxes are so big they obscure the tutorial instructions/toolbox/workspace.
Maybe we could allow people to move the hint box around the screen?

All of our testing participants knew the "X" would close the dialogue, if it is in the way. As for keeping it open during coding, I think it will be fine to have it stationary. After all, the box can be so large, that even if you are able to move it around it would take up a lot of space still.
@kiki-lee @thsparks feel free to chime in here if you have thoughts, I believe we chatted about this as well.

I don't see a downside to being able to move it, but I agree it probably won't help a whole lot either. If the popup is in the way, I'd guess they'll just close it, and as Claire mentioned, all participants saw how to do that easily. We could maybe keep this around as a lower-pri item and reprioritize if we see students wanting/trying to move it around in the classroom?


Merge sim branch to main

Basic features implemented. Open to delaying merge to add in any other features you'd like to see.

Also, is there a reason to use Hologram inside the simulated camera instead of computing the FFT directly? Using Hologram will result in some unnecessary overhead. Is the intent to use future plans for different propagation kernels?

Also, is there a reason to use Hologram inside the simulated camera instead of computing the FFT directly? Using Hologram will result in some unnecessary overhead. Is the intent to use future plans for different propagation kernels?

Almost all overhead is in the initialization; the Hologram wrapper cleans up the FFTs and allows expansion towards different kernels.

Hardware-integration (i.e. cloning from hardware to simulation) completed and all initial review comments addressed. @ichristen request review to merge PR.

Closing in favor of #69.


Add ability to put multiple TextChild components within Text.Bullet

Hey @wyozi, are you OK with merging this now? It wasn't approved so figured I would make sure before just doing it 😅

@shakeelsoogun yes, sorry! I got distracted just before approving 😅
You can merge this. I've found the best way is to use "Squash and merge" and prefix the squash message with one of the semantic release prefixes, which then allows github action will auto-release the new version as well


Fix the changed GQA behavior by #837.

When num_head=4, num_kv_head=2, and seq_len=5,
k = 0 1 2 3 4
    5 6 7 8 9

the original impl convert it to
jnp.repeat(key, 2, axis=head_axis)
k = 0 1 2 3 4
    0 1 2 3 4
    5 6 7 8 9
    5 6 7 8 9

, not
k = 0 1 2 3 4
    5 6 7 8 9
    0 1 2 3 4
    5 6 7 8 9

This PR maintains the original behavior.

@ruomingp Could you review?


Boot partition is too small in Archlinux Image from Gallery.

I'm not sure if the OS images in the Gallery are maintained in this repo.
I downloaded the Archlinux image from the gallery and it runs fine, but when running the image for the first time, I updated with pacman -Syu. The linux-firmware package is one of the updated packages and outputs this message:
==> WARNING: Possibly missing firmware for module: 'qla1280'
==> WARNING: Possibly missing firmware for module: 'wd719x'
==> WARNING: Possibly missing firmware for module: 'qla2xxx'
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: '/boot/initramfs-linux-fallback.img'
  -> Early uncompressed CPIO image generation successful

gzip: stdout: No space left on device
bsdtar: Write error
bsdtar: Write error
==> ERROR: Initcpio image generation FAILED: 'bsdtar (step 1)' reported an error
error: command failed to execute correctly

Then, I installed gnome and every time I log in I get a notification from disk usage analyzer complaining that the /boot partition has 0 bytes available.

A workaround is: install the arch instance from the template normally. Then boot the virtual machine with a “live cd” image from any arm64 distribution. I used Ubuntu. From there, use gparted to move and resize the partitions.

A workaround is: install the arch instance from the gallery normally. Then boot the virtual machine with a “live cd” image from any arm64 distribution. I used Ubuntu. From there, use gparted to move and resize the partitions.

thanks, this worked -- I downloaded the current Ubuntu desktop image, added the ISO as the source of my CD drive, and then spent a bit of time shifting the main partition (/dev/vd2) "right", to clear space for /boot (/dev/vda1) to grow.  And yes it does feel like something the developers of the gallery image should do, but I can't see how to submit a suggestion for that.

Given that this is an image run in a VM for ephemeral purposes, I doubt I'll ever need a fallback image so I went a slightly different route: edited /etc/mkinitcpio.d/linux-aarch64.preset and removed "fallback" and deleted the fallback files in /boot/ ...

Given that this is an image run in a VM for ephemeral purposes, I doubt I'll ever need a fallback image so I went a slightly different route: edited /etc/mkinitcpio.d/linux-aarch64.preset and removed "fallback" and deleted the fallback files in /boot/ ...

This seems much simpler than my workaround. I’ll try this next time :)


Fullscreen exits randomly

!! i am not sure if this is a yabai issue, but this has only started happening after i had installed yabai and disabled SIP !!
when i play a youtube video and fullscreen it, after a couple minutes it exits out of fullscreen and for a while i can't fullscreen it again
the apple forums say it has something to do with NVRam, but it also says that only intel macs should try to reset it to fix the issue
help needed

I believe it is not an issue from yabai. If it was, there would be a lot of same issues opened.
I am sorry, but you need to try to debug this issue by yourself. Who knows what causes it.

alright then


Mimic official giphy slack bot message formatting

we can use the customMessage function in the slack adapater: https://github.com/slackhq/hubot-slack/blob/596c4181ccb9f8423c15077e3df2e960cd9981eb/src/slack.coffee#L286
Some more info on it at these links:

https://api.slack.com/docs/formatting
https://api.slack.com/docs/attachments
https://api.slack.com/methods/chat.postMessage
https://github.com/slackhq/hubot-slack/issues/170#issuecomment-113315455
https://github.com/slackhq/hubot-slack/issues/43#issuecomment-143563536

should probably allow this to be disabled via an env var.

consider using  for the thumb_url
might need to crop it into a square.
source:

https://media2.giphy.com/labs/images/giphbot-hubot-plugin.gif
http://giphy.com/labs/

test this format at https://api.slack.com/methods/chat.postMessage/test with:
"attachments": [{"text": "<http://giphy.com/labs/|Giphy Labs> (123KB)", "image_url": "http://giphy.com/static/img/labs.gif"}]
visualize in the message builder

we can confirm using the hubot-slack adapter by checking that robot.adapterName == 'slack'


config.py improvements based on code from dfint/search_offsets

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

6 of 6 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-11.6%) to 63.884%

Totals

Change from base Build<PHONE_NUMBER>1:
-11.6%

Covered Lines:
328

Relevant Lines:
501

💛  - Coveralls


Contents page has broken (local) links for modules.

This is with ghc 7.10.1 on OSX 10.10.3 compiled from source (although the ghcformacosx version seemed to behave the same).
Cabal and cabal-install <IP_ADDRESS>
Haddock from ghc, hackage (2.16.0) and git behave similarly.
I have documentation: True and hyperlink-source: True in my ~/.cabal/config
The links to modules on the contents page (~/.cabal/share/doc/x86_64-osx-ghc-7.10.1/index.html) are relative and therefore broken as the actual page referred to is in a subdir named after its package.
It seems that commit 6e95f42907970c9cbb9f6279509a4bf5542ffae4 modified the ModuleTree so that the nodes refer to a SourcePackageId instead of a PackageKey.  Unfortunately when Haddock.Backends.Xhtml.Names.ppModule calls moduleUrl on this to get the anchor href it looks for the Module, constructed with the SourcePackageId, in html_xrefs where it was stored with a PackageKey. Thus no match is found and a local link is created.
Extending the ModuleTree.Node to carry an extra parameter so that it contains both the PackageKey and SourcePackageId and modifying Haddock.Backends.Xhtml.mkNode so that htmlModule uses the PackageKey and htmlPkg uses the SourcePackageId seems to work.  If that makes sense I could make a pull request but I'm not certain I fully understand all the ramifications.

Aha, this is our https://ghc.haskell.org/trac/ghc/ticket/10206
@thoughtpolice was interested in getting this fixed
If you have some code you want to send, go ahead and submit a PR. Code that we might have to make some edits to is much better than no code at all.

I'm just getting to know the GitHub workflow and I think I erred by overrunning the commit description. The consequence being that my pull request seems to be a new issue (#386).  Sorry about that but I hope it's useful.

That's what GitHub does always, don't worry.
I can't test your change for few more days so I'll have to let it sit there for a bit.

Awesome! Thank you for the fix; it looks just fine here, although I'll be sure to run a more thorough test before 7.10.2 :)

(FWIW, I've pushed this to ghc-head and master.)


⚠ ClamAV has degraded performance

In fe277b4, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 87 ms

Resolved: ClamAV performance has improved in fe6116e after 5 minutes.


Check battery size on Mija button

xiaomi.mija.sensor_switch.MijaButton
The last device also shows the wrong type of battery - CR2450 instead of CR2032

https://github.com/home-assistant/home-assistant/issues/23423

Fixed by https://github.com/dmulcahey/zha-device-handlers/pull/68


Dockerfile: use 4.14 artifacts

Post-branch update

/override ci/prow/e2e-aws-ovn
Only known images used by tests

/override ci/prow/e2e-gcp-upgrade
No stable 4.14 release yet


Agregando Contenido extra - Curso Intermedio de Python

Hello @EdinsonRequena! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file 05_python_intermedio/modulo_IV_conceptos_avanzados_de_funciones/complementos/carboncode/platzi_reto00.py:

Line 20:80: E501 line too long (99 > 79 characters)
Line 21:31: W292 no newline at end of file


Fixed false positive circular errors for await expressions with simple non-generic calls in CFA loops

fixes #51115
cc @jeremy-rifkin @garyo @bvallee-thefork

@typescript-bot pack this
@typescript-bot test this
@typescript-bot test top100
@typescript-bot user test this
@typescript-bot perf test this faster

@DanielRosenwasser huh, luckily... I've fixed that particular issue a couple of months ago in this PR :) I've created a PR with an extra test case that will close that issue: https://github.com/microsoft/TypeScript/pull/51167

@DanielRosenwasser is this ready to merge now? (Once it's up-to-date with main)

You probably want to get @ahejlsberg to take a look at it in case I missed anything.

@sandersn it's up to date now :)

friendly 🏓 since this has been labeled with "Merge/Review for Next Release" and the 5.0 Beta is going to be published in 2 weeks

@rbuckton reverted those unrelated bits

Awesome to see this fixed and merged, thank you @Andarist!


[FIX]: Fixing support for overriding the SCSS variables

Context
I was updating our project's simple-line-icons dependency to the v2.5.2 version and when I went to test our build, I noticed that it was failing because our overriding of the $simple-line-font-path variable wasn't being applied.
When I looked at the changes made recently, I saw that the !default declarations had been dropped from the built SCSS file. In other words, older versions (specifically version v2.4.1) had the following:
$simple-line-font-path: "../fonts/" !default;

But in v2.5.2 that line looks like:
$simple-line-font-path: "../fonts/";

(See the full comparison to see these changes.)
Changes
Looking at how the SCSS file was being generated, I saw that the less2sass.js script was used for this transformation. There doesn't seem to be support there for default variables because LESS doesn't have a specific default declaration and instead just relies on ordering. Therefore, I didn't see anything in the less2sass code that would support adding this default declaration easily (because there's no good way to determine what should be a default variable vs what shouldn't be).
So the changes I made in this PR are to modify the less2sass.js script to support adding the !default declaration for the variables that we want to be overridable.
Testing
I used my forked repository in our project and it seemed to resolve the issue (i.e. the variables were overridable again).

I opened an issue with this problem and ended up generating a pull request without seeing yours. I believe that the author can close mine in this case. Thank you

Please resolve conflict and do a build.
I'll merge this.

@jrubins  thanks for this pr 👍


Hypothermia's More Cold Damage Over Time" applies to ignites

This happens when your cold damage can ignite from The Three Dragons or Hrimburn.

Hypothermia says increased damage with ailments, it does increase ignite dps

Supported Skills deal (20-39)% more Damage with Hits and Ailments against Chilled Enemies


document OST overrides

just docu updates, no before/after.

just docu updates, no before/after.

FYI You can just put up a link to the base milo page + your branch to get the PSI check green


JS: fix getAPropertyAttribute timeouts

Fixes the recent timeouts by reverting the dataflow change of #1113.
I will run a slightly larger evaluation, but the problematic project no longer hits a timeout (https://git.semmle.com/esben/dist-compare-reports/tree/js/fix-define-property-regression_1553252658109).

Thanks, please run a full evaluation (not just a slightly larger one) over the weekend. As far as I can tell, this problem arose because we weren't doing a full evaluation before, and I want to avoid that happening again.

Evaluation for this change is complete: there are no timeouts on default.slugs on javascript-lgtm. The corresponding evaluation for master is still ongoing due to the occasional timeouts, but master generally looks slower than this change so far.

OK, thanks for doing the eval. I'll wait with merging this until I've heard from the other language streams on whether the current distribution upgrade is otherwise good to go ahead.


[SPARK-45527][core] Use fraction to do the resource calculation

What changes were proposed in this pull request?
This (PR) introduces the utilization of fractions instead of slots, which is similar to the CPU strategy,
for determining whether a worker offer can provide the necessary resources to tasks.
For instance, when an executor reports to the driver with [gpu, ["1,", "2"]], the driver constructs an executor data map.
The keys in the map represent the GPU addresses, and their default values are set to 1.0, indicating one whole GPU.
Consequently, the available resource amounts for the executor are as follows: { "1" -> 1.0f, "2" -> 1.0f }.
When offering resources to a task that requires 1 CPU and 0.08 GPU, the worker offer examines the available resource amounts.
It identifies that the capacity of GPU address "1.0" is greater than the task's GPU requirement (1.0 >= 0.08).
Therefore, Spark assigns the GPU address "1" to this task. After the assignment, the available resource amounts
for this executor are updated to { "1" -> 0.92, "2" -> 1.0}, ensuring that the remaining resources can be allocated to other tasks.
In scenarios where other tasks, using different task resource profiles, request varying GPU amounts
when dynamic allocation is disabled, Spark applies the same comparison approach. It compares the task's GPU requirement with
the available resource amounts to determine if the resources can be assigned to the task.
Why are the changes needed?
The existing resources offering including gpu, fpga is based on "slots per address", which is defined by the default resource profile.
and it's a fixed number for all different resource profiles when dynamic allcation is disabled.
Consider the below test case,
  withTempDir { dir =>
    val scriptPath = createTempScriptWithExpectedOutput(dir, "gpuDiscoveryScript",
      """{"name": "gpu","addresses":["0"]}""")

    val conf = new SparkConf()
      .setAppName("test")
      .setMaster("local-cluster[1, 12, 1024]")
      .set("spark.executor.cores", "12")

    conf.set("spark.worker.resource.gpu.amount", "1")
    conf.set("spark.worker.resource.gpu.discoveryScript", scriptPath)
    conf.set("spark.executor.resource.gpu.amount", "1")
    conf.set("spark.task.resource.gpu.amount", "0.08")

    sc = new SparkContext(conf)
    val rdd = sc.range(0, 100, 1, 4)
    var rdd1 = rdd.repartition(3)
    val treqs = new TaskResourceRequests().cpus(1).resource("gpu", 1.0)
    val rp = new ResourceProfileBuilder().require(treqs).build
    rdd1 = rdd1.withResources(rp)
    assert(rdd1.collect().size === 100)
  }

During the initial stages, Spark generates a default resource profile based on the configurations. The calculation
for determining the slots per GPU address is performed as "spark.executor.resource.gpu.amount / spark.task.resource.gpu.amount",
resulting in a value of 12 (1/0.08 = 12). This means that Spark can accommodate up to 12 tasks running on each GPU address simultaneously.
The job is then divided into two stages. The first stage, which consists of 4 tasks, runs concurrently based on
the default resource profile. However, the second stage, comprising 3 tasks, runs sequentially using a new task
resource profile. This new profile specifies that each task requires 1 CPU and 1.0 full GPU.
In reality, the tasks in the second stage are running in parallel, which is the underlying issue.
The problem lies in the line new TaskResourceRequests().cpus(1).resource("gpu", 1.0). The value of 1.0
for the GPU, or any value below 1.0 (specifically, (0, 0.5] which is rounded up to 1.0, spark throws an exception if the value is in (0.5, 1)),
is merely requesting the number of slots. In this case, it is requesting only 1 slot. Consequently, each task
necessitates 1 CPU core and 1 GPU slot, resulting in all tasks running simultaneously.
Does this PR introduce any user-facing change?
No
How was this patch tested?
To ensure all tests got passed
Was this patch authored or co-authored using generative AI tooling?
No

The pipelines of both "Run docker integration test" and "Linters, License, dependencies" keep failing. But seems the code-related pipelines got passed. I will check it.

Hi @tgravescs @Ngone51 @WeichenXu123 , Could you help to review this PR, thx very much.

I'll take a look, might not get to it today.

Hi Tom, the resource amount info will be displayed in the log like the below,
23/11/13 09:40:22 INFO TaskSetManager: Starting task 1.0 in stage 0.0 (TID 1) (<IP_ADDRESS>, executor 0, partition 1,
PROCESS_LOCAL, 7823 bytes) taskResourceAssignments Map(gpu -> Map(0 -><PHONE_NUMBER>000000))

Compared to the original log info
23/11/13 09:38:47 INFO TaskSetManager: Starting task 0.0 in stage 1.0 (TID 5) (<IP_ADDRESS>, executor 0, partition 0,
NODE_LOCAL, 7713 bytes) taskResourceAssignments Map(gpu -> [name: gpu, addresses: 0])

Should I change this behavior to align with the original one?

Need to check barrier scheduling algorithm, which checks for max slots to make sure this doesn't break that.
I'm also curious if you are getting warnings out from the warnOnWastedResources function when setting things like this? Maybe its bypassing those checks, but like getNumSlotsPerAddress which you removed usage in code is still used for those warnings.

Yeah. Added the tests for barrier scheduling. please refer to here and here and here and here
and tests for warnOnWastedResources, please refer to here and here and here

23/11/13 09:40:22 INFO TaskSetManager: Starting task 1.0 in stage 0.0 (TID 1) (<IP_ADDRESS>, executor 0, partition 1,
PROCESS_LOCAL, 7823 bytes) taskResourceAssignments Map(gpu -> Map(0 -><PHONE_NUMBER>000000))

Should I change this behavior to align with the original one?

Yeah that log message isn't very readable, for now lets just change it back to be similar to before format something like "resource" -> [Addresses], ie (gpu -> [0]).

sorry for the delay on this, overall looks good, a few minor comments.  Can you confirm you tested with the dynamic allocation path and everything is working as expected there?

Manual test on Spark Standalone Cluster
Environment
The Spark Standalone cluster consists of a single worker node equipped with 8 CPU cores but lacks physical GPUs. However, Spark is capable of managing GPU resources by utilizing GPU IDs instead of actual GPUs. To achieve this, you can configure the spark.worker.resource.gpu.discoveryScript setting with a script that can retrieve the GPU IDs. For instance,
cat <<EOF
{"name": "gpu","addresses":["0", "1"]}
EOF

So we can change the above script to get 1 GPU/ 2 GPUs or any kind of GPUs.
with dynamic allocation off
1 GPU

configurations

add below configurations in the SPARK_HOME/conf/spark-defaults.conf
spark.worker.resource.gpu.amount 1
spark.worker.resource.gpu.discoveryScript /tmp/gpu_discovery.sh

spark-submit configurations

spark-shell --master spark://<IP_ADDRESS>:7077 --conf spark.executor.cores=8 --conf spark.task.cpus=1 \
   --conf spark.executor.resource.gpu.amount=1 --conf spark.task.resource.gpu.amount=0.125 \
   --conf spark.dynamicAllocation.enabled=false

The aforementioned spark-submit configurations will launch a single executor with 8 CPU cores and 1 GPU. The tasks requires 1 CPU core and 0.125 GPUs each, allowing for the concurrent execution of 8 tasks.

test code

import org.apache.spark.TaskContext
import org.apache.spark.resource.{ResourceProfileBuilder, TaskResourceRequests}

val rdd = sc.range(0, 100, 1, 12).mapPartitions { iter => {
  val tc = TaskContext.get()
  val tid = tc.partitionId()
  assert(tc.resources()("gpu").addresses sameElements Array("0"))
  iter
}}

val rdd1 = rdd.repartition(2)
val treqs = new TaskResourceRequests().cpus(1).resource("gpu", 0.6)
val rp = new ResourceProfileBuilder().require(treqs).build
val rdd2 = rdd1.withResources(rp).mapPartitions { iter => {
  val tc = TaskContext.get()
  val tid = tc.partitionId()
  assert(tc.resources()("gpu").addresses sameElements Array("0"))
  iter
}
}
rdd2.collect()

The provided Spark job will be split into two stages. The first stage comprises 12 tasks, each requiring 1 CPU core and 0.125 GPUs. As a result, the first 8 tasks can run concurrently, and then run the remaining 4 tasks.

In contrast, the second stage consists of 2 tasks, each necessitating 1 CPU core and 0.6 GPUs. Consequently, only one task will run at any given time, while the remaining 2 tasks will execute sequentially.

2 GPUs

configurations

add below configurations in the SPARK_HOME/conf/spark-defaults.conf
spark.worker.resource.gpu.amount 2
spark.worker.resource.gpu.discoveryScript /tmp/gpu_discovery.sh

spark-submit configurations

spark-shell --master spark://<IP_ADDRESS>:7077 --conf spark.executor.cores=8 --conf spark.task.cpus=1 \
   --conf spark.executor.resource.gpu.amount=2 --conf spark.task.resource.gpu.amount=0.25 \
   --conf spark.dynamicAllocation.enabled=false

The aforementioned spark-submit configurations will launch a single executor with 8 CPU cores and 2 GPU. The tasks requires 1 CPU core and 0.25 GPUs each, allowing for the concurrent execution of 8 tasks. the first 4 tasks will grab GPU 0, while the remaining 4 tasks grabs the GPU 1 due to the round-robin manner when offering the resources.

test code

import org.apache.spark.TaskContext
import org.apache.spark.resource.{ResourceProfileBuilder, TaskResourceRequests}

val rdd = sc.range(0, 100, 1, 8).mapPartitions { iter => {
  val tc = TaskContext.get()
  val tid = tc.partitionId()
  if (tid >= 4) {
    assert(tc.resources()("gpu").addresses sameElements Array("1"))
  } else {
    assert(tc.resources()("gpu").addresses sameElements Array("0"))
  }
  iter
}}

val rdd1 = rdd.repartition(2)
val treqs = new TaskResourceRequests().cpus(1).resource("gpu", 0.6)
val rp = new ResourceProfileBuilder().require(treqs).build
val rdd2 = rdd1.withResources(rp).mapPartitions { iter => {
  val tc = TaskContext.get()
  val tid = tc.partitionId()
  if (tid > 0) {
    assert(tc.resources()("gpu").addresses sameElements Array("1"))
  } else {
    assert(tc.resources()("gpu").addresses sameElements Array("0"))
  }
  iter
}
}
rdd2.collect()

The provided Spark job will be split into two stages. The first stage comprises 8 tasks, each requiring 1 CPU core and 0.25 GPUs. As a result, the total 8 tasks can run concurrently. The first 4 tasks will grab GPU 0, while the remaining 4 tasks grabs the GPU 1 due to the round-robin manner when offering the resources. The assert line can ensure this policy.

In contrast, the second stage consists of 2 tasks, each necessitating 1 CPU core and 0.6 GPUs, since there're 2 GPUs availabe, so the total 2 tasks can run concurrently, each grabs 1 different GPU, the assert line can ensure that.

concurrent spark jobs
This test case is to ensure the other spark job can still grab the left gpu resources and run alongside the other spark job.

configurations

add below configurations in the SPARK_HOME/conf/spark-defaults.conf
spark.worker.resource.gpu.amount 2
spark.worker.resource.gpu.discoveryScript /tmp/gpu_discovery.sh

spark-submit configurations

spark-shell --master spark://<IP_ADDRESS>:7077 --conf spark.executor.cores=8 --conf spark.task.cpus=1 \
   --conf spark.executor.resource.gpu.amount=2 --conf spark.task.resource.gpu.amount=0.25 \
   --conf spark.dynamicAllocation.enabled=false

The aforementioned spark-submit configurations will launch a single executor with 8 CPU cores and 2 GPU. The tasks requires 1 CPU core and 0.25 GPUs each, allowing for the concurrent execution of 8 tasks. the first 4 tasks will grab GPU 0, while the remaining 4 tasks grabs the GPU 1 due to the round-robin manner when offering the resources.

test code

    import org.apache.spark.TaskContext
    import org.apache.spark.resource.{ResourceProfileBuilder, TaskResourceRequests}

    // Submit Spark Job 0 in thread1.
    val thread1 = new Thread(() => {
      val rdd = sc.range(0, 8, 1, 8).mapPartitions { iter => {
        val tc = TaskContext.get()
        val tid = tc.partitionId()
        if (tid >= 4) {
          assert(tc.resources()("gpu").addresses sameElements Array("1"))
        } else {
          assert(tc.resources()("gpu").addresses sameElements Array("0"))
        }
        iter
      }
      }

      val rdd1 = rdd.repartition(2)

      val treqs = new TaskResourceRequests().cpus(1).resource("gpu", 0.6)
      val rp = new ResourceProfileBuilder().require(treqs).build

      val rdd2 = rdd1.withResources(rp).mapPartitions { iter => {
        val tc = TaskContext.get()
        val tid = tc.partitionId()
        assert(tc.resources()("gpu").addresses sameElements Array(tid.toString))
        println("sleeping 20s")
        Thread.sleep(20000)
        iter
      }
      }
      rdd2.collect()
    })

    thread1.start()
    // sleep 5s in main thread to make sure the spark result tasks launched in thread1 are running
    Thread.sleep(5000)

    // Submit Spark Job 1 in main thread.
    // Each spark result task in thread1 takes 0.6 gpus, so there is only 0.4 gpus (for each gpu) left.
    // since the default task gpu amount = 0.25, the concurrent spark tasks in Spark Job 1
    // will be 1(0.4/0.25) * 2 (2 gpus)
    val rdd = sc.range(0, 4, 1, 2).mapPartitions(iter => {
      Thread.sleep(10000)
      val tc = TaskContext.get()
      val tid = tc.partitionId()
      if (tid % 2 == 1) {
        assert(tc.resources()("gpu").addresses sameElements Array("1"))
      } else {
        assert(tc.resources()("gpu").addresses sameElements Array("0"))
      }
      iter
    })
    rdd.collect()

    thread1.join()

The given Spark application consists of two spark jobs. The first spark job 0 is submitted in thread1, while the second spark job 1 is submitted in the main thread. To guarantee that the spark job 0 runs prior to the spark job 1, a sleep 5s is included in the main thread. As a result, the result tasks in spark job 0 will pause for 20 seconds to await the completion of spark job 1. This is done to test whether spark job 1 can utilize the remaining GPU and execute concurrently with spark job 0.
Event timeline

from the picture, we can see, the Spark Job 1 was running alongside Spark Job 0 and finished before spark job 0.
spark job 0

spark job 1

If we change val treqs = new TaskResourceRequests().cpus(1).resource("gpu", 1) to require 1 each GPU for each task, then the spark job 1 will not grab any gpus because the left available GPUs is 0 after spark job is running.
    import org.apache.spark.TaskContext
    import org.apache.spark.resource.{ResourceProfileBuilder, TaskResourceRequests}

    // Submit Spark Job 0 in thread1.
    val thread1 = new Thread(() => {
      val rdd = sc.range(0, 8, 1, 8).mapPartitions { iter => {
        val tc = TaskContext.get()
        val tid = tc.partitionId()
        if (tid >= 4) {
          assert(tc.resources()("gpu").addresses sameElements Array("1"))
        } else {
          assert(tc.resources()("gpu").addresses sameElements Array("0"))
        }
        iter
      }
      }

      val rdd1 = rdd.repartition(2)

      val treqs = new TaskResourceRequests().cpus(1).resource("gpu", 1)
      val rp = new ResourceProfileBuilder().require(treqs).build

      val rdd2 = rdd1.withResources(rp).mapPartitions { iter => {
        val tc = TaskContext.get()
        val tid = tc.partitionId()
        assert(tc.resources()("gpu").addresses sameElements Array(tid.toString))
        println("sleeping 20s")
        Thread.sleep(20000)
        iter
      }
      }
      rdd2.collect()
    })

    thread1.start()
    // sleep 5s in main thread to make sure the spark result tasks launched in thread1 are running
    Thread.sleep(5000)

    // Submit Spark Job 1 in main thread.
    // Each spark result task in thread1 takes 1 gpus, so there is no available gpus left for spark job 1.
    // The spark job 1 will run after spark job 0 finished, but we can't ensure which gpu the task will grab.
    val rdd = sc.range(0, 4, 1, 2).mapPartitions(iter => {
      Thread.sleep(10000)
      val tc = TaskContext.get()
      assert(tc.resources().contains("gpu"))
      iter
    })
    rdd.collect()

    thread1.join()

From the picture,  we can see, spark job 1 was submitted when spark job 0 was running, but the tasks on spark job 1 didn't run because of a lack of GPU resources. After spark job 0 is finished and releases the GPU, then tasks on spark job 1 can grab the GPUs and run.

with dynamic allocation off
1 GPU

configurations

add below configurations in the SPARK_HOME/conf/spark-defaults.conf
spark.worker.resource.gpu.amount 1
spark.worker.resource.gpu.discoveryScript /tmp/gpu_discovery.sh

spark-submit configurations

spark-shell --master spark://<IP_ADDRESS>:7077 --conf spark.executor.instances=1 --conf spark.executor.cores=4 --conf spark.task.cpus=1 \
 --conf spark.dynamicAllocation.enabled=true

By utilizing the aforementioned spark-submit configurations, dynamic allocation is enabled, resulting in the launch of an initial executor equipped with 4 CPU cores. As each task requires 1 CPU core, this setup allows for the simultaneous execution of 4 tasks.

test code

    import org.apache.spark.TaskContext
    import org.apache.spark.resource.{ExecutorResourceRequests, ResourceProfileBuilder, TaskResourceRequests}

    val rdd = sc.range(0, 100, 1, 6).mapPartitions { iter => {
      val tc = TaskContext.get()
      assert(!tc.resources().contains("gpu"))
      iter
    }
    }

    val ereqs = new ExecutorResourceRequests().cores(8).resource("gpu", 1)
    val treqs = new TaskResourceRequests().cpus(1).resource("gpu", 0.125)
    val rp = new ResourceProfileBuilder().require(ereqs).require(treqs).build

    val rdd1 = rdd.repartition(12).withResources(rp).mapPartitions { iter => {
      Thread.sleep(1000)
      val tc = TaskContext.get()
      assert(tc.resources()("gpu").addresses sameElements Array("0"))
      iter
    }
    }
    rdd1.collect()

The provided Spark job will be split into two stages. The first stage comprises 6 tasks, each requiring 1 CPU core for the default profile file. As a result, the first 4 tasks can run concurrently, and then run the remaining 2 tasks.

Within the second stage, there are a total of 12 tasks that demand a distinct resource profile. These tasks necessitate executors equipped with 8 cores and 1 GPU, with each individual task requiring 1 CPU core and 0.125 GPUs. As a result, the initial 8 tasks will execute concurrently, followed by the subsequent 4 tasks.

2 GPUs

configurations

add below configurations in the SPARK_HOME/conf/spark-defaults.conf
spark.worker.resource.gpu.amount 2
spark.worker.resource.gpu.discoveryScript /tmp/gpu_discovery.sh

spark-submit configurations

spark-shell --master spark://<IP_ADDRESS>:7077 --conf spark.executor.instances=1 --conf spark.executor.cores=4 --conf spark.task.cpus=1 \
   --conf spark.dynamicAllocation.enabled=true

By utilizing the aforementioned spark-submit configurations, dynamic allocation is enabled, resulting in the launch of an initial executor equipped with 4 CPU cores. As each task requires 1 CPU core, this setup allows for the simultaneous execution of 4 tasks.

test code

    import org.apache.spark.TaskContext
    import org.apache.spark.resource.{ExecutorResourceRequests, ResourceProfileBuilder, TaskResourceRequests}

    val rdd = sc.range(0, 100, 1, 6).mapPartitions { iter => {
      val tc = TaskContext.get()
      assert(!tc.resources().contains("gpu"))
      iter
    }
    }

    val ereqs = new ExecutorResourceRequests().cores(8).resource("gpu", 2)
    val treqs = new TaskResourceRequests().cpus(1).resource("gpu", 0.25)
    val rp = new ResourceProfileBuilder().require(ereqs).require(treqs).build

    val rdd1 = rdd.repartition(8).withResources(rp).mapPartitions { iter => {
      Thread.sleep(1000)
      val tc = TaskContext.get()
      val tid = tc.partitionId()
      if (tid >= 4) {
        assert(tc.resources()("gpu").addresses sameElements Array("1"))
      } else {
        assert(tc.resources()("gpu").addresses sameElements Array("0"))
      }
      iter
    }
    }
    rdd1.collect()

The provided Spark job will be split into two stages. The first stage comprises 6 tasks, each requiring 1 CPU core for the default profile file. As a result, the first 4 tasks can run concurrently, and then run the remaining 2 tasks.

 These tasks necessitate executors equipped with 8 cores and 2 GPUs, with each individual task requiring 1 CPU core and 0.25 GPUs. As a result, the total 8 tasks will execute concurrently, the first 4 tasks will grab GPU ID 0 while the remaining 4 tasks will grab GPU ID 1. The assert line can ensure that.

Hi @tgravescs, I did the manual tests on dynamic allocation on/off on the spark standalone cluster. Please check the comments of dynamic allocation off and dynamic allocation on
If you think I still need to do some other tests, please feel free to tell me. Thx very much.

thanks for the detailed test results and all the work! this looks good.

Merged to master branch.


Feature - Wrap all install and uninstall methods from dashboard/extend/install DashboardPageController with a "try and catch" block

By wrapping the different install and uninstall methods with a try and catch block, opens the possibility to throw exceptions while installing or uninstalling the package. Thrown exceptions will then be caught and added to the $this->error object of the controller.
This would especially be useful for checking for package or environment dependencies.

An install method throwing an exception already shows as an error message on the dashboard page.

I'm testing this on the concrete5 release candidate 2 for 8.2.0 but it doesn't work. There is not a single try and catch block in this controller. So I can't see how this should work. However, if I alter the code in the following manner, it works fine.
//From the class - Concrete\Controller\SinglePage\Dashboard\Extend\Install
public function install_package($package)
{
    try{
        $tp = new TaskPermission();
        if ($tp->canInstallPackages()) {
           // some more code
        } else {
            $this->error->add(t('You do not have permission to install add-ons.'));
        }
    }catch(\Exception $e){
        $this->error->add($e);
    }
}

Seems to be fixed by now.


Cocoapods install of RealmSwift not working

Hi,
I'm trying to install RealmSwift using Cocoapods.  I followed the steps here:
https://realm.io/docs/swift/latest/
to the letter and it simply will not work.  I'm using Cocoapods 0.38.2, XCode 6.4 and my Podfile includes:
pod 'Realm', '0.94.1'
pod 'RealmSwift'

for both the main and unit test targets and have added "use_frameworks!" to it as well.
Yet, every time I try to pod install, I get the following output from Cocoapods in the terminal:
Updating local specs repositories

CocoaPods 0.39.0.beta.2 is available.
To update use: `sudo gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

Analyzing dependencies
[!] Unable to satisfy the following requirements:

- `RealmSwift` required by `Podfile`
- `RealmSwift` required by `Podfile`

What can I do to get RealmSwift up and running?  Thank you.

Can you make sure that your minimum deployment target is iOS 8 / OS X 10.9 or greater? As of the 0.39 beta, CocoaPods has a more helpful error message.

Whenever specifying custom versions of Realm, make sure that version is identical for both the Realm and RealmSwift pods, as they are released together. So if you need to use 0.94.1 explicitly, try this in your Podfile:
pod 'Realm', '0.94.1'
pod 'RealmSwift', '0.94.1'

or to use the latest:
pod 'Realm'
pod 'RealmSwift'

@jpsim that isn't necessary, as the resolver can find the set of versions that match,

ah, yes, I was thinking of the non-released case. thanks for clarifying.

The deployment target was not a 8.0 or higher, so I tried making it 8.0 and 8.1.  I still have been running into the same errors with a pod install.  Is there something else simple that I might be missing?

Can you see if CocoaPods 0.39.0.beta.3 gives you a more helpful error message? And also try adding an explicit platform :ios, '8.0' to the top of your Podfile? Thanks!

I actually added that explicit ios versioning after the fact and it did the trick.  Been too busy to post about that here.  Thanks for the help @segiddins and @jpsim

Happy you worked it out!


Objects not Iterable

`# a lost look like the following
list1 = [4, 8, 7, 6, 9]
list2 = list([4, 8, 7, 6, 9]) # built in list function
'''
datatypes in lists: [string, int, float, list, set, dict, tuple, boolean]
'''
simple example [0, 1, 2 ,3]
list3 = ["Apple", 54, 87,36, True]
print(list3)
accessing items: we can print only one item
print(list3[0]) # prints "Apple"
print(list3[1]) # prints 54
print(list3[-1]) # prints "True"
we can update an existing list
'''
list[index] = new_value
'''
list4 = ["apple", "banana", "cherry"]
list4[2] = "orange"
print(list4)
mylist = [] # creates an empty list
mylist = list() # also creates an empty list
print("The list is:", mylist)
print("List length:", len(mylist)) # length of the list is 0
we can multiply lists: [initial_value] * n
n = 10
initial_value = 0 # initial value can also be None
output = [initial_value] * n # [initial_value] = [0]
print(output)
we can add strings to empty list by appending, regerally: list.append(item)
x = []
x.append("apple")
print(x)
class Student:
def init(self, name=str, age=int):
self.name = name
self.age = age
#student objects
student1 = Student('Arjun', 14)
student2 = Student('Ajay', 15)
student3 = Student('Mike', 13)
#create list with objects
x = [student1, student2, student3]
print("Student Data:")
for list, (name, age) in enumerate(zip(student1,student2,student3), start=1):
print(f"{name}, {age}")
list of empty lists
n = 5
x = [[]] * n
print(x)
we can craete a sublist
y = [1, 2, 3, 4, 5]
sublist = y[1:4]
print(sublist)
z = [6, 7, 8, 9]
z.reverse() # or z = z[::-1] also reverses the list
print(z)`
Nicht sehr suave Lösung aber hey. Es funktioniert.

When we enumerate list x: Student object is not iterable

When we change the classes up to include iter and init as magic functions we can return without an error. The following function looks like this:
class Student:
def init(self, name=str, age=int):
self.name = name
self.age = age
def __iter__(self):
    # Allow the object to be iterable by yielding its attributes
    yield self.name
    yield self.age

Create student objects
student1 = Student('Arjun', 14)
student2 = Student('Ajay', 15)
student3 = Student('Mike', 13)
Create a list with objects
x = [student1, student2, student3]
Print Student Data
print("Student Data:")
for student in x:
name, age = student  # Unpack the attributes of the student object
print(f"Name:{name}, Age: {age}")

'''pythonclass Student:
def init(self, name, age):
self.name = name
self.age = age
def __repr__(self):
    return f"Student(name={self.name}, age={self.age})"

Create student objects
student1 = Student('Arjun', 14)
student2 = Student('Ajay', 15)
student3 = Student('Mike', 13)
print("Student Data:" )
for student in [student1, student2, student3]:
print(f"Name: {student.name}, Age: {student.age}")
'''
This fixes the issue in KT3_prep.ipynb


TinyImageNet notebook example

Added tiny image net example to the new API

There is a typo in the Jupyter Notebook file name: new_python_api_tinyiamgenet.

Getting the exception on collaborator side (both one and two):
EXCEPTION : loaded state dict contains a parameter group that doesn't match the size of optimizer's group
Traceback (most recent call last):
  File "/home/itrushkin/.virtualenvs/tinyimagenet/bin/fx", line 8, in <module>
    sys.exit(entry())
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/openfl/interface/cli.py", line 205, in entry
    error_handler(e)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/openfl/interface/cli.py", line 163, in error_handler
    raise error
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/openfl/interface/cli.py", line 203, in entry
    cli()
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/openfl/interface/collaborator.py", line 49, in start_
    plan.get_collaborator(collaborator_name).run()
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/openfl/component/collaborator/collaborator.py", line 121, in run
    self.do_task(task, round_number)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/openfl/component/collaborator/collaborator.py", line 208, in do_task
    global_output_tensor_dict, local_output_tensor_dict = func(
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/openfl/federated/task/task_runner.py", line 107, in collaborator_adapted_task
    self.rebuild_model(input_tensor_dict, validation=validation_flag, device=device)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/openfl/federated/task/task_runner.py", line 225, in rebuild_model
    self.set_tensor_dict(input_tensor_dict, with_opt_vars=True, device=device)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/openfl/federated/task/task_runner.py", line 375, in set_tensor_dict
    return self.framework_adapter.set_tensor_dict(*args, **kwargs)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/openfl/plugins/frameworks_adapters/pytorch_adapter.py", line 53, in set_tensor_dict
    _set_optimizer_state(optimizer, device, tensor_dict)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/openfl/plugins/frameworks_adapters/pytorch_adapter.py", line 80, in _set_optimizer_state
    optimizer.load_state_dict(temp_state_dict)
  File "/home/itrushkin/.virtualenvs/tinyimagenet/lib/python3.8/site-packages/torch/optim/optimizer.py", line 146, in load_state_dict
    raise ValueError("loaded state dict contains a parameter group "
ValueError: loaded state dict contains a parameter group that doesn't match the size of optimizer's group

fl_experiment.start_experiment hangs with output:
tried to remove tensor: __opt_state_needed not present in the tensor dict
tried to remove tensor: __opt_state_needed not present in the tensor dict
WARNING:openfl.transport.grpc.server:gRPC is running on insecure channel with TLS disabled.
INFO:openfl.transport.grpc.server:Starting Aggregator gRPC Server
INFO:openfl.component.aggregator.aggregator:Sending tasks to collaborator two for round 0
INFO:openfl.component.aggregator.aggregator:Sending tasks to collaborator one for round 0
INFO:openfl.component.aggregator.aggregator:Collaborator two is sending task results for train, round 0
INFO:openfl.component.aggregator.aggregator:Collaborator one is sending task results for train, round 0
INFO:openfl.component.aggregator.aggregator:Collaborator two is sending task results for localy_tuned_model_validate, round 0
INFO:openfl.component.aggregator.aggregator:Collaborator one is sending task results for localy_tuned_model_validate, round 0
INFO:openfl.component.aggregator.aggregator:Collaborator two is sending task results for aggregated_model_validate, round 0
INFO:openfl.component.aggregator.aggregator:Collaborator one is sending task results for aggregated_model_validate, round 0
INFO:openfl.component.aggregator.aggregator:train task metrics...
INFO:openfl.component.aggregator.aggregator:<openfl.component.aggregation_functions.weighted_average.WeightedAverage object at 0x7f0643e40250> train_loss:	4.5592
INFO:openfl.component.aggregator.aggregator:aggregated_model_validate task metrics...
INFO:openfl.component.aggregator.aggregator:<openfl.component.aggregation_functions.weighted_average.WeightedAverage object at 0x7f0643e40250> cross_entropy:	0.7203
INFO:openfl.component.aggregator.aggregator:Saved the best model with score 0.720267
INFO:openfl.component.aggregator.aggregator:localy_tuned_model_validate task metrics...
INFO:openfl.component.aggregator.aggregator:<openfl.component.aggregation_functions.weighted_average.WeightedAverage object at 0x7f0643e40250> cross_entropy:	0.4713
INFO:openfl.component.aggregator.aggregator:Saving round 1 model...
INFO:openfl.component.aggregator.aggregator:Starting round 1...
INFO:openfl.component.aggregator.aggregator:Sending tasks to collaborator one for round 1
INFO:openfl.component.aggregator.aggregator:Sending tasks to collaborator two for round 1

UNet interactive API notebook works fine. I use torch==1.8.1, Ubuntu 18.04, and CPU training.

Jenkins please retry a build


Docstring status

goodman_ccd

Module
Status
Docstrings

__init__.py

core.py

100%

data_classifier.py

100%

goodman_ccd.py

100%

image_processor.py

100%

night_organizer.py

100%

wavmode_translator.py

100%

goodman_spec

Module
Status
Docstrings

__init__.py

id_and_extract.py
deprecated

linelist.py

100%

process.py
deprecated

redspec.py

100%

wavelength.py

100%

wsbuilder.py

100%

Updated original post to update data_classifier.py

Updated original post to update goodman_ccd.py

Updated original post. goodman_ccd.py is now 100%

Updated original post. imagin_processor.py is now 100%

Updated original post. night_organizer.py is now 100%

Updated original post. night_organizer.py is now 100%
Now the goodman_ccd module is complete.

Updated original post. linelist.py is now 100%

Updated original post. linelist.py is now 100%

Updated original post. wavelength.py is now 90%
The work needed is to complete the documentation (docstrings) of the WavelengthSolution class.
Also the automatic_wavelength_solution() and interactive_wavelength_solution() method's docstrings require re-writting. The current text is too crowded and confusion. It will require more work to re do.

Updated original post. wavelength.py is now 100%

Updated original post. wsbuilder.py is now 100%

The initial Docstring Review has been completed. And we are 100% complete. Though a review by a third person is required to identify typos asses if the docstrings are actually helpful etc.
I'm closing this issue for now, if necessary a new one should be open should anything arise from that third-person review.


TBStudio parser

I added the test for the parser. Please take a look if we can merge it.

@mohammadnakhaee let me know when you need another quick round of review. I'll like to merge soon the new refactoring of 'Projection' to 'TB', https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/merge_requests/1285.
Maybe, we should decouple both changes: one merge for the renaming, another merge for adding SlaterKoster and TBStudio.

@JosePizarro3 yes. Could you please take a look. I solved the problems and lint errors related to tbstudio but it is still failed. Maybe you know what is going wrong. The failed tests are not related to the tbstudio.

@JosePizarro3 yes. Could you please take a look. I solved the problems and lint errors related to tbstudio but it is still failed. Maybe you know what is going wrong. The failed tests are not related to the tbstudio.

Maybe rebasing would solve the issue?
Bear in mind that pytest will anyways fail. I'd say that if after rebasing pylint and mypy do not pass, I'll take a look 🙂

Yeah let me rebase it. Maybe it helps.

I rebased it. Now the problem is only these two
electronicparsers/utils/utils.py:30:0: E0611: No name 'TB' in module 'nomad.datamodel.metainfo.simulation.workflow' (no-name-in-module)
electronicparsers/utils/utils.py:30:0: E0611: No name 'TBMethod' in module 'nomad.datamodel.metainfo.simulation.workflow' (no-name-in-module)
which I guess it makes sense. Doesn't it? They are newly added in the gitlab branch which is not merged yet. Is it correct?

which I guess it makes sense. Doesn't it? They are newly added in the gitlab branch which is not merged yet. Is it correct?

Yes, indeed 🙂
Perfect, I will take a look and give you some final review. Though it looked good at first sight. Do you want me also to review now the gitlab side?

Yes please see the gitlab again. I will close all the threads since there are extensive changes to the previous version. Would be nice if you comment on this version.

@mohammadnakhaee all good, come to my office (I have a final doubt) and we do the final merge together 🙂


281 change feedback

What do we think about the way I've done the doorbell stuff in Resource.fs?

@NSmeef Yes im happy with the resource.fs - looks good

@jameskirk84 cool, thanks!


[FLINK-2756] Fix start/stop scripts for paths with spaces

Checked the following scripts:

start-local.sh
stop-local.sh
start-cluster.sh
stop-cluster.sh

with default setting.
@uce, can you check if the script still work for the HA setup (zookeeper, multiple JMs, etc.)?

+1
Merging this...


s3_auth: Fix parsing of virtual_host

A recent change (#9090) broke parsing for the config key virtual_host which can be supplied without a value.  This change fixes parsing for virtual_host, and adds it to autest.

[approve ci]

[approve ci autest]


RangeError: Set maximum size exceeded

When displaying documents via GroupDocs a console log error appears twice in main.js. However, it seems that the functionality of the GroupDocs Viewer is not affected by this.
What could be the cause?

.NET Core version 7.0.15
GroupDocs.Viewer.UI version 6.0.16

@ManuelHaas
Thank you for reporting this issue but we're not going to fix it as the new Angular UI will replace this one next month.


Functionality

Add some basic site components (404 and robots.txt).
Fix CSS for Safari (Mac) back button functionality.
Add image feature to pages.
Add video type to posts, pages, and the post list, using FitVids.
Update Font Awesome.
Fix spurious slashes in sidebar nav list.
Remove word breaks.
Improve post excerpts to use more tag or otherwise first paragraph.

I'll give it a look tomorrow and tell you if I can merge asap. Great work for you and thanks for making leonids better!


NIFI-12298 add swagger annotations for createExtensionBundleVersion form fields

Summary
NIFI-12298
The current swagger annotations for the
createExtensionBundleVersion function in BucketBundleResource results in the form parameters for 'file' and 'sha256' being left out of the generated swagger api defenition for the /buckets/{bucketId}/bundles/{bundleType} endpoint.
By adding a
ApiImplicitParams annotation for both these fields, swagger will correctly interpret these and add them as fields to the endpoint.
When generating swagger clients, this change is required to correctly support the necessary input arguments.
Swagger defenition of endpoint BEFORE changes:
"/buckets/{bucketId}/bundles/{bundleType}" : {
      "post" : {
        "tags" : [ "Swagger Resource" ],
        "summary" : "Create extension bundle version",
        "description" : "Creates a version of an extension bundle by uploading a binary artifact. If an extension bundle already exists in the given bucket with the same group id and artifact id as that of the bundle being uploaded, then it will be added as a new version to the existing bundle. If an extension bundle does not already exist in the given bucket with the same group id and artifact id, then a new extension bundle will be created and this version will be added to the new bundle. Client's may optionally supply a SHA-256 in hex format through the multi-part form field 'sha256'. If supplied, then this value will be compared against the SHA-256 computed by the server, and the bundle will be rejected if the values do not match. If not supplied, the bundle will be accepted, but will be marked to indicate that the client did not supply a SHA-256 during creation. \n\nNOTE: This endpoint is subject to change as NiFi Registry and its REST API evolve.",
        "operationId" : "createExtensionBundleVersion",
        "consumes" : [ "multipart/form-data" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "bucketId",
          "in" : "path",
          "description" : "The bucket identifier",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "bundleType",
          "in" : "path",
          "description" : "The type of the bundle",
          "required" : true,
          "type" : "string",
          "enum" : [ "nifi-nar", "minifi-cpp" ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/BundleVersion"
            }
          },
          "400" : {
            "description" : "NiFi Registry was unable to complete the request because it was invalid. The request should not be retried without modification."
          },
          "401" : {
            "description" : "Client could not be authenticated."
          },
          "403" : {
            "description" : "Client is not authorized to make this request."
          },
          "404" : {
            "description" : "The specified resource could not be found."
          },
          "409" : {
            "description" : "NiFi Registry was unable to complete the request because it assumes a server state that is not valid."
          }
        },
        "security" : [ {
          "Authorization" : [ ]
        } ],
        "x-access-policy" : {
          "resource" : "/buckets/{bucketId}",
          "action" : "write"
        }
      }

Swagger definition of endpoint AFTER changes:
"/buckets/{bucketId}/bundles/{bundleType}" : {
      "post" : {
        "tags" : [ "Swagger Resource" ],
        "summary" : "Create extension bundle version",
        "description" : "Creates a version of an extension bundle by uploading a binary artifact. If an extension bundle already exists in the given bucket with the same group id and artifact id as that of the bundle being uploaded, then it will be added as a new version to the existing bundle. If an extension bundle does not already exist in the given bucket with the same group id and artifact id, then a new extension bundle will be created and this version will be added to the new bundle. Client's may optionally supply a SHA-256 in hex format through the multi-part form field 'sha256'. If supplied, then this value will be compared against the SHA-256 computed by the server, and the bundle will be rejected if the values do not match. If not supplied, the bundle will be accepted, but will be marked to indicate that the client did not supply a SHA-256 during creation. \n\nNOTE: This endpoint is subject to change as NiFi Registry and its REST API evolve.",
        "operationId" : "createExtensionBundleVersion",
        "consumes" : [ "multipart/form-data" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "bucketId",
          "in" : "path",
          "description" : "The bucket identifier",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "bundleType",
          "in" : "path",
          "description" : "The type of the bundle",
          "required" : true,
          "type" : "string",
          "enum" : [ "nifi-nar", "minifi-cpp" ]
        }, {
          "name" : "file",
          "in" : "formData",
          "description" : "The binary content of the bundle file being uploaded.",
          "required" : true,
          "type" : "file"
        }, {
          "name" : "sha256",
          "in" : "formData",
          "description" : "Optional sha256 of the provided bundle",
          "required" : false,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/BundleVersion"
            }
          },
          "400" : {
            "description" : "NiFi Registry was unable to complete the request because it was invalid. The request should not be retried without modification."
          },
          "401" : {
            "description" : "Client could not be authenticated."
          },
          "403" : {
            "description" : "Client is not authorized to make this request."
          },
          "404" : {
            "description" : "The specified resource could not be found."
          },
          "409" : {
            "description" : "NiFi Registry was unable to complete the request because it assumes a server state that is not valid."
          }
        },
        "security" : [ {
          "Authorization" : [ ]
        } ],
        "x-access-policy" : {
          "resource" : "/buckets/{bucketId}",
          "action" : "write"
        }
      }

Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[x] Apache NiFi Jira issue created

Pull Request Tracking

[x] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
[x] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

[x] Pull Request based on current revision of the main branch
[x] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[x] Build completed using mvn clean install -P contrib-check

[x] JDK 21

Licensing

[x] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[x] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation
- [ ] Documentation formatting appears as expected in rendered files

Thanks @Hexoplon - merged to main and 1.x


Service update --publish-add can disconnect existing published ports from replicated service

Description
When adding a published port to swarm mode service, all existing ports may become unresponsive.  I have only seen this when the number of replicas is 2 or greater.

Steps to reproduce the issue:

Create replicated service

docker network create --driver overlay mynet
docker service create --network mynet \
  --name proxy \
  --publish-add 8080:80 \
  --replicas 2 \
  jettjones\nginx:repro-publishadd

Add a second port
docker service update --publish-add 8081:443 proxy
Test
curl -I localhost:8080
curl -I localhost:8081

Describe the results you received:
The existing port stops responding:
curl: (7) Failed to connect to localhost port 8080: Connection refused
The newly added port is successful:
HTTP/1.1 200 OK
Describe the results you expected:
Both ports connect to the container successfully.
Additional information you deem important (e.g. issue happens only occasionally):
I have only seen this happen when the number of replicas is set to 2. However, once a container is in this state, restarting or decreasing the number of replicas does not fix it, nor does removing the port that was added.  Decreasing the number of replicas and then restarting the container does allow all ports to accept traffic.
Output of docker version:
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:33:38 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:33:38 2016
 OS/Arch:      linux/amd64

Output of docker info:
Containers: 16
 Running: 10
 Paused: 0
 Stopped: 6
Images: 11
Server Version: 1.12.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 149
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge overlay host null
Swarm: active
 NodeID: d1ki2yabefhg9wc0oq95aka3q
 Is Manager: true
 ClusterID: 560819su0ezmhfu2swc6ghlll
 Managers: 1
 Nodes: 2
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: <IP_ADDRESS>
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-38-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.795 GiB
Name: ip-10-0-10-3
ID: R26H:X6JI:L2II:YQ54:ZXZW:L424:Q36L:QMTG:RDK2:5UHU:W7FE:SP3H
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 <IP_ADDRESS>/8

Additional environment details (AWS, VirtualBox, physical, etc.):
I'm running this in aws, on ubuntu 16.04.  My test cluster has one master and one worker.
the jettjones/nginx:repro-publishadd container is made from two files.  The default nginx:alpine image also works to reproduce, but it listens only on port 80, so the repro steps would publish internal port 80 as two different external ports.
Dockerfile
FROM nginx:alpine
COPY server.conf /etc/nginx/conf.d/default.conf

server.conf
server {
    listen 80;
    server_name _;

    location / {
        return 302 https://$host$request_uri;
    }
}

server {
    listen 443;
    server_name _;

    location / {
	    return 200;
    }
}

Other command output:
docker service inspect proxy
[
    {
        "ID": "7p26dmbs6rwsgaq0x2m635cii",
        "Version": {
            "Index": 3033
        },
        "CreatedAt": "2016-10-12T04:08:53.451476109Z",
        "UpdatedAt": "2016-10-12T04:09:32.767369819Z",
        "Spec": {
            "Name": "proxy",
            "TaskTemplate": {
                "ContainerSpec": {
                    "Image": "jettjones/nginx:repro-publishadd",
                    "Env": [
                        "SERVICE_IGNORE=1"
                    ]
                },
                "Resources": {
                    "Limits": {},
                    "Reservations": {}
                },
                "RestartPolicy": {
                    "Condition": "any",
                    "MaxAttempts": 0
                },
                "Placement": {}
            },
            "Mode": {
                "Replicated": {
                    "Replicas": 2
                }
            },
            "UpdateConfig": {
                "Parallelism": 1,
                "FailureAction": "pause"
            },
            "Networks": [
                {
                    "Target": "0kpztn1dvrbaldpo92bjqx5mk"
                }
            ],
            "EndpointSpec": {
                "Mode": "vip",
                "Ports": [
                    {
                        "Protocol": "tcp",
                        "TargetPort": 80,
                        "PublishedPort": 8080
                    },
                    {
                        "Protocol": "tcp",
                        "TargetPort": 443,
                        "PublishedPort": 8081
                    }
                ]
            }
        },
        "Endpoint": {
            "Spec": {
                "Mode": "vip",
                "Ports": [
                    {
                        "Protocol": "tcp",
                        "TargetPort": 80,
                        "PublishedPort": 8080
                    },
                    {
                        "Protocol": "tcp",
                        "TargetPort": 443,
                        "PublishedPort": 8081
                    }
                ]
            },
            "Ports": [
                {
                    "Protocol": "tcp",
                    "TargetPort": 80,
                    "PublishedPort": 8080
                },
                {
                    "Protocol": "tcp",
                    "TargetPort": 443,
                    "PublishedPort": 8081
                }
            ],
            "VirtualIPs": [
                {
                    "NetworkID": "64szamnvz1egnct5kbpkn6w57",
                    "Addr": "<IP_ADDRESS>/16"
                },
                {
                    "NetworkID": "0kpztn1dvrbaldpo92bjqx5mk",
                    "Addr": "<IP_ADDRESS>/16"
                }
            ]
        },
        "UpdateStatus": {
            "State": "completed",
            "StartedAt": "2016-10-12T04:09:26.675362939Z",
            "CompletedAt": "2016-10-12T04:09:32.767362384Z",
            "Message": "update completed"
        }
    }
]

docker network inspect mynet
[
    {
        "Name": "mynet",
        "Id": "0kpztn1dvrbaldpo92bjqx5mk",
        "Scope": "swarm",
        "Driver": "overlay",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "<IP_ADDRESS>/16",
                    "Gateway": "<IP_ADDRESS>"
                }
            ]
        },
        "Internal": false,
        "Containers": {
            "09ed3a8a7287584dfe6c4eaeb81b6a08a82000ff32521b24acdb8149ac83e76b": {
                "Name": "repro.1.91uph3wmtxwygq9jo0yrcx9l8",
                "EndpointID": "160d51df4d5daa658ccaf9ddec86008a27ac9d171b61fbb7ed59f96c4990b41f",
                "MacAddress": "02:42:0a:17:00:2c",
                "IPv4Address": "<IP_ADDRESS>/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.driver.overlay.vxlanid_list": "257"
        },
        "Labels": {}
    }
]

I am able to reproduce this with docker 1.12.1, with only one master.
But when I retry from scracth with 1.12.2, things work fine.
Can you please try docker 1.12.2 (had several fix in the area of swarm mode networking) and see if it fixes your issue ?

Confirmed locally that 1.12.2 appears to fix this.  That was released yesterday? such timing!

Thanks @JettJones for confirmation. closing.


Doesn't convert SUBDUR

From rpgfreeweb issue
Some related code changes are already done by @itsophie under pull request #23 but they do not correctly implement the feature.
There is additional work though as (SUBDUR) has two meanings

factor2 is a date/time/timestamp and the result is a duration and duration code.  This is used to calculate the duration.  Both factor1 and factor2 are required.
factor2 contains a duration and duration code and the result contains a date/time/timestamp.  This is used to subtract a duration.  factor1 is optional.

ADDDUR should be implemented too.  ADDDUR only has one interpretation.

@rustygad Does this work for you?

Included in version 0.0.6


Fixed single signature type instantiations leaking between calls with different mappers

fixes https://github.com/microsoft/TypeScript/issues/59937 , cc @weswigham

@typescript-bot test it


added the clean-expand to the homepage so the {!expand} flag wouldnt show

Codecov Report

Merging #131 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #131   +/-   ##
=======================================
  Coverage   79.67%   79.67%
=======================================
  Files         117      117
  Lines        7782     7782
  Branches     1181     1181
=======================================
  Hits         6200     6200
  Misses       1582     1582

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 c7a5112...3e324ad. Read the comment docs.


It works but it doesn't always show the icons

Version 2.1.1 works but doesn't always show icons. I know one situation. I warn you right away that the script in this situation had NO problems. For example, if the page loads information after the site has loaded. Example: SteamGifts.com with plugin installed:
https://chrome.google.com/webstore/detail/enhanced-steamgifts-steam/ibedmjbicclcdfmghnkfldnplocgihna
and active option #2.8 "Endless Scrolling".
It causes that instead of going to the second, third and next subpage of the main website, after moving to the bottom of the page, the content from the next subpage is automatically loaded. And as I have already written, the SWI script displays icons in this situation. Plugin in version 2.1.1 - no.

Are you talking about the dynamic content option?

Sorry. It was enough to change the settings to be good.


Laravel Framework 7 Support

Are there plans to add support for Laravel 7?
Thank you for your package!

We would like to upgrade to Laravel 7 too, but this package is stopping us from doing so.
Would love to see an eta.


meshery: Add support to send complete deployment in /api/mesh/scan

Now the complete deployment, including namespace, version, list of containers
along with other meta data (labels) and number of replicas can be READ by single
GET request
Signed-off-by: Naveen Jain<EMAIL_ADDRESS>
Description

This PR fixes #704
Notes to reviewers:
Checklist

[x] DCO signed.
[x] Title of the PR starts with area name, e.g. meshery:, mesheryctl:, ui:.

@shivaylamba here is sample output from this enhanced scan of the environment, which pulls back many more details about a service mesh deployment. This example is of an Istio deployment.
meshsync-istio.txt


Not working with hosts via proxy

The same host working with direct communication works perfectly. When switched to work through proxy it does not recognize the data sent by perl scripts (they seem to be working fine, though) - no new data is showing up in the "history" table.

hello Pawel,
seems like an issue with Zabbix. I've searched and found that people encounter the same problem when using Zabbix Trapper over Proxy, some of them say that it takes some time to transmit data from proxy to server.
honestly, I've never worked with Zabbix Proxy and don't know how to help right now. can you try to send data using zabbix_sender and see if it's received by server?
thanks.

Hopefuly, I have my answer. After some experimetns with zabbix_sender (thanks Alex) I realized that it's a bit misleading in the short help. Manual explains - if the host is monitored through a proxy, use the proxy address instead of the server. I changed it in the ZabbixDBA configuration and seems to be working now.

that's great, thanks for the explanation!
will add this information to Wiki


No completions shown for placeholder after Kite snippet selected

Problem Description
After selecting a snippet, the placeholders do not show completions.
What steps reproduce the problem?

Type the following

Select savefig <args, kwargs>

What is the expected output? What do you see instead?
Expected: Completions for args
Actual: No completions

Versions

Spyder version: latest Spyder beta
Python version:
Qt version:
PyQt version:
Operating System name/version:

@plungg, I'm unable to reproduce this one:

@andfoy here is it in a more clear fashion:
Expected behavior, see Atom:

After selecting the snippet, I see completions show up
For a placeholder, after I type one char, I see completions show up

Actual behavior, from Spyder.

After selecting the snippet, I don't see completions show up. Here, I press CTRL+SPACE to get completions to show, but these aren't from Kite.
For a placeholder, after I type one char, I don't see completions show up.

I've set completions to show with a min of 1 char:

We decided to leave this one for 4.1.0 because we'd like to come up with a good UX for it. @andfoy implemented it but found that a naive UX is really cumbersome, so we need to think more carefull about it.


Implement assert_liveliness()

Description of changes:
Implement assert_liveliness().
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Currently, the base branch is set to qos_interfaces, but once https://github.com/aws-robotics/rmw_opensplice/pull/1 is merged into qos_reviewed, the base branch of this PR can be set to qos_reviewed.


Use Record<string, string> pervasively

We can replace { [key: string]: string } with Record<string, string>

Thanks @diehuxx for merging #340, this can now be closed.


fix: page-toolbar styling issue with overlapping elements (#8)

Thanks for pointing that out.
I’ve tested the issue on Chrome, Safari, Firefox, and on an iPad, but I wasn't able to reproduce it.
Could you provide more details or let me know if there's a specific environment where this is happening?


About training data

Thanks for your working! I downloaded ms1m-retinaface training data from the link you shared.I saw your datasets.py required separate image files to open but there is no such file in ms1m-retinaface-t1. I'm confused,how can I use .rec,.lst&.idx file with your training code?

please use python script rec2image.py in insightface extract img from .rec file, and generate img.txt by yourself.

OK,thank you


Fix/place new elements in front

fixes #99 when placing new elements in front (or with the same rank as an already existing)

Is there any issue with this PR or any reason not to apply it?

Hi @emrox, I'm happy to look at this for you. Can you give me a bit more of a detailed rundown of the problem? I've looked at your code and the issue but it's not clear to me if this is a bug.
Are you saying that when you grab an existing items position and set your moving item's position to the existing items position (i.e. push the existing item down the list and insert this moving item there) that it doesn't work as expected?
It's my understanding that you shouldn't use the rank column directly but rather the position pseudo-value. So grab the existing items swimming_rank_position then use that to move the other item.
Let me know your thoughts on that.

Closed as abandoned.


[enhancement]: Anti-malware software interferes with installation

Is there an existing issue for this?

[X] I have searched the existing issues

Contact Details
No response
What should this feature add?
Some AV software (have seen AVG and Kaspersky mentioned) prevent a SSL revocation check from succeeding. The installer's curl commands then break and install fails.
We should try to figure out how to avoid this without just disabling the revocation checks (which does work) or forcing the user to disable their anti-malware software (which also does work).
See https://discord.com/channels/1020123559063990373/1044860655422943302 for some helpful investigation by @ebr.
Alternatives
No response
Aditional Content
No response

Deactivate antivirus during installation and no problems

From what I understand of this issue (it only effects curl) and its cause (curl using Window's (default?) non-standard secure connections for cert verification validation), the correct solution here should be setting CURL_SSL_BACKEND=openssl, which disables nothing, but rather switches curl's secure backend from Windows' to SSL's

Is OpenSSL guaranteed to be available on windows?

That is a very good point. It seems that curl should be built with the openssl backend, and I don't think we can rely on that on Windows. I tried this just now on a clean Windows VM, and my curl's behaviour is unchanged with this environment var set, but I don't have any antivirus on there, so actually no idea if it had any effect. It did not break curl, so there's that.
But besides, getting users to set a Windows environment variable is probably not going to be a robust solution.
Here's another idea: curl -tlsv1.3 -L https://github.com/cmdr2/stable-diffusion-ui/releases/download/v1.1/micromamba.exe -O. -tlsv1.3 forces the use of TLSv1.3, which may tell SChannel to behave correctly. I just tried it, works, but again - no AV, so no idea if this is a fix. The inspiration for this came from a tangentially related https://stackoverflow.com/questions/41618766/powershell-invoke-webrequest-fails-with-ssl-tls-secure-channel
Finally, I'd like to test if using Invoke-WebRequest in PowerShell instead of curl in .bat might work around the issue. will report back.

@ebr I wonder if PowerShell is a better shell for our installation. It's so much nicer to work in and provides a lot of wonderfully useful cmdlets. Ya know, I'm gonna just go ahead and say yes - it is a better shell for us to use - and interestingly, it is cross-platform... Maybe this is crazy, but what if we used PowerShell for all platforms?
Sorry, went a bit off topic.

@psychedelicious;

what if we used PowerShell for all platforms?

I totally follow your logic (although I have some resevations), but... I can't do it, not in a reasonable time frame. I know almost nothing about Powershell, and every time I've tried to learn, it's broken my brain.

@ebr;

getting users to set a Windows environment variable

Not necessary (AFAIK) - there should be a way to set that in the script just for the curl command (like e.g. setting the MPS backend thingy for Macs).

We resolved this a while back when we moved to Python-based installer.


Doubled bird logo image

Issue Summary
Doubled logo icon in left top corner.
Steps to Reproduce
Update/install Wagtail 1.12
Technical details
I tried Safari and Chrome, both running on MacOS (all latest version).

Hi @moreplavec,
Please see #3809 - you need to refresh the page.


Default fee seems to be changed from uusd to uluna

It would seem that one the latest updates to terra.js has changed the default fee from uusd to uluna.
We're seeing many "complaints" / error reports about this on the Pylon telegram where I'm co-admin (because people don't have LUNA in their wallet), and some chatter in TG dev groups.
I think it might have happened with this commit, but I'm not entirely sure, since I'm pretty new to this stack
https://github.com/terra-money/terra.js/commit/7025f88714209a2acbc35110a13d86aab3403943
Please and thank you :)

defaule fee denom before the commit is uluna.. see this.

@laine-ust could you check feeDenoms for createAndSignTx() and gasPrices for new LCDClient()?

@Vritra4 good point - i've been testing all the way back to v2.0.5 and the default gasFee is uluna on new LCDClient().
It might be unrelated then - sorry for the "noise".


Adjust padding on zoom controls

The + and - buttons in the map's zoom controls likely each have bottom padding that pushes them into a position near the top of the controls. This could be adjusted so that the buttons fit in the center of the controls

Probably could just remove the padding on the - button


Demo on https://demo.home-assistant.io/#/lovelace/0 is not working

Only two are viewing when there should be more showing

Could you provide more information? Such as browser you have problem?
I don't have problem to browse demo site right now.

After the second demo page it crashes and pops up an error, are you able to browse all of them?