Memory issue after dask.persist()

Hi,
I have a script using dask. When I run the script, I found the memory will blow up over time. So I do some experiments. I find I couldn't release the memory after persist. Below is my minimal working example.
In [1]: import numpy as np
In [2]: import dask.array as da
In [3]: import dask
In [4]: import psutil

In [5]: psutil.virtual_memory()
Out[5]: svmem(total=135289647104, available=67503648768, percent=50.1, used=67343593472, free=62600888320, active=63765585920, inactive=7044632576, buffers=58826752, cached=5286338560, shared=96567296)

In [6]: data = np.random.rand(1000,1000,1000)

In [7]: psutil.virtual_memory()
Out[7]: svmem(total=135289647104, available=59508670464, percent=56.0, used=75338403840, free=54605930496, active=71748612096, inactive=7044825088, buffers=58871808, cached=5286440960, shared=96567296)

In [8]: del(data)

In [9]: psutil.virtual_memory()
Out[9]: svmem(total=135289647104, available=67523821568, percent=50.1, used=67323244544, free=62621016064, active=63749652480, inactive=7044861952, buffers=58888192, cached=5286498304, shared=96567296)

Now it's working properly. When I delete the data, the memory will be released. However, if I do sth like below.
In [10]: data = np.random.rand(1000,1000,1000)

In [11]: psutil.virtual_memory()
Out[11]: svmem(total=135289647104, available=59507421184, percent=56.0, used=75339649024, free=54604402688, active=71752163328, inactive=7045079040, buffers=58945536, cached=5286649856, shared=96571392)

In [12]: chunkdata = da.from_array(data,chunks=(200,200,950)).persist(get=dask.threaded.get)

In [13]: psutil.virtual_memory()
Out[13]: svmem(total=135289647104, available=59479982080, percent=56.0, used=75367088128, free=54576783360, active=71779045376, inactive=7045165056, buffers=58986496, cached=5286789120, shared=96571392)

In [14]: del(data)

In [15]: psutil.virtual_memory()
Out[15]: svmem(total=135289647104, available=59491192832, percent=56.0, used=75355877376, free=54587940864, active=71767511040, inactive=7045185536, buffers=59002880, cached=5286825984, shared=96571392)

In [16]: del(chunkdata)

In [17]: psutil.virtual_memory()
Out[17]: svmem(total=135289647104, available=59491373056, percent=56.0, used=75355697152, free=54588071936, active=71768121344, inactive=7045271552, buffers=59019264, cached=5286858752, shared=96571392)

The memory will never be released. And if I do this in a loop, it will blow up the memory.

Can I ask you to try this with plain python rather than with ipython?  IPython sometimes holds onto intermediate values in confusing ways.

It looks like a few of the tasks get stuck in memory, I suspect somewhere in the ThreadPool.  Flushing a few more tasks through the scheduler seems to clean them up.
In [1]: import numpy as np
   ...: import dask
   ...: import dask.array as da
   ...: import psutil
   ...: import weakref
   ...: import sys
   ...: from toolz import frequencies
   ...:

In [2]: x = np.random.random((1000, 1000))
In [3]: d = da.from_array(x, chunks=(100, 100))
In [4]: xr = weakref.ref(x)
In [5]: sys.getrefcount(xr())  # one for x, one for d, one for python
Out[5]: 3

In [6]: d = d.persist(get=dask.get)
In [7]: sys.getrefcount(xr())  # 100 new slices point back to x
Out[7]: 102

In [8]: wvd = weakref.WeakValueDictionary(d.dask)
In [9]: frequencies(map(sys.getrefcount, wvd.values()))
Out[9]: {3: 100}

In [10]: del d
In [11]: frequencies(map(sys.getrefcount, wvd.values()))   # this is what we expect
Out[11]: {}
In [12]: sys.getrefcount(xr())
Out[12]: 2

In [13]: d = da.from_array(x, chunks=(100, 100))  # lets do the same thing with a ThreadPool
In [14]: d = d.persist(get=dask.threaded.get)
In [15]: wvd = weakref.WeakValueDictionary(d.dask)
In [16]: frequencies(map(sys.getrefcount, wvd.values()))
Out[16]: {3: 97, 4: 3}

In [17]: del d
In [18]: frequencies(map(sys.getrefcount, wvd.values()))
Out[18]: {3: 3}

In [19]: sys.getrefcount(xr())
Out[19]: 8

In [20]: da.arange(10, chunks=(1,)).sum().compute()  # lets flush a few more tasks through
Out[20]: 45
In [21]: frequencies(map(sys.getrefcount, wvd.values()))
Out[21]: {}

cc @jcrist

Yeah, this is an issue in Python's ThreadPool implementation:
In [1]: import numpy as np
   ...: import sys
   ...: import weakref
   ...: from multiprocessing.pool import ThreadPool
   ...:

In [2]: pool = ThreadPool(8)

In [3]: x = np.arange(10)

In [4]: futures = pool.map(lambda x: x + 1, [x, x, x, x, x, x, x, x])

In [5]: wr = weakref.ref(x)

In [6]: sys.getrefcount(wr())
Out[6]: 3

In [7]: del futures

In [8]: sys.getrefcount(wr())
Out[8]: 3

In [9]: pool.close()

In [10]: sys.getrefcount(wr())
Out[10]: 2

cc @pitrou
We could flush a few tasks through.  This seems a bit ugly though:
In [14]: pool = ThreadPool(8)

In [15]: %time pool.map(lambda x: x, [None] * 8)
CPU times: user 0 ns, sys: 0 ns, total: 0 ns
Wall time: 1.67 ms

This might be https://bugs.python.org/issue29861, in which case it would be fixed in the next bugfix releases of Python. Which version are you testing with?

Flushing tasks has no effect for me. Here's an example working with just builtins.
In [1]: import weakref, sys

In [2]: from multiprocessing.pool import ThreadPool

In [3]: p = ThreadPool()

In [4]: x = []

In [5]: sys.getrefcount(x)
Out[5]: 2

In [6]: p.apply(len, [x])
Out[6]: 0

In [7]: sys.getrefcount(x)
Out[7]: 3

In [8]: _ = p.map(lambda x: None, range(10000)) # flush lots of tasks

In [9]: sys.getrefcount(x)   # Still at 3 refs (one for getrefcount, one for x, one for pool)
Out[9]: 3

In [10]: import gc

In [11]: gc.collect(2)
Out[11]: 123

In [12]: sys.getrefcount(x)
Out[12]: 3

In [13]: p.close()

In [14]: sys.getrefcount(x)
Out[14]: 2

In [15]: sys.version_info
Out[15]: sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0)

On Python git master:
>>> from multiprocessing.pool import ThreadPool
>>> p = ThreadPool()
>>> x = []
>>> import sys, weakref
>>> sys.getrefcount(x)
2
>>> p.apply(len, [x])
0
>>> sys.getrefcount(x)
2

@jcrist, if you upgrade to 3.5.4, it should be fixed.

Recommending users upgrade would be my recommendation.

Sounds good.  Closing as fixed upstream.

Upgrading does solve the problem above. But if I use dask.distributed, it will still have the same problem with the following code.
import numpy as np
import dask
import dask.array as da
import psutil

from dask.distributed import Client

if __name__ == '__main__':

   client = Client()

   print('case 3: \n')
   print('before create numpy array:\n')
   print(psutil.virtual_memory())

   data = np.random.rand(1000,1000,1000)

   print('after create numpy array:\n')
   print(psutil.virtual_memory())

   chunkdata = da.from_array(data,chunks=(200,200,950)).persist(get=dask.threaded.get)

   print('after create dask array:\n')
   print(psutil.virtual_memory())

   chunkdata = chunkdata.persist()

   print('after persist dask array:\n')
   print(psutil.virtual_memory())
   client.cancel(chunkdata)

   print('after cancel dask array:\n')
   print(psutil.virtual_memory())

   del(data)

   print('after delete numpy array:\n')
   print(psutil.virtual_memory())

   del(chunkdata)

   print('after delete chunk array:\n')
   print(psutil.virtual_memory())

The result is
case 3:

before create numpy array:

svmem(total=135289647104, available=131464286208, percent=2.8, used=3448115200, free=126619103232, active=5657690112, inactive=1523830784, buffers=158695424, cached=5063733248, shared=31240192)
after create numpy array:

svmem(total=135289647104, available=123448066048, percent=8.8, used=11464089600, free=118602616832, active=13661364224, inactive=1524064256, buffers=158711808, cached=5064228864, shared=31485952)
after create dask array:

svmem(total=135289647104, available=123448193024, percent=8.8, used=11463962624, free=118602711040, active=13661634560, inactive=1524080640, buffers=158720000, cached=5064253440, shared=31485952)
after persist dask array:

svmem(total=135289647104, available=123448193024, percent=8.8, used=11463962624, free=118602711040, active=13661634560, inactive=1524080640, buffers=158720000, cached=5064253440, shared=31485952)
after cancel dask array:

svmem(total=135289647104, available=115412697088, percent=14.7, used=19499454464, free=110567202816, active=21679382528, inactive=1524105216, buffers=158728192, cached=5064261632, shared=31485952)
after delete numpy array:

svmem(total=135289647104, available=115410411520, percent=14.7, used=19501740032, free=110564917248, active=21679714304, inactive=1524105216, buffers=158728192, cached=5064261632, shared=31485952)
after delete chunk array:

svmem(total=135289647104, available=115410411520, percent=14.7, used=19501740032, free=110564917248, active=21681041408, inactive=1524105216, buffers=158728192, cached=5064261632, shared=31485952)

concurrent.futures.ThreadPoolExecutor (which distributed uses) suffers from a similar problem which hasn't been fixed yet: https://bugs.python.org/issue27144

Thanks! Is there any workaround here to release the memory?

Nothing that I know of.

Not great, but you could provide your own pool and close it afterwards. Threadpools are fairly quick to startup and shutdown, so this might not be terrible.
In [1]: import dask, dask.array as da

In [2]: from multiprocessing.pool import ThreadPool

In [3]: x = da.random.normal(size=(10000, 10000), chunks=(1000, 1000))

In [4]: res = x.mean(axis=1).sum()

In [5]: with ThreadPool() as pool, dask.set_options(pool=pool):
   ...:     o = res.compute()  # dask uses your pool, pool is closed after exiting context manager

You can also pass pool=pool to the call to compute instead of using dask.set_options, up to you.

@jcrist Thanks. I replace
   chunkdata = da.from_array(data,chunks=(200,200,950)).persist(get=dask.threaded.get)

with
   with ThreadPool() as pool, dask.set_options(pool=pool,get=dask.threaded.get):
        chunkdata = da.from_array(data,chunks=(200,200,950)).persist()

But I still get the same result. Still couldn't release the memory.

Are you sure? You won't release data, but the pool won't hold on to a reference anymore since it's closed:
In [1]: from multiprocessing.pool import ThreadPool

In [2]: import dask

In [3]: import dask.array as da, numpy as np, sys, weakref

In [4]: x = np.arange(1000)

In [5]: wr = weakref.ref(x)

In [6]: dx = da.from_array(x, chunks=10)

In [7]: del x

In [8]: sys.getrefcount(wr())  # 1 for `dx`, 1 for `getrefcount`
Out[8]: 2

In [9]: with ThreadPool() as pool, dask.set_options(pool=pool):
   ...:     res = dx.persist()
   ...:

In [10]: sys.getrefcount(wr())  # 100 chunks, 1 for `dx`, 1 for `getrefcount`
Out[10]: 102

In [11]: del res

In [12]: sys.getrefcount(wr())  # 1 for `dx`, 1 for `getrefcount`
Out[12]: 2

I guess it must be related to dask.distributed. If I don't use Client, it will work.

Run the scrip below,
import dask.array as da, numpy as np, sys, weakref
from multiprocessing.pool import ThreadPool
import dask
from dask.distributed import Client

if __name__ == '__main__':

  client=Client()
  x = np.arange(1000)
  wr = weakref.ref(x)
  dx = da.from_array(x,chunks=10)
  del x
  print(sys.getrefcount(wr()))
  with ThreadPool() as pool, dask.set_options(pool=pool,get=dask.threaded.get):
       res = dx.persist()
  res = res.persist()
  print(sys.getrefcount(wr()))
  client.cancel(res)
  del res
  print(sys.getrefcount(wr()))

I get
2
102
102

You're mixing schedulers here. Specifying pool only works on the local scheduler (threaded or multiprocessing). The call to res.persist() outside the context manager uses the distributed scheduler, which still has this issue as @pitrou pointed out. The call in the context manager uses the threaded scheduler (and then closes the pool), which does fix the issue. The fix mentioned above only works for the local schedulers (threaded or multiprocessing).

Thanks. The reason I do this is because I have a large numpy array,  I want to persist in the distributed  processors. So I chunk it locally first and then persist.  I found even I close the client, the refcount here is still 102.

Hmmm, I'm not sure where distributed is holding on to a reference here. @mrocklin, thoughts? I'd expect dropping all references to the pre-persisted graph to remove the initial data from the client process.
In [1]: from dask.distributed import Client

In [2]: client = Client('tcp://<IP_ADDRESS>:8786')

In [3]: client.restart()
distributed.client - INFO - Receive restart signal from scheduler
Out[3]: <Client: scheduler='tcp://<IP_ADDRESS>:8786' processes=1 cores=8>

In [4]: import dask.array as da, numpy as np

In [5]: import sys, weakref

In [6]: x = np.arange(1000)

In [7]: dx = da.from_array(x, chunks=1000)

In [8]: wr = weakref.ref(x)

In [9]: del x

In [10]: sys.getrefcount(wr())
Out[10]: 2

In [11]: res = dx.persist()

In [12]: sys.getrefcount(wr())
Out[12]: 3

In [13]: del dx

In [14]: sys.getrefcount(wr())  # still have a reference to the original data somewhere
Out[14]: 2

In [15]: dict(res.dask)  # no reference to x in the graph
Out[15]:
{('array-b5a83eb375106ee782d8c9e6c51e4d9d',
  0): <Future: status: finished, type: ndarray, key: ('array-b5a83eb375106ee782d8c9e6c51e4d9d', 0)>}

The reason I do this is because I have a large numpy array, I want to persist in the distributed processors.

Note that for larger data it's recommended to have the workers load the data if possible. I still consider the lingering refcount here a bug though (unless @mrocklin thinks otherwise), thanks for reporting it.

@jcrist I didn't use worker to load the data because the data is larger than the memory of a single processor. So I have to load the data first and distribute it.

@jcrist the array is in cluster.scheduler_comm.recent_message_log
We should probably avoid storing large results in that log by default.  This could be done either by setting its size to zero by default (increasing it only for debugging situations) or by tracking the number of bytes sent in a message and only storing those messages with a small number of bytes.

See https://github.com/dask/distributed/pull/1361

@jierice I don't see how the code above would cause a 30GB leak.
Some general notes:

The threadpool and set_options code doesn't do anything at the moment because you have a distributed scheduler active, which is serving as the default scheduler.
Likewise your second persist call won't do much
You should avoid sending large data through the scheduler.  See this new stack overflow question and answer, which will hopefully clear some things up: https://stackoverflow.com/questions/45941528/how-to-efficiently-send-a-large-numpy-array-to-the-cluster-with-dask-array/45941529#45941529

concurrent.futures.ThreadPoolExecutor (which distributed uses) suffers from a similar problem which hasn't been fixed yet: https://bugs.python.org/issue27144

Just an FYI, this part of the issue appears to have been fixed in Python 3.6+.

AFAICT both upstream issues have been addressed in CPython and should be in any Python 3.8+, which are supported (though looks like earlier versions too).
The last example needs some changes (as already noted above). Though even making these locally am not seeing the ramp up in memory usage (not to say there couldn't be cases like this).
Going to go ahead and close. Though please feel free to share anything else encountered in a new issue. Thanks! 🙏


Add Release workflow for Codex

As a part of the Testnet launch we should publish early releases and it is required to prepare a releasee workflow for GitHub Actions.
We already discussed some options

softprops/action-gh-release

https://github.com/status-im/nimbus-eth2/blob/stable/.github/workflows/release.yml

google-github-actions/release-please-action

https://github.com/ethersphere/bee-js/pull/674
https://github.com/ethersphere/bee-js/releases/tag/v4.0.0

ncipollo/release-action
release-drafter/release-drafter
marvinpinto/action-automatic-releases

We also should consider results from the Branch for testnet #747.
After release we also should publish releases for supported architectures/platforms and GitHub support is the following

OS/Architecture
amd64
arm64

Linux
ubuntu-22.04
private beta

Windows
windows-2022
private beta

macOS
macos-13
macos-14

We may consider to use BuildJet for Linux arm64 builds.
We may consider to use self-hosted runners for Windows arm64 builds

We may use different patterns for binaries names
# app-os-arch
linux-x86_64
linux-aarch64
darwin-x86_64
darwin-aarch64
windows-x86_64
windows-aarch64

# app-ver-os-arch
linux-v1.0.0-x86_64
linux-v1.0.0-aarch64
darwin-v1.0.0-x86_64
darwin-v1.0.0-aarch64
windows-v1.0.0-x86_64
windows-v1.0.0-aarch64

Note: We also can pack binaries with tar.gz, zip, etc.

That can be also useful to get release based on the OS/Arch
# v1.0.0
curl -L https://github.com/codex-storage/nim-codex/releases/download/v1.0.0/codex-`uname -s`-`uname -m` \
  -o /usr/local/bin/codex

# latest
curl -L https://github.com/codex-storage/nim-codex/releases/latest/download/codex-`uname -s`-`uname -m` \
  -o /usr/local/bin/codex

OS
amd64
arm64

Linux
Linux-x86_64
Linux-aarch64

macOS
Darwin-x86_64
Darwin-arm64

Windows
Windows_NT-AMD64
Windows_NT-ARM64

Linux/Mac:echo "`uname -s`-`uname -m`"
Windows: echo %OS%-%PROCESSOR_ARCHITECTURE%

It was decided to start easy and we use very simple release configuration using softprops/action-gh-release action.
Key point are following

Use all free available architectures on GitHub Actions
For Linux ARM use BuildJet
Pack binaries to minimize the size
Experimenting with the uploading binaries to the Codex Testnet nodes

Sizes

Binary
Size
Packed
Ratio

codex-v0.0.1-darwin-amd64
28 M
11 M
39.3 %

codex-v0.0.1-darwin-arm64
28 M
11 M
39.3 %

codex-v0.0.1-linux-amd64
118 M
43 M
36.4 %

codex-v0.0.1-linux-arm64
123 M
44 M
35.8 %

codex-v0.0.1-windows-amd64.exe
405 M
112 M
27.7 %

./codex-v0.0.1-darwin-arm64 --version
Codex version:  v0.0.1
Codex revision: 60e3e00
Nim Compiler Version 1.6.14 [MacOSX: arm64]


Something went wrong error with assigning email domains to organizations from the console

https://github.com/wso2/product-is/assets/24982871/ceb7b6f5-97b7-453a-a1c3-c84aa4dd9cda
Please note that the direct API invocation works fine.
Pack built on - 23/11/2023

this seems to be some browser caching issue. tried in an incognito window and couldn't reproduce the issue. hence closing this


copr: Vectorize unaryminus

PCP #5751
Signed-off-by: koushiro<EMAIL_ADDRESS>What have you changed?
Vectorize UnaryMinusInt, UnaryMinusReal and UnaryMinusDecimal
What is the type of the changes?

Improvement (a change which is an improvement to an existing feature)

How is the PR tested?

Unit test
Integration test

Does this PR affect documentation (docs) or should it be mentioned in the release notes?
No
Does this PR affect tidb-ansible?
No

@sre-bot /run-integration-copr-test copr-test=pr/74

@iosmanthus PTAL, thanks!

/merge

/run-tests

/run-all-tests


Add Compound Map Tools toolbox to repo

Expected Behavior
The Compound Map template contains a toolbox: Compound Map Tools.tbx - this template's toolbox should be added to this repo

The compound map toolbox only has one tool in it which is the number features tool which is already in the repo: https://github.com/Esri/solutions-geoprocessing-toolbox/tree/dev/operational_graphics/toolboxes/scripts

@adgiles - you may have left the meeting before we discussed this (and not sure if we have found the shared meeting minutes location yet) but I believed we agreed to add/include this extra toolbox - even though this one tool is a repeat of Incident Analysis Tools

This is done ( in #538)


feat: supported requires with async if

:tada: This PR is included in version 2.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Customize the color of the white border arround NativeAds

Use case
The new NativeAd can now be customized with colors from Dart code. However there is a padding space between the ad components and the gray outer boundary which is always white. Right now, even if the app is in Dark mode, that space is white. It would be nice if that white space could be customized, so that it could be put in a Dark tone.
Proposal
Add a paddingColor or similar property in NativeTemplateStyle in order to be able to set the color of that space which right now is always white.

I'm not OP, but was browsing I'm in the process of implementing and was looking around and saw the open post that I also ran into. This is 100% the code from the implementation guide here: https://developers.google.com/admob/flutter/native/templates
The below images are what I assume OP is talking about. Left is Android, right is iOS. Note that this only occurs on Android.

Just as a temporary fix: You can change the following lines in "gnt_small_template_view.xml"
Line 16: Find
android:background="@drawable/gnt_outline_shape"
Replace With
android:background="@android:color/transparent"
Not sure if it's a proper fix, but it works for now:

Thank @NaMeTaKeN33 for providing more information. I also can see the issue as you described.
To reproduce the issue, enable dark theme (ThemeData.dark()) for the plugin example at:
https://github.com/googleads/googleads-mobile-flutter/blob/b38fc89875dd1d0f78767cabcd2968942cbd006a/packages/google_mobile_ads/example/lib/main.dart#L239

We’re closing this issue due to inactivity. If you’re still impacted, please create a new issue via the Developer Forum.

Lmao why was this closed due to inactivity? It's still an issue considering that there hasn't been a version bump and was on development sides plate.

~AppData\Local\Pub\Cache\hosted\pub.dev\google_mobile_ads-3.0.0\android\src\main\res\drawable\gnt_outline_shape.xml
I have changed this file and color and border set as transparent. Can you tell me I can do it? will it effect my ads?

For IOS Comment following line
ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTTemplateView.m inside the package file
This helps me change the border and color.
- (void)applyStyles {
  // self.layer.borderColor =
  //     [GADTTemplateView<EMAIL_ADDRESS>  // self.layer.borderWidth = 1.0f;
  [self.mediaView sizeToFit];
  if ([self styleForKey:GADTNativeTemplateStyleKeyCornerRadius]) {
    float roundedCornerRadius =
        ((NSNumber *)[self styleForKey:GADTNativeTemplateStyleKeyCornerRadius])
            .floatValue;

    // Rounded corners
    self.iconView.layer.cornerRadius = roundedCornerRadius;
    self.iconView.clipsToBounds = YES;
    ((UIButton *)self.callToActionView).layer.cornerRadius =
        roundedCornerRadius;
    ((UIButton *)self.callToActionView).clipsToBounds = YES;
  }
...

}

happy coding!


Why did you remove the blog?

Can I read the full explanation in other place?
http://www.machinalis.com/blog/python-for-geospatial-data-processing/

Hi there. Machinalis was acquired by Mercadolibre. In the merge, some artifacts (such as the blog) were lost.
There's a version of the post you are looking for, here: http://machinalis8.rssing.com/chan-51920729/latest.php#item3


Revert "Use the new pushImageFilter offset parameter to fix the transform of the children"

Reverts flutter/flutter#113673
Failing framework tests due to golden diffs that were not accepted

The test run was https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8796772275144668881/+/u/run_test.dart_for_framework_tests_shard_and_subshard_widgets/test_stdout
The failure is:
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following SkiaException was thrown while running async test code:
Skia Gold received an unapproved image in post-submit
testing. Golden file images in flutter/flutter are triaged
in pre-submit during code review for the given PR.

Visit https://flutter-gold.skia.org// to view and approve
the image(s), or revert the associated change. For more
information, visit the wiki:
https://github.com/flutter/flutter/wiki/Writing-a-golden-file-test-for-package:flutter

Debug information for Gold --------------------------------
stdout: Given image with hash 316a1ce1bcf477aa5f2d28107669fb29 for test
widgets.image_filter_matrix_offset
Untriaged or negative image:
https://flutter-gold.skia.org/detail?test=widgets.image_filter_matrix_offset&digest=316a1ce1bcf477aa5f2d28107669fb29

stderr: Test: widgets.image_filter_matrix_offset FAIL

result-state.json: No result file found.

When the exception was thrown, this was the stack:
#0      SkiaGoldClient.imgtestAdd (package:flutter_goldens_client/skia_client.dart:243:7)
<asynchronous suspension>
<asynchronous suspension>
(elided one frame from package:stack_trace)

That was when the test failed post submit because of the lack of goldens.
According to the docs on goldens, there will be golden test failure that you can follow to update the goldens. No such link was generated during pre-submit. In other words, there was no indication that goldens needed to be updated, nor a link to where to approve them.

I'm not sure. Sometimes the gold notification is substantialled delayed though. Maybe after setting the PR status to approved in frob there wasn't enough time for gold to trigger before it was merged? Or possibly whatever notification was used to trigger gold was dropped.

But the new tests were run as a pre-submit and they passed with no errors. Why would they then fail post-submit?

The flutter gold check is supposed to wait for all tests to complete to go green. It was green before that PR was submitted. Further, the logs show that the failing golden tests were, in fact, run during pre-submit and did not cause an error...?


Lookup Fedora image & checksum URLs on demand

Fixes: #190
Previously, maintainers were required to not only fill out the desired Fedora release numbers, but also manually look up six separate URLs and copy-paste their values.   Add a script to perform the lookups and call the script for the required URLs only when required.  In other words, don't execute the script for make help or other targets that don't require the URLs.
How to test:

From a VM with plenty of network bandwidth - Follow the image import README
Some of the AWS operations remain less-than-reliable, see the Failure responses section.
For fun and profit, try make import_images FEDORA_RELEASE=rawhide

@edsantiago if you have time (this is non-critical), I'd appreciate you're keen eyes on the new bash-script here.

force-push: minor spelling correction.

Force-push: All suggestions applied.

Force-push: Woops, found another typo.


Clarity on Originating Identity

Let's say there's a platform (like K8s) that has the potential for a delay between the time someone updates an Instance in K8s and the time the osbapi.update() request is sent to the Broker managing the Instance. And during that delay a 2nd user updates some other aspect (non-overlapping update) of the Instance in K8s. Would it be consistent with the OSB API spec if:
1 - only one osbapi.update() is sent to the Broker and it includes both sets of changes batched together
2 - only the 2nd user's identity is included in the Originating Identity Header with this batched update
In particular due to this line in the spec:

If present on a request, the OriginatingIdentity header MUST contain the identify information for the Platform's user that took the action to cause the request to be sent.

If there would be any way for an invalid user's request to be batched into a valid user's request, then this would be a security exposure. This batching behavior would depend on when authentication/authorization is performed.

I could also see a case where updating a service instance's plan could be dependent on a a service instance's parameters. If these two operations were batched, I could see both users surprised by the outcome in either ordering of the updates.

From my point of view, batching is unnecessary. Just flow the two requests sequentally to the broker. Then you get correct auditing and correct behavior.

From my point of view, batching is unnecessary. Just flow the two requests sequentally to the broker. Then you get correct auditing and correct behavior.

The root issue is in k8s you set the spec to how you would like the environment to be eventually. The full flow we are talking about is as follows:

User A updates foo service with a new parameter bar.
Platform performs an update to foo service including parameter bar but the broker rejects it with an error that is re-triable.
Platform retries sending the update to foo service with parameter bar for some amount of time (on going)
User B updates parameter updates the spec for foo service with the new parameter baz
Platform stops retrying User A's change and now tries an aggregate of User A and User B's changes.
Broker accepts the new update to foo service with updated parameters bar and baz. User B is associated to the change.

So we are not talking about a platform optimization, we are talking about User B being accredited to a change that includes previous users changes to the same spec. This has some consequences that are a result of OSBAPI choices and how k8s works.

k8s holds a representation of what you wish the end result to be and k8s' job is to monitor and make adjustments to have reality match what is specified.
There are two ways that the platform could continue retrying,
a. There is some kind of quota or capacity issue and the broker is physically not able to fulfill the requested change. (UserA+bar)
b. The request is semantically valid but broker logic invalid (unauthorized User A action?)
When UserB made the update to add baz, they also saw there was a bar parameter that was not in the externalParameters (the last broker accepted version of the parameters)
One interpretation of OSB's identity clause wants to use OSB instance updates as change requests tied to an individual.

If we are modeling a government style audit log through the OSBAPI, I would have to agree there there should be no batching allowed*.
If the assumption is that OSBAPI is being used through k8s, then I don't agree that you can call the update from User B as a batch of User A+B only because User B had the opportunity to review User A's changes, made a choice to accept bar, and added baz.
* If the issue is that there is a second platform on-top of k8s and the top most platform is pushing parameter changes into the k8s spec with the assumption that k8s will serialize the requests per user per change, then perhaps this is a mis-use of k8s and a more correct solution could be to make parameters a list of changes associated to a user identity.
Alternatively, if this batching is truly a violation of the OSBAPI spec and there can be no agreement that User B is allowed to agree to and absorb User A's changes, the k8s implementation will have to change dramatically to allow the UX users want.

If there would be any way for an invalid user's request to be batched into a valid user's request, then this would be a security exposure

If we are modeling a government style audit log through the OSBAPI, I would have to agree there there should be no batching allowed

I think these two comments highlight the concerns. When you have critical business processes in the broker checking/auditing things based on the identity of the originating user then we run the risk of incorrect decisions being made.

Merging update requests can lead to unintentional side-effects. A wrong audit log is just one of them. But there can also be functional side-effects in the broker. It’s certainly not in the intention of the spec.

Can we be more specific on the types of operations that can be merged?   In general, I'm very concerned if we conflate the identity of who performed actions because then we loose the audit log (imagine AWS CloudTrail functionality).  In general for regulated workloads, it is important to be able to clearly log who performed a change, what change they performed, and when.   From the sound of this issue, that clear tracking could be muddied.

But there can also be functional side-effects in the broker.

To me it's a sign of a poorly designed broker. If the broker is provided with a final desired updated state of the instance, I don't see a reason why would broker break on processing such update request.

it is important to be able to clearly log who performed a change, what change they performed, and when.

@bkmartin based on how Kubernetes UX works by default, this information will be logged on the Kubernetes / Service Catalog side, but the parameters that will be received by a broker can be batched and associated with the latest user who made an update request. While this means loosing detailed audit log on the broker side, I don't see any reason why processing of such request would break on the broker side.

This comment might be better suited for the svc-cat repo but since it could apply to any Platform author and its about the expectations we had when we added this header to the spec I decided to put it here...  (and sorry its so long)

I think its fair to say that the usecases we're concerned about involve situations where a Service Instance is modified very often. In cases where they're only occasionally modified, I don't think any of this is really much of an issue because you'll only be dealing with a single user and probably a single set of changes to an Instance at a time.
So, in cases where an Instance is touched often my guess is that while all of these changes could be due to individual users manually doing the equivalent of a kubectl edit ServiceInstance... at the same time, and doing it often, I actually think this action would most likely be hidden behind some kind of tooling or, if driven by a user, might be behind a script. If it were me and I needed to touch an Instance's "foo" property often it wouldn't be long before I created a modifyFoo.sh file so I could just do modifyFoo.sh myInstance 500. And it would do a GET, modify foo, and PUT for me.
Whether in any one person's case they actually do that or not doesn't matter, the point is that its not unreasonable to think that people will do so - people like tools and automation. I bring this up because some people are saying that in the K8s case the 2nd user to modify an Instance will see the 1st user's edits and review/approve/take-ownership of them. In cases where they're doing this often I suspect the fact that they do it often would actually cause them to review the existing state less carefully because of this automation/tooling aspect.
So, imagine the case where a less-authorized user modified an Instance and the Broker rejected it - e.g. they asked for 1000 VMs. During that time a more-authorized user (perhaps an admin type of person who does this stuff often so they wrote a utility script) runs their script and modifies a different property on the Instance - e.g. logging level because they were debugging something. It get accepted by the Broker and due to their more elevated privileges it include's user1's edits. In a world where the identity of the person associated with each change matters (which is the reason the Broker is monitoring the header) this flow would be unacceptable and lead to potentially very serious negative consequences.
My point is that changes made to an Instance need to be explicitly accepted (or done) by a user in order for this Header to be able to work properly. "Assuming" people do things like review all properties of an Instance for correctness even when all they're focused on is one property, is a very risky thing for a Platform to do. So, while I agree that the OSB spec should not mandate how a Platform defines who the user is, the Platform must make a choice that is consistent with the purpose behind why this Header was added in the first place.

I bring this up because some people are saying that in the K8s case the 2nd user to modify an Instance will see the 1st user's edits and review/approve/take-ownership of them.

We don't care whether a physical person actual saw something with their eyes or not, we can't control that.
We just claim that a Kubernetes user can see the entire spec it updates (and if user tries to update stale spec, the request will be rejected with 409 Conflict), and this user takes the responsibility for the entire spec by design.

changes made to an Instance need to be explicitly accepted (or done) by a user

They are explicitly accepted by a user, by design. That's how the whole Kubernetes ecosystem works, and I don't see any reason to question that for Service Catalog.
P.S. I still fail to understand why do we discuss implementation details of what is not part of the OSB contract here. All that Service Catalog has to do to be OSB compliant is to send a valid OSB request with a valid user, and how this request was produced is not a concern of OSB.

They are explicitly accepted by a user, by design. That's how the whole Kubernetes ecosystem works, and I don't see any reason to question that for Service Catalog.

Theory vs reality. In theory since they can see all edits, sure. In reality, see my script example. And when the Header value has serious business impact, reality is all that matters.
The entire "by design" aspect is something I'm not sure I can agree with since K8s also by design assumes that once something is written to the Spec its been verified to some extent (e.g. the user is authorized to do so, values "seem" ok, etc...) and anything beyond that point in time doesn't need to be associated with the original user and the diff of edits do not matter. Whether you want to call it "batching" or "last one wins", its the same net effect for the downstream processing - critical data is now lost and the Broker is unable to do it job properly. We can't ignore this.

Closing as hopefully #476 resolves this issue


Add Keyboard Shortcuts.

Shortcut

[ ] For scrolling up
[ ] Copy cmd
[ ] For direct entering in another Folder

Hello, can you explain it more?
Do you mean for example by clicking 'W' on the keyboard, the page should be scrolled up?
And what about the two other check boxes? what do you mean by 'Copy cmd'?

2.  Copy CMD
when i click  c then it should automatically copy the make code persent on the webpage .

You can skip this part because we dont even start the php folder.

3. Redirection shortcut
When i click a+p on the keyboard .
then user should be redirected to page https://givemecode.pages.dev/php .

Thanks for your explanations.
I have added a commit to my last Pull Request to solve this issue too (#13).
I added some pieces of javascript code to the bottom of index.html file.
So, if you press "U" on the keyboard after a second, the page will smoothly go to the top.
and if you press "A" it will redirect the page to https://givemecode.pages.dev/php.
There was no way to press two keys simultaneously and do some actions.
Therefore, please accept this Pull Request.
Thanks,
Sina


 I'm not sure what the best way forward is, though; thought I would open an issue for discussion at some point.

What do you expect discordcr to do? We're just following the ratelimiting that discord's API performs.

Ah, right. Of course. Carry on.


adding ControlFlags class and associated tests. This will deprecate the user presence byte

adding ControlFlags class and associated tests. This will deprecate the user presence byte.
@leshi, PTAL

"@leshi, PTAL"

This currently won't throw an exception in any case. We are just ignoring bad cases. This may not be ideal, as malformed ControlFlags can cause the server to try to handle a bad/wrong message.

@leshi PTAL

@leshi PTAL

One nit, otherwise LGTM


CPS Email Warning Doesnt Show When Dot Used In Email Address

This is connected to the following issue: https://github.com/jac-uk/apply/issues/1037

@warrensearle Omar didn't quite get to this on his last day; would you be able to fix, then this is definitively done?


Allow #sync_cache to discover the model type from it's model

Fixed on commit e2b4588787e4b95eadd9d87303a78c12903674e0

Fixed on commit


Improving the error when upload or download fails

Catching all errors in _download_collection and _upload_collection

The local upload path or the irods download path on which the operation fails will be printed
The representation of the error will be printed
The iteration over the collection will continue

I think we should throw an error instead of a warning. We also might want to give a little bit more indication of what might be the problem (server error/upstream problem/..?).

The request of the user was not to throw an error and by this stop all of the up/downloads. Simply try and transfer what can be transferred and give the paths of the data that could not be moved. And I agree with that.
I will have a look into how to give more information about the error. But as always, the irods server is very creative on what it can fail ;)

I think we should throw an error instead of a warning. We also might want to give a little bit more indication of what might be the problem (server error/upstream problem/..?).

The request of the user was not to throw an error and by this stop all of the up/downloads. Simply try and transfer what can be transferred and give the paths of the data that could not be moved. And I agree with that.
I will have a look into how to give more information about the error. But as always, the irods server is very creative on what it can fail ;)

I can understand why in some cases one might want to skip the problematic files. However, that to me suggests that it is an interactive use of the library and not something I think we can assume the user will see if it is hidden somewhere in a script. Perhaps this needs an extra optional keyword argument then?

You are right. I forgot our second use case "remote computational use". I added a flag which omits the failing. By default the exception will be thrown.

Looks good! Just some cosmetics:
warnings.warn(f'Download: File already exists\n\tSkipping {source}')
I don't think 'Download: ' is necessary, the user probably knows they're up- or dowloading. Also, I'm not sure the tab and newline add anything (and mess up the logfile somewhat if they capture warnings to the logfile).


recfactor: use FMT_THROW inside fmt.h to make code embedded-friendly

Currently, the library does not compile with exceptions disabled due to the various uses of throw inside the fmt.h header. The fmt library supports compilation with exceptions disabled by wrapping all potential exception raising points in the FMT_THROW macro which causes an assert instead when exceptions are disabled. To support that use-case, this PR uses FMT_THROW as-well in the fmt.h header.

Ideally, the formatters in this library would behave exactly as the formatters of the standard library behave. I expect all major vendors of standard libraries to support compiling with exception disabled in some form or another, so they will have to find a way to deal with these errors. Unfortunately, the implementation of that behaviour will often be an implementation detail of the library (in a sense, FMT_THROW is too).
Another option would be to support exception-less in units directly. This would avoid the effort of managing implementation details of a number standard libraries. I personally don't like this that much in this case, given that units doesn't throw exceptions itself otherwise, and I am already patching/hacking into fmtlib to use a different error handler as theirs pulls std::fprintf which is not supported. This would make units another library to patch.
Maybe the most "complete" path would be to do support exception-less in units directly, but forward the failure handling to the respective formatting library in use where possible.
What would be your preferred approach?

Others would benefit if this was part of https://github.com/fmtlib/fmt. And perhaps that has already been discussed there.

@JohelEGP It is already part of fmtlib: They never call throw directly, but use FMT_THROW instead. Their definition of FMT_THROW calls an assert if exceptions are disabled. But this units library here extends formatting with new formatters, which also have reasons to throw. The proposed change in this PR just re-uses the functionality from fmtlib instead of throwing directly. However, Mateusz rightfully points out that fmtlib is not the only formatting backend, given that their functionality has been integrated into the C++20 standard, and we might need a solution for the stdlib backend too.

Yeah, I saw the MSVC failures. The failure doesn't look MSVC specific though, so I suspect that is just the only test environment where exceptions are disabled. The root of the problem is that the FMT_THROW implementation for that case does not use fully-qualified namespaces (which it probably should). I suggest to simply move to our own UNITS_FMT_THROW. In that case, I would probably also change the other macros in units/bits/fmt_hacks.h to start with UNITS_FMT_ instead of just FMT_, to make it clear that these are our macros not theirs. Would you agree to that?
As for the scope of freestanding, as far as I understand freestanding is currently broken, and the reality of embedded development usually doesn't involve the -ffreestanding flag.
That said, given that I do not have the capacity now to research the way current standard libraries handle format exceptions when exceptions are disabled, why don't we just drop in our own exception alternative in the case of the standard library formatting for now, and leave that open for a future PR?

Yeah, the clang-format test in my pip-installed pre-commit fails with dyld[33347]: Library not loaded: /usr/local/opt/zstd/lib/libzstd.1.dylib which looks like a packaging issue relating to the arm64/x86_64 split on mac. I did run find src -iname "*.h" -o -iname "*.cpp" | xargs clang-format -i --style=file manually instead, but that doesn't change anything. Since the diff to master only contains ".h" and ".cpp" files, I don't know what the difference is compared to the pre-commit run. So if it isn't too much effort for you to do, that would be great.


Release for OrientDB 2.1.17

Hi guys,
Any chances for getting a release of orient-gremlin with OrientDB 2.1.17?
Thanks!

i'll shortly release one for 2.1.20, I hope that suits your needs?

released now, should be in mvn central shortly

@mpollmeier  Thank you very much!


macOS 10.15.7. Version

Hello,

You have macOS 10.15.7. The application requires macOS 11.0 or later.

Is there any chance to get SwiftPlantUML for my version?

Hi @StephanTe ,
I believe this should be possible as the underlying https://github.com/MarcoEidinger/SwiftPlantUML does not require macOS 11.0
You can try to change the deployment target in the Xcode project file, build locally and see if you get any issues when using the extension.
In the meantime, I will look into how I can verify it (maybe via CI/CD as my personal Mac does not run on 10.5.7) before doing the change and publish a new release.

When tried to build towards MacOS 10.15.7 I've got these issues:
@available(OSX 11.0, *)
@main                                                                        'main()' is only available in macOS 11.0 or newer
struct SwiftPlantUMLAppApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

Hi @StephanTe , thanks for the information. I did necessary code changes in branch macOS1015 so that app can be compiled for deployment target 10.15.
Please try to build from branch macOS1015 and install the Xcode Extension.
I'll try to verify this on a macOS 10.15 machine myself in the next couple of days.

@MarcoEidinger  is there any update by any chance for OSX 10.15.7 ?.
I can't upgrade since my computer is managed by my employer, they assign when I can update my OS remotely, also I couldn't Make it compile for 10.15.7
Thanks.

I was able to obtain a machine with macOS 10.5.7 so hopefully in the next days I can share an app version working for 10.5.7

Hi @storymx, @muhsayd , @StephanTe, this app version should work for macOS 10.5.7

Unpack SwiftPlantUMLApp.zip
Copy SwiftPlantUML to your Applications folder.
Launch SwiftPlantUML once. You can close it immediately afterwards (i.e. Quit from Dock).
Go to System Preferences > Extensions > Xcode Source Editor > select SwiftPlantUML

It works on my machines (macOS 10.5.7 and macOS 11) but if one of you could cross-check on your machine that would be awesome. Once I have confirmation I will push my changes create a GitHub release.
Cheers,
Marco


{Resource} Remove Virtual Terminal related code

Related command
az deployment sub what-if
az deployment group what-if
Description
Require https://github.com/microsoft/knack/pull/265
https://github.com/microsoft/knack/pull/265 moves Virtual Terminal related code (introduced by @shenglol in https://github.com/Azure/azure-cli/pull/12942) to Knack. Big thanks to @shenglol.
Since VT mode in now globally enabled, resource module doesn't need to enable it specifically.

Resource

@shenglol, thanks for the confirmation. Actually, you may install the dev version of knack using
pip install git+https://github.com/microsoft/knack@vt


Document Error Codes

It may be helpful to explain what each of them are and why they occur

Common Error Codes:

Error Code 0 : ERROR_CODE_INTERNAL_ERROR

This indicates that something happened internally; for instance, an invalid response was received from the ad server.
Newly created Ad Units can take upto 2 hours to become active (SpinUp Time). Any Ad requests from newly created Ad Units would also receive Error Code 0 in response to Ad requests until they are ready to serve live ads.

Error Code 1 : ERROR_CODE_INVALID_REQUEST

The ad request was invalid; for instance, the ad unit ID was incorrect.
This commonly suggests that the Ad Request implementation is not as per the SDK’s requirements - Resources like the  sample codes and sample apps provided in the developer documentation can help in implementing the functions correctly.

Error Code 2 : ERROR_CODE_NETWORK_ERROR

The ad request was unsuccessful due to network connectivity.
This could be due to a user’s phone switching networks or network disturbances distorting the communication between the app and the Ad Server. Some Telecom providers may also limit specific traffic due to policy, which can also lead to such an error.

Error Code 3 : ERROR_CODE_NO_FILL

Description (Dev Docs Link) : The ad request was successful, but no ad was returned due to lack of ad inventory.
Why is  it Happening : Advertisers can target specific regions, platforms and user profiles based on business relevance, which can sometimes result in lower availability of Ads for a particular region or user profile. Error code suggests that the implementation is correct, and that the Ad Request was not filled because of lack of availability of a suitable Ad at that particular instant of time when an Ad Request was sent from the app.
Policy related restrictions on certain Apps or Ad Units will also lead to Error Code 3 being returned in response to Ad Requests.
What Can The Pub Do About it :
→ As we cannot manipulate advertiser demand, there are no particular ‘fixes’ for this error - the pub can cross-check the Ad Unit implementation to ensure that the Ad Units are implemented correctly.
→ Mediation : In some instances, certain Ad Networks may have limited performance in some regions or for specific formats, in which case the pubs can try using mediation to add other Ad Networks that may potentially perform well.
→ Check for Policy status for the Pub ID, the App and the Ad Unit ID. Also check the Brand Safety flags and Coppa status.
→ If the Pub can obtain Test Ads for an Ad Unit (Instructions) - then their implementation is correct, and the Ad Units will serve Ads normally when an Ad is available depending on advertiser demand.
Source: https://support.google.com/admob/thread/3494603?hl=en


Deep Graph Infomax for Graph Classification

This issue is to implement DGI for graph classification. The original DGI paper (https://arxiv.org/pdf/1809.10341.pdf) proposes a method of doing this by randomly sampling a negative graph instead of scrambling the feature matrix.

Per slack, another approach is https://arxiv.org/abs/1908.01000 ("InfoGraph: Unsupervised and Semi-supervised Graph-Level Representation Learning via Mutual Information Maximization").


Mkdocs template with material

Hello, have you tried mkdocs for documentation?
I think it's more beautiful and complete. Are you accepting PR for this repo?
Thanks.

Hi @ktakanopy sorry for the late response. I haven't tried mkdocs and would love to accept your PR


chaining link()

maybe allow this type of usage?
img_graphic.link("click", target=contours_graphics, feature="colors", new_data="w", callback=euclidean)
    .link("colors", target=contours_graphic, feature="thickness", new_data=4)
    .link("colors", target=temporal_graphic, feature="present", new_data=True)

this would mean Graphic.link() has to return the target Graphic instance.
@clewis7 thoughts?

I think it would be fine, would reduce having to have three separate calls but you still could if you wanted to

what about also allowing:

target to be a list of Graphic instances
feature to be a list of valid feature strings, and then new_data should be a mapping of {feature: new_data} ?

I think it gets messy but I'm trying to figure out a nice API to make lots of linkages more elegant, what about:
img_graphic.link.click(euclidean) >> contours_graphics.link.colors("w") >> contours_graphic.link.thickness(3.0) >> temporal_graphic.link.present(True)

I think this is possible by just using __rshift__(), just trying to come up with API now :thinking:

I think that is cleaner than .link over and over again

I think this is messy, and we have bidirectional now. Closing, can revisit if we see the need.


Misc. cleanup

Signed-off-by: Nazim Uddin Bhuiyan<EMAIL_ADDRESS>

@youngar are you cool with us removing the -loop and -function CLI options?
Maybe we want to replace -function <name> with -function <index> ?

thanks!


Merge upstream changes into our fork to get the latest Postgres 11

This is to allow us to switch to PG 11 in our local DB to make sure that our app works properly.

Closing this PR in order to create that has a feature branch


1.6.0 有发布计划嘛

Why you need it?
Is your feature request related to a problem? Please describe in details
How it could be?
A clear and concise description of what you want to happen. You can explain more about input of the feature, and output of it.
Other related information
Add any other context or screenshots about the feature request here.

server端 1.6.0 的docker镜像已经发布了。
client端的依赖，1.6.0-RC1 发布试用了。


Use correct HTTP status code for expired sessions

Currently, the page telling the user about his expired session is served with a 200 status code, which is misleading, especially when downloading stuff automatically.
Steps to reproduce :
Try to load a page with an expired session.
The response page is served with a 200 OK status code.
It should be a 401 status code instead.

@Eitredes Can you take a look at this one?

Already on it.
On 15-03-18 07:13 PM, David Liu wrote:

@Eitredes https://github.com/Eitredes Can you take a look at this one?
—
Reply to this email directly or view it on GitHub
https://github.com/MarkUsProject/Markus/issues/764#issuecomment-83267227.

@david-yz-liu When I set the redirect's status as unauthorized, Rails automatically inserts a "You are being redirected" page with a link to the login screen. Do we want this behaviour added (probably with the page prettied up, since it's just some 12pt times new roman), or should I route around it?

Eh, I'm okay with the current behaviour (automatic redirect to the login page).

Closed for now, doesn't seem to be worth the trouble. Would be interesting to look into the "Rails best practice" for this, but a quick Google search didn't turn up anything substantial.


fix: checkout link fixed, menu items updated, fixed dropdown arrow coloring

Additionally: code linted & formatted
Closes ZKF-1773

:tada: This PR is included in version 3.16.8 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


unannounced change from cmake 3.23.3 to 3.24.0?

Description
The public documentation and announcements still claim the highest version of CMake installed on the windows 2019 build agent should be 3.23.3, and history shows it was changed from 3.23.2 a week ago...
https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml
runner-images/Windows2019-Readme.md at main · actions/runner-images (github.com)
However, the commit bellow looks like you are updating CMake to 3.24, which breaks our build pipelines.
I think we have a way to fix the break, but I still want to follow up with the maintainers to see why this unannounced change happened.  Is this a bug, or if an intended change and the you have just not updated the public docs and announcements page to reflect it.
Updating readme file for win19 version 20220808.1 · actions/runner-images@c0d03b9 (github.com)
Platforms affected

[X] Azure DevOps
[ ] GitHub Actions

Virtual environments affected

[ ] Ubuntu 18.04
[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] macOS 10.15
[ ] macOS 11
[ ] macOS 12
[X] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
Environment: windows-2019
Version: 20220808.1
Is it regression?
yes, this broke yesterday, but our 1ES pools take a while to pickup new image changes.
Expected behavior
Agent images and public docs on installed software should be correct.
major tool version changes should be announced in advance.
https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml
runner-images/Windows2019-Readme.md at main · actions/runner-images (github.com)
Actual behavior
public docs still claim highest CMake should be 3.23.3 but agents actually default to 3.24.0 which has some breaking new changes in it around JDK/NDK detection and configuration..
Repro steps
run a CMAKE build on any windows 2019 agents, and look at the CMake version that you get.
it will be 3.24.0 instead of the 3.23.3 that is suppose to be installed.
It does not look like this change was announced in anyway, so is this a bug, or a just change made earlier than planned?

Hi @BrianMouncer we will check this, thank you for reporting this one.

We added appropriate version of Cmake, so now it should be ok.


No ACK with simple-udp example.

Everything applies fine, but the simple-udp server never ACKs using nc or client/main.go
This is minikube on Ubuntu using the agones YAML from release_0.2.0 and master.
host/port
> k get gs simple-udp -o jsonpath='{.status.address}:{.status.port}'
<IP_ADDRESS>:7850

nc attempt
nc -uv <IP_ADDRESS> 7850
Connection to <IP_ADDRESS> 7850 port [udp/*] succeeded!
Hello
Hi
Hi
EXIT
^C

client/main.go attempt
./client --address=<IP_ADDRESS>:7850
2018/07/13 12:11:34 Starting client, connecting to <IP_ADDRESS>:7850
>> Send Line: Test
2018/07/13 12:11:36 Sending 4 bytes string Test via UDP
>> Send Line: Test
2018/07/13 12:11:38 Sending 4 bytes string Test via UDP
>> Send Line: ^C

k describe gs
  Container:       simple-udp
  Container Port:  7654
  Health:
    Failure Threshold:      3
    Initial Delay Seconds:  5
    Period Seconds:         5
  Host Port:                7850
  Port Policy:              dynamic
  Protocol:                 UDP
  Template:
    Metadata:
      Creation Timestamp:  <nil>
    Spec:
      Containers:
        Image:  gcr.io/agones-images/udp-server:0.1
        Name:   simple-udp
        Resources:
Status:
  Address:    <IP_ADDRESS>
  Node Name:  minikube
  Port:       7850
  State:      Ready
Events:
  Type    Reason          Age   From                   Message
  ----    ------          ----  ----                   -------
  Normal  PortAllocation  11m   gameserver-controller  Port allocated
  Normal  Creating        11m   gameserver-controller  Pod simple-udp-pr7d2 created
  Normal  Starting        11m   gameserver-controller  Synced
  Normal  Ready           11m   gameserver-controller  Address and Port populated

simple-udp pod for simple-udp container
==== START logs for container simple-udp of pod default/simple-udp-pr7d2 ====
2018/07/13 16:01:30 Starting UDP server, listening on port 7654
2018/07/13 16:01:30 Creating SDK instance
2018/07/13 16:01:31 Starting Health Ping
2018/07/13 16:01:31 Marking this server as ready
==== END logs for container simple-udp of pod default/simple-udp-pr7d2 ====

simple-udp pod for agones container
==== START logs for container agones-gameserver-sidecar of pod default/simple-udp-pr7d2 ====
{"address":"localhost","health-disabled":false,"health-failure-threshold":3,"health-initial-delay":5000000000,"health-timeout":5000000000,"level":"info","local":false,"msg"
:"Starting sdk sidecar","port":59357,"source":"main","time":"2018-07-13T16:01:30Z","version":"0.2.0"}
{"gameServerName":"simple-udp","level":"info","msg":"created GameServer sidecar","namespace":"default","source":"*gameservers.SDKServer","time":"2018-07-13T16:01:30Z"}
{"level":"info","msg":"Starting SDKServer http health check...","source":"*gameservers.SDKServer","time":"2018-07-13T16:01:30Z"}
{"level":"info","msg":"Starting GameServer health checking","source":"*gameservers.SDKServer","time":"2018-07-13T16:01:30Z"}
{"level":"info","msg":"Starting workers...","queue":"stable.agones.dev.default.simple-udp","source":"*gameservers.SDKServer","time":"2018-07-13T16:01:30Z","workers":1}
{"level":"info","msg":"Received Ready request, adding to queue","source":"*gameservers.SDKServer","time":"2018-07-13T16:01:31Z"}
{"key":"RequestReady","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.simple-udp","source":"*gameservers.SDKServer","time":"2018-07-13T16:01:31Z"}
{"level":"info","msg":"Health Ping Received","source":"*gameservers.SDKServer","time":"2018-07-13T16:01:31Z"}
{"level":"info","msg":"Processing obj","obj":"RequestReady","queue":"stable.agones.dev.default.simple-udp","source":"*gameservers.SDKServer","time":"2018-07-13T16:01:31Z"}
{"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"RequestReady","time":"2018-07-13T16:01:31Z"}
{"level":"info","msg":"Health Ping Received","source":"*gameservers.SDKServer","time":"2018-07-13T16:01:33Z"}
....
==== END logs for container agones-gameserver-sidecar of pod default/simple-udp-pr7d2 ====

minikube details
                    "KernelVersion": "4.16.14",
                    "OSImage": "Buildroot 2018.05",
                    "ContainerRuntimeVersion": "docker://17.12.1-ce",
                    "KubeletVersion": "v1.10.0",
                    "KubeProxyVersion": "v1.10.0",
                    "OperatingSystem": "linux",
                    "Architecture": "amd64"

That's rather odd. Especially on minikube where there are usually no firewall rule issues.
A few questions:

What OS are you on?
What version of minikube are you running?
what virtualisation layer are you using with minikube?
Do you run any firewalls (especially of the corporate variety)

Oh and virtualbox is running the minikube image.
Oracle VM VirtualBox Manager 5.2.0

Out of curiosity, I switched to kvm2 driver for minikube and everything worked as expected.

Weird! But glad it's working!


Stop ProjectBuilder instances in integration tests

TBD

@bot-gradle test and merge

OK, I've already triggered a build for you.

Pre-tested commit build cancelled.

@bot-gradle test and merge

OK, I've already triggered a build for you.


Create SparkAPSP.scala

The input to the program is an edge list file. The format should be the following, where each pair is an edge <src_id  dest_id>
1 2
2 1
2 3
2 4
3 2
3 3
4 2
4 3

Can one of the admins verify this patch?

What does that mean?
On Wed, Feb 4, 2015 at 2:27 PM, UCB AMPLab<EMAIL_ADDRESS>wrote:

Can one of the admins verify this patch?
—
Reply to this email directly or view it on GitHub
https://github.com/apache/spark/pull/4362#issuecomment-72811846.

--
Whether you think you can or you cannot.....either way you are right....
With Regards...
Deep

Have you checked the GraphX example https://spark.apache.org/docs/latest/graphx-programming-guide.html#pregel-api? It implemented single source shortest path.

Yes, I have checked it out. This one is on pure Spark.

ok to test

Test build #26742 has started for   PR 4362 at commit 5a0f18e.

This patch merges cleanly.

Test build #26742 has finished for   PR 4362 at commit 5a0f18e.

This patch fails RAT tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26742/
Test FAILed.

Do I need to add the license headers in the file?
The one which is there within /Licensed to..........under the license/  in every file in the Spark examples? Or do I have to sign up any license?

Do I need to submit another pull request for this new file?

Test build #26745 has started for   PR 4362 at commit 63042fa.

This patch merges cleanly.

Test build #26745 has finished for   PR 4362 at commit 63042fa.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26745/
Test FAILed.

(You need a JIRA) What's the value of this example, if it's showing a graph algorithm without GraphX and doesn't use its format or abstractions? you can host any example you like on github; why should this be a part of Spark?

Test build #26756 has started for   PR 4362 at commit e3322c7.

This patch merges cleanly.

Test build #26756 has finished for   PR 4362 at commit e3322c7.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26756/
Test FAILed.

Test build #26758 has started for   PR 4362 at commit c30c166.

This patch merges cleanly.

Test build #26758 has finished for   PR 4362 at commit c30c166.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26758/
Test FAILed.

Test build #26759 has started for   PR 4362 at commit 302b7b3.

This patch merges cleanly.

Test build #26759 has finished for   PR 4362 at commit 302b7b3.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26759/
Test FAILed.

Test build #26761 has started for   PR 4362 at commit 90e96e6.

This patch merges cleanly.

Test build #26761 has finished for   PR 4362 at commit 90e96e6.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26761/
Test FAILed.

Test build #26762 has started for   PR 4362 at commit 767f363.

This patch merges cleanly.

Test build #26762 has finished for   PR 4362 at commit 767f363.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26762/
Test FAILed.

The error file says that a particular line contains a tab, but I have removed it. The error log says the same thing again. What does this mean?

Test build #26821 has started for   PR 4362 at commit ae0cbf2.

This patch merges cleanly.

You could run ./dev/scalastyle in your spark dir to check the style locally before push to github. And I think this page is helpful for new contributors.

Thank You Fan,
I rewrote the whole thing and the error have gone.
I will surely do that next time I try pulling a request.
On Thu, Feb 5, 2015 at 10:23 AM, Wenchen, Fan<EMAIL_ADDRESS>wrote:

You could run ./dev/scalastyle in your spark dir to check the style
locally before push to github. And I think this page
https://cwiki.apache.org/confluence/display/SPARK/Contributing+to+Spark
is helpful for new contributors.
—
Reply to this email directly or view it on GitHub
https://github.com/apache/spark/pull/4362#issuecomment-72994165.

--
Whether you think you can or you cannot.....either way you are right....
With Regards...
Deep

Test build #26821 has finished for   PR 4362 at commit ae0cbf2.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26821/
Test PASSed.

Hi @deeppradhan
Thanks for submitting the patch. This is much more sophisticated than the usual examples we have. Examples we include typically are there as examples on how to use the API.
This seems like something you can easily host on your site. Do you mind closing the pull request and host it somewhere else?

I agree; let's close this issue for now.

Mind closing this PR?

Can one of the admins verify this patch?

@deeppradhan would you mind closing this PR? From the comments of the other committers it seems unlikely to be merged at this point.


Fix base meme query

Output has null values for some meme_ids:
{
  "isSuccessful": true,
  "value": [
    {
      "meme_id": null,
      "user_id": 6,
      "title": "Kurtis' meme",
      "cloudinary_url": "https://i.kym-cdn.com/photos/images/original/001/367/501/600.jpg",
      "date_created": "2019-04-13T22:19:37.362Z",
      "username": "kjantzen",
      "comment_count": 2,
      "up_votes": 1,
      "down_votes": null
    },
    {
      "meme_id": null,
      "user_id": 5,
      "title": "Flora's meme",
      "cloudinary_url": "https://i.kym-cdn.com/photos/images/newsfeed/001/004/013/679.jpg",
      "date_created": "2019-04-13T22:19:37.362Z",
      "username": "fmoon",
      "comment_count": 2,
      "up_votes": 1,
      "down_votes": null
    },
    {
      "meme_id": 4,
      "user_id": 4,
      "title": "Farzam's meme",
      "cloudinary_url": "https://i.kym-cdn.com/photos/images/original/001/469/681/ed2.jpg",
      "date_created": "2019-04-13T22:19:37.362Z",
      "username": "fnoori",
      "comment_count": 2,
      "up_votes": 1,
      "down_votes": 1
    },
    {
      "meme_id": null,
      "user_id": 3,
      "title": "Amair's meme",
      "cloudinary_url": "https://i.kym-cdn.com/entries/icons/original/000/021/311/free.jpg",
      "date_created": "2019-04-13T22:19:37.362Z",
      "username": "ajavaid",
      "comment_count": 2,
      "up_votes": 2,
      "down_votes": null
    },
    {
      "meme_id": null,
      "user_id": 2,
      "title": "Adnan's meme",
      "cloudinary_url": "https://i.imgflip.com/2tx3fo.jpg",
      "date_created": "2019-04-13T22:19:37.362Z",
      "username": "ahusain",
      "comment_count": 2,
      "up_votes": 2,
      "down_votes": null
    },
    {
      "meme_id": 1,
      "user_id": 1,
      "title": "Adam's meme",
      "cloudinary_url": "https://i.imgflip.com/2xi8c8.jpg",
      "date_created": "2019-04-13T22:19:37.362Z",
      "username": "akerr",
      "comment_count": 2,
      "up_votes": 2,
      "down_votes": 1
    }
  ]
}


possible bug: bare git without packed-refs file wouldn't show up in the scan result

if you init a bare repo in the scan path, it won't create "packed-refs" file by default, in this case, the program wouldn't recognize it as a repo. you have to use "git pack-refs --all" command to create the file for the repo to be recognized by rgit.

Nice.
I'm now testing
--- a/server_side/rgitsss
+++ b/server_side/rgitsss
@@ -111,6 +111,8 @@ rgitsss_init() {
     COMMAND="${COMMAND}git init --bare --initial-branch=main ${BASE}"
     su ${ACCOUNT} --shell=/usr/bin/bash \
         --command="${COMMAND}"
+    su ${ACCOUNT} --shell=/usr/bin/bash \
+        --command="cd ${DIR}/${BASE} && git pack-refs --all"
 }

 rgitsss_describe() {

Interesting. I wonder if there's any other identifying file in the repo that can be used instead. Maybe git-daemon-export-ok which is the file that needs to be created to allows clones?

The git pack-refs --all  does provide what rgit seams to need for displaying.
For "allow to be cloned" has script rgitsss subcommand publish, which does touch git-daemon-export-ok.

@w4 I think it doesn't matter that much what kind of identifier to be used, as long as you give it a proper documentation.

On Tue, Jan 23, 2024 at 08:04:06AM -0800, DC wrote:

Closed #50 as completed.

And thanks for the reminder on https://github.com/w4/rgit/pull/29

Groeten
Geert Stappers
Silence is hard to parse


vimeo.com: Support for embed-only videos

The error message is clear but how can I circumvent it? There is no page that embeds this video.
$ youtube-dl -ct -v http://vimeo.com/user22258446/review/91613211/13f927e053
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['-ct', '-v', 'http://vimeo.com/user22258446/review/91613211/13f927e053']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2014.08.23
[debug] Python version 2.7.5 - Darwin-13.3.0-x86_64-i386-64bit
[debug] Proxy map: {}
[vimeo] 91613211: Downloading webpage
ERROR: Cannot download embed-only video without embedding URL. Please call youtube-dl with the URL of the page that embeds this video.
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/vimeo.py", line 218, in _real_extract
webpage = self._download_webpage(request, video_id)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 283, in _download_webpage
res = self._download_webpage_handle(url_or_request, video_id, note, errnote, fatal)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 223, in _download_webpage_handle
urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 211, in _request_webpage
raise ExtractorError(errmsg, sys.exc_info()[2], cause=err)
ExtractorError: Unable to download webpage: HTTP Error 403: Forbidden; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 520, in extract_info
ie_result = ie.extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 170, in extract
return self._real_extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/vimeo.py", line 227, in _real_extract
expected=True)
ExtractorError: Cannot download embed-only video without embedding URL. Please call youtube-dl with the URL of the page that embeds this video.
Original page: http://devweek.com/2014/assets.html

same problem with 2016.08.31

Can confirm, also having this problem with Vimeo videos after updating YouTube-DL.

@palashcode @2wenty2wo Could you paste your commands and logs?

@yan12125 Sure, I just ran it again with the "-v" command, I'm not sure if that's the log you're talking about. Thank you for the super quick reply :)

youtube-dl -v https://player.vimeo.com/video/166756641
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'https://player.vimeo.com/video/166756641']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 2.7.11 - Darwin-15.4.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 3.0.2, ffprobe 3.0.2, rtmpdump 2.4
[debug] Proxy map: {}
[vimeo] 166756641: Downloading webpage
ERROR: Cannot download embed-only video without embedding URL. Please call youtube-dl with the URL of the page that embeds this video.
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/vimeo.py", line 409, in _real_extract
webpage = self._download_webpage(request, video_id)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 507, in _download_webpage
res = self._download_webpage_handle(url_or_request, video_id, note, errnote, fatal, encoding=encoding, data=data, headers=headers, query=query)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 414, in _download_webpage_handle
urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 403, in _request_webpage
raise ExtractorError(errmsg, sys.exc_info()[2], cause=err)
ExtractorError: Unable to download webpage: HTTP Error 403: Forbidden (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 691, in extract_info
ie_result = ie.extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 347, in extract
return self._real_extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/vimeo.py", line 418, in _real_extract
expected=True)
ExtractorError: Cannot download embed-only video without embedding URL. Please call youtube-dl with the URL of the page that embeds this video.

How did you get the URL https://player.vimeo.com/video/166756641? Is it embedded in another website?

Yeah it's embedded on https://www.heyhey.tv/exclusive-member-vid/1984-episode-39/
I paid legally to get all the old Australian TV "Hey Hey It's Saturday" episodes and I've been downloading them for my Dad. It's been downloading fine until I updated youtube-dl tonight. Now I get that error.

Could you try:
youtube-dl -v "https://player.vimeo.com/video/166756641" --referer "https://www.heyhey.tv/exclusive-member-vid/1984-episode-39/"

Thanks @yan12125 that did work. Just going to take ages now that I have to add a referer. 40+ more videos to go haha. Thanks again.

Hey, I had this same error with Vimeo, for a paid-for video: 'ERROR: Cannot download embed-only video without embedding URL. Please call youtube-dl with the URL of the page that embeds this video'.
Using this method was successful:   Woot!
youtube-dl -v "https://player.vimeo.com/video/166756641" --referer "https://www.heyhey.tv/exclusive-member-vid/1984-episode-39/"
Perhaps it is a good idea to add something about this into some documentation somewhere?

@2wenty2wo u can always create a .txt file for batch command

I'm still having this issue. Anyone could help me to work out whats happening?
youtube-dl -v https://player.vimeo.com/video/245919510?api=1&title=1 --referer="https://skillsmatter.com/skillscasts/10935-thrilled-to-have-bozhidar-batsov-with-us-for-a-community-update-on-cider-at-clojurex-2017\"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'https://player.vimeo.com/video/245919510?api=1&title=1', u'--referer="https://skillsmatter.com/skillscasts/10935-thrilled-to-have-bozhidar-batsov-with-us-for-a-community-update-on-cider-at-clojurex-2017"']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2017.12.02
[debug] Python version 2.7.10 - Darwin-17.3.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 3.4, ffprobe 3.4
[debug] Proxy map: {}
[vimeo] 245919510: Downloading webpage
ERROR: Cannot download embed-only video without embedding URL. Please call youtube-dl with the URL of the page that embeds this video.
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/vimeo.py", line 470, in _real_extract
webpage, urlh = self._download_webpage_handle(request, video_id)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 535, in _download_webpage_handle
urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 515, in _request_webpage
raise ExtractorError(errmsg, sys.exc_info()[2], cause=err)
ExtractorError: Unable to download webpage: HTTP Error 403: Forbidden (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 784, in extract_info
ie_result = ie.extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 437, in extract
ie_result = self._real_extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/vimeo.py", line 484, in _real_extract
expected=True)
ExtractorError: Cannot download embed-only video without embedding URL. Please call youtube-dl with the URL of the page that embeds this video.

In the place of referer argument, value need not be the complete URL. Just the website name is enough.


Type hints for Numba code base

Feature request

The upcoming deprecation of Python 2 enables us to use type hints for the code base. Should we start using them?
Pandas for example is adding type hints quite quickly: https://github.com/pandas-dev/pandas/labels/Typing
and they are strongly encouraging it: https://github.com/pandas-dev/pandas/pull/27050/files

+1!


Add Speech To Text in Audio RCL

Add Speech to Text web working demo version with speech Recognition  in the Audio RCL

Fixed https://github.com/friendsofagape/audio-recorder/pull/51

Closed


Collection-Cache system

In gitlab by @sylvaingaudan on Apr 22, 2017, 09:52
Implement a cache system for the collection management because every single query (count/search/aggregation) makes a call on the Collection DAO. This slows the services.

In gitlab by @sylvaingaudan on Apr 26, 2017, 12:11
changed milestone to %3

In gitlab by @sylvaingaudan on Apr 26, 2017, 14:01
added ~1918909 label

In gitlab by @sylvaingaudan on Apr 28, 2017, 13:50
changed milestone to %4

In gitlab by @sfalquier on Apr 28, 2017, 10:59
removed assignee

In gitlab by @sfalquier on May 9, 2017, 09:13
added ~1918367 and removed ~1918909 labels

In gitlab by @sfalquier on May 11, 2017, 16:10
added ~1918368 and removed ~1918367 labels

In gitlab by @sfalquier on May 11, 2017, 16:10
assigned to @sfalquier

In gitlab by @MohamedHamouGisaia on May 12, 2017, 10:24
removed ~1918368 label

In gitlab by @MohamedHamouGisaia on May 12, 2017, 10:24
closed


Release 2.45.0

Updates changelog, verison and ui version. We're ready for the final release

LGTM!


No index.php

Hi, I would love to help you with the project but I once I cloned the repo to my local machine I could not find and index.php or index.html file anywhere. Sorry if this is not the right place but I didn't know where else to contact you. I am happy to help with php or html & css if you need any.
Thanks,
-Beorn :)

the index.php is in /public/index.php. you should make yourself familiar with the laravel framework.
You can also contact me in the modding discord channel.


Bug- handle sentence input #2

handle sentence input
To handle sentence input from the user for decryption.
Resources
https://www.geeksforgeeks.org/vigenere-cipher/

** Bounty points alloted : 50 **
Any further improvements along with bug fixes will be given brownie points. If the countributor sees any further inprovements that can be done to this project ,raise an issue.

Hey, can I work on this issue?

are you able to access it now? @rithvikjayaram

Can i be assigned to this pls

i want to work on this

I'm so sorry but you cannot submit/do anything during the freeze period.

Hey ,can i work on this?

Hey, can you assign me this issue?


[BUG] Enter bug description

Describe the bug
On tablets or smaller screens the user dropdown expands the navbar.

Steps to Reproduce
Steps to reproduce the behavior:

Open the user dprodown

Expected behavior

Deployment Method

[x] Docker
[x] Bare Metal

Version Information
docker:latest

@SchrodingersGat any idea how to solve this? I can not find a solution


Catch signing errors

Coverage decreased (-0.1%) to 94.652% when pulling 9b1c3f2c54aadf3d6808c16455beb29cdade076a on isocolsky:ref/catch-sign-errors into 0f65a249dede1e58191fee5227d4981470903472 on bitpay:master.

👍


Stuck loading scenes from my updated v10 world

Describe the bug
I'm unable to load any scenes after updating from v10 to v11 with this mod enabled. They load up to 95% and never progress past. This was tested by disabling every mod except this mod and it's pre-requisites. Creating a new empty scene and trying to load into it still presents the same bug. Disabling this mod fixes the issue instantly.
To Reproduce
This ONLY seems to happen on my old v10 world. If I create a new world the issue does not happen.
Additional context
Paste bin with the console log
https://pastebin.com/jy0G7QG7
Foundry v11 b313
DnD5e 2.3.1
Dfreds Convenient Effects 6.0

It seems like this might be a bug with firefox and convenient-effects combined. I tried in chromium and I don't have this issue.
drawImage() fails silently when drawing an SVG image without @width or @height
https://bugzilla.mozilla.org/show_bug.cgi?id=700533
I'm not entirely sure why this happens on my current world but not on a new world and how to fix it. But hopefully this might be a lead.

Firefox has had issues with images before. I think it's relatively simple to add the width and height, but can anyone confirm if this is still an issue?

Because of this issue I made a new world and continued my campaign there.  I don't know why butt this issue wasn't happening on a new world even with the same mods/assets.
Out of curiosity I loaded my old world and it seems to be loading fine on a quick test. /shrug

Well, alright then. Maybe Foundry fixed something or who knows 🤷

As someone who experienced the same issue just now, I'm just going to put this solution out there for posterities sake:
All I had to do was Reset Status Effects to Default using the button in the CE dialog and then repopulate the status effects I like to regularly use from my favorites. Fixed it right up, no new world or mysterious update waiting required.


Please specify which versions of Backbone are compatible

It would be very helpful to know which versions of Backbone are compatible with/tested with each release.

All 1.X.X should work fine. Will add it to the documentation. It very likely will work with 0.X.X too.

Just tried to upgrade backbone to 1.2, and noticed weird bugs in new collections implementation.
I'm a bit tired of that surprised. In next version, I will make my own implementation of core mechanics of collections and events. For now, 1.1.X is known to be safe - tested with our codebase.

Ok, last version doesn't require backbone. Stable 1.1.X version is linked in. Proven to be stable on our 100K code base. Enjoy. Keep in mind, that package name is changed. npm install nestedtypes

So does this mean NestedTypes is now a 100% replacement for Backbone? Is the plan to maintain compatibility with Backbone in the same way LowDash mostly does with Underscore?

Yes and no. Yes, because technically it extends Backbone namespace, and I keep core behavior of the models as close as possible to Backbone (model's internal structure is untouched). Many plugins and frameworks will work (chaplinjs and backbone.pageable in our case).
No, because there are some serious architectural differences, causing approaches working for backbone not to work with nestedtypes. For example, you cannot use NestedTypes models as dictionary or map - all attributes must be declared in advance, otherwise it can't do its magic. You should not use function as defaults body - it supposed to be type spec. Any plugin assuming Model.extend is the same as Collection.extend, and trying to mess with .extend mechanics will fail (there are some).
It also behaves a bit differently in little aspects and boundary conditions, which are not really documented. For example, when you create collection with a list of elements as an argument, in backbone case collection will appear empty inside of its initialize. In NestedTypes it will be already populated with elements (which you probably expect).