[Question][Offtopic] Async Zip Compat

Hi Harry!
This crate is absolutely wonderful, it saved me over a year ago when I was too dumb to figure out async_compression, and your package (back at 0.0.7) wrapped it and did all the dirty work for me.
Now I just bumped the package to 0.0.15, to take advantage of some of the compression algorithms being behind feature flags, and improve compile times, but I noticed a couple things:

it no longer wraps async_compression. Why not?
It has introduced this Compat thing. Which I did not need before.

I was hoping you wouldn't explaining this Compat situation and why it is now needed. In the process I hope to gain a better understanding of the rust async ecosystem! Thank you!!
For reference, here is my function that uses your library, and the comments IN CAPS detail the changes i had to make to bump to 0.0.15
#[get("/download")]
pub async fn directories_download(
    db_pool: web::Data<DbPool>,
    blob_storage: web::Data<BlobStorage>,
    query: web::Query<DownloadDirectoryRequest>,
    id: Identity,
) -> StreamingResponse<ReaderStream<impl AsyncRead>> {
    tracing::Span::current().record("query", query.as_value());
    let user_id =
        require_user_login(id).map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?;

    // Prepare a stream that will receive the compressed bytes
    let (mut compressed_tx, compressed_rx) = tokio::io::duplex(1024);
    // I NEEDED TO `.compat()` THIS
    let compressed_tx = compressed_tx.compat();

    // Get a list of hashes and paths that we need to compress
    let files_to_zip = {
        let mut files = directories_get_children_hashes_and_paths_for_directory_download(
            db!(db_pool),
            user_id,
            query.directory_entry_id,
        )
        .await?;

        if query.deduplicate == Some(true) {
            deduplicate(&mut files)
        };

        files
    };

    tokio::spawn(async move {
        // Prepare our ZipFileWriter
        let mut zip_archive = ZipFileWriter::new(compressed_tx);

        for (hash, path) in files_to_zip {
            let (mut uncompressed_tx, mut uncompressed_rx) = tokio::io::duplex(1024);

            let mut entry_writer = zip_archive
                .write_entry_stream(ZipEntryBuilder::new(path.into(), Compression::Deflate))
                .await
                .expect("Couldn't create an EntryStreamWriter")
                // NEEDED `.compat_write()` HERE
                .compat_write();

            // Begin streaming into the channel
            let blob_storage = blob_storage.clone();
            tokio::spawn(async move {
                blob_storage
                    .retrieve_file_streaming(&hash, &mut uncompressed_tx)
                    .await
                    .expect("blob storage could not retrieve file");
            });

            // Copy from channel into the entry_writer
            tokio::io::copy(&mut uncompressed_rx, &mut entry_writer)
                .await
                .expect("couldn't copy unompressed bytes into the EntryStreamWriter");

            // // finalize this file's compression
            entry_writer
                // NEEDED TO GET THE `EntryStreamWriter` BACK OUT
                // TO BE ABLE TO `.close()` IT
                .into_inner()
                .close()
                .await
                .expect("couldn't shutdown the EntryStreamWriter");
        }

        // When all uncompressed_streams have completed we can close off
        // the ZipFileWriter
        zip_archive
            .close()
            .await
            .expect("couldn't close the zip file");
    });

    Ok(StreamingBody(ReaderStream::new(compressed_rx)))
}
`

compat is there so that this crate can support not just tokio, but also async-std and potentially even more  runtime.
This is a workaround until portable runtime is standardrised

This crate is absolutely wonderful, it saved me over a year ago when I was too dumb to figure out async_compression, and your package (back at 0.0.7) wrapped it and did all the dirty work for me.

Glad we could help. 😄

it no longer wraps async_compression. Why not?

Could you clarify what you mean exactly? I can't remember anything having drastically changed in that area.

It has introduced this Compat thing. Which I did not need before.

You can use the with_tokio() constructor to avoid having to manually call .compact(). You can find more detail about this in the module-level docs.

I was hoping you wouldn't explaining this Compat situation and why it is now needed. In the process I hope to gain a better understanding of the rust async ecosystem! Thank you!!

As alluded to above, the base implementation no longer depends on tokio in order to allow support for other runtimes. At the moment, Rust doesn't allow async functions in traits which means the standard library doesn't provide async versions of the IO traits. So these runtimes have to define their own which is where compat comes in to convert between the different traits.
Once there are stabilised async IO traits within the standard library, I'd expect almost everyone to start depending on them and then we can switch the base implementation over (and then only have tokio for tokio-specfic things like the fs reader).

Aha! Perfect explanation. Thank you! Makes a lot of sense.
If you look at the dependencies for 0.0.7 you'll see async_compression there

(I just assumed async_zip was a thin wrapper)
If you look at the deps for 0.0.15, async_compression has become optional
ahh.. but now I look at your feature list again, it makes sense, it was made optional so that users of async_zip can pick and choose what to compile! Which is great because it's exactly why I bumped to 0.0.15! :D ... It still essentially depends on async_compression it as much as it did.


Comment on actions only config

That config is not available in the apps version of release drafter: https://probot.github.io/apps/release-drafter/

@mlclmj it is just unused


Provides a default coder for PubsubMessage

Default coder is useful to avoid having to specify it when you use PubsubIO.writePubsubMessages, on its input PCollection.
A couple more cosmetic changes while we're at it: moves PubsubMessage to upper level, renames getMessage to getPayload.
R: @tgroh

Coverage decreased (-0.01%) to 70.547% when pulling cc69c3a35edbf19aff3f4d7ee2390f421d996b26 on jkff:pubsub-coder into 1bc50d627289e6cbce617424744628a8cda4c52a on apache:master.

Coverage remained the same at 70.561% when pulling cc69c3a35edbf19aff3f4d7ee2390f421d996b26 on jkff:pubsub-coder into 1bc50d627289e6cbce617424744628a8cda4c52a on apache:master.


fix: change version IDs to use the discovery keys

Fixes #265
Depends on https://github.com/digidem/mapeo-schema/pull/145 and
updating mapeo-schema
Contains fixes for<EMAIL_ADDRESS>(renamed project -> projectSettings)

@gmaclennan is it okay to close this in favor of #290 ?

Close in favour of #290


JSONDecodeError

Working with a virtual environment running py 3.6 on windows 10. Trying to get the Django site working. Initially ran into an issue with requiring the API key to be in a file named '.prs' since this was not a valid filename. At least think I have managed to circumvent this by naming it differently and updating the script which raised the error (might be others I need to address as I go along?)
Anyways, after making that fix I now get the following error:

JSONDecodeError at /
Expecting value: line 1 column 23 (char 22)
Request Method:	GET
Request URL:	http://<IP_ADDRESS>:8001/
Django Version:	1.11
Exception Type:	JSONDecodeError
Exception Value:
Expecting value: line 1 column 23 (char 22)
Exception Location:	C:\Users<username>\Anaconda3\envs\prs\lib\json\decoder.py in raw_decode, line 357
Python Executable:	C:\Users<username>\Anaconda3\envs\prs\python.exe
Python Version:	3.6.4
Python Path:
['C:\Users\\Documents\GitHub\moviegeek',
'C:\Users\\Anaconda3\envs\prs\python36.zip',
'C:\Users\\Anaconda3\envs\prs\DLLs',
'C:\Users\\Anaconda3\envs\prs\lib',
'C:\Users\\Anaconda3\envs\prs',
'C:\Users\\Anaconda3\envs\prs\lib\site-packages']
Server time:	Fri, 9 Feb 2018 17:58:34 +0000
Environment:
Request Method: GET
Request URL: http://<IP_ADDRESS>:8001/
Django Version: 1.11
Python Version: 3.6.4
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_extensions',
'moviegeeks',
'collector',
'analytics',
'recommender']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "C:\Users<username>\Anaconda3\envs\prs\lib\json\decoder.py" in raw_decode
355.             obj, end = self.scan_once(s, idx)
During handling of the above exception (22), another exception occurred:
File "C:\Users<username>\Anaconda3\envs\prs\lib\site-packages\django\core\handlers\exception.py" in inner
41.             response = get_response(request)
File "C:\Users<username>\Anaconda3\envs\prs\lib\site-packages\django\core\handlers\base.py" in _legacy_get_response
249.             response = self._get_response(request)
File "C:\Users<username>\Anaconda3\envs\prs\lib\site-packages\django\core\handlers\base.py" in _get_response
187.                 response = self.process_exception_by_middleware(e, request)
File "C:\Users<username>\Anaconda3\envs\prs\lib\site-packages\django\core\handlers\base.py" in _get_response
185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users<username>\Anaconda3\envs\prs\lib\site-packages\django\utils\decorators.py" in _wrapped_view
149.                     response = view_func(request, *args, **kwargs)
File "C:\Users<username>\Documents\GitHub\moviegeek\moviegeeks\views.py" in index
14.     api_key = get_api_key()
File "C:\Users<username>\Documents\GitHub\moviegeek\moviegeeks\views.py" in get_api_key
140.     cred = json.loads(open("prs_api_key").read())
File "C:\Users<username>\Anaconda3\envs\prs\lib\json_init_.py" in loads
354.         return _default_decoder.decode(s)
File "C:\Users<username>\Anaconda3\envs\prs\lib\json\decoder.py" in decode
339.         obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users<username>\Anaconda3\envs\prs\lib\json\decoder.py" in raw_decode
357.             raise JSONDecodeError("Expecting value", s, err.value) from None
Exception Type: JSONDecodeError at /
Exception Value: Expecting value: line 1 column 23 (char 22)
Any help would greatly appreciated!

Also, I had to install packages manually since neither conda nor pip could get through requirements.txt without encountering multiple errors with scipy, pyLDAvis, etc.
Here is a list of the installed packages - perhaps there is an incompatibility with a newer version I have installed?

anaconda                  custom           py36h363777c_0
appdirs                   1.4.3
attrs                     17.4.0
boto                      2.46.1
boto3                     1.5.25
botocore                  1.8.39
bz2file                   0.98
bzip2                     1.0.6                    vc14_1  [vc14]  conda-forge
ca-certificates           2017.11.5                     0    conda-forge
certifi                   2018.1.18
certifi                   2017.11.5                py36_0    conda-forge
chardet                   3.0.4
colorama                  0.3.9
curl                      7.55.1                   vc14_0  [vc14]  conda-forge
cycler                    0.10.0
Django                    1.11
django-extensions         1.7.8
docutils                  0.14
freetype                  2.8.1                    vc14_0  [vc14]  conda-forge
funcy                     1.10
future                    0.16.0
gensim                    3.3.0
hdf5                      1.10.1                   vc14_1  [vc14]  conda-forge
icc_rt                    2017.0.4             h97af966_0
icu                       58.2                     vc14_0  [vc14]  conda-forge
idna                      2.6
intel-openmp              2018.0.0             hd92c6cd_8
Jinja2                    2.10
jmespath                  0.9.3
joblib                    0.11
jpeg                      9b                       vc14_2  [vc14]  conda-forge
krb5                      1.14.2                   vc14_0  [vc14]  conda-forge
libiconv                  1.14                     vc14_4  [vc14]  conda-forge
libpng                    1.6.34                   vc14_0  [vc14]  conda-forge
libssh2                   1.8.0                    vc14_2  [vc14]  conda-forge
libtiff                   4.0.9                    vc14_0  [vc14]  conda-forge
libxml2                   2.9.5                    vc14_1  [vc14]  conda-forge
libxslt                   1.1.32                   vc14_0  [vc14]  conda-forge
lzo                       2.10                     vc14_0  [vc14]  conda-forge
MarkupSafe                1.0
matplotlib                2.1.2
mkl                       2018.0.1             h2108138_4
nltk                      3.2.5
numexpr                   2.6.4
numpy                     1.14.0
numpy                     1.12.1
numpy                     1.14.0           py36h4a99626_1
openssl                   1.0.2n                   vc14_0  [vc14]  conda-forge
packaging                 16.8
pandas                    0.22.0
pip                       9.0.1                    py36_1    conda-forge
pluggy                    0.6.0
psycopg2                  2.7.4
py                        1.5.2
pyLDAvis                  2.1.1
pyparsing                 2.2.0
pytest                    3.4.0
python                    3.6.4                         0    conda-forge
python-dateutil           2.6.1
pytz                      2017.2
qt                        5.6.2                    vc14_1  [vc14]  conda-forge
requests                  2.18.4
s3transfer                0.1.12
scikit-learn              0.19.1           py36h53aea1b_0
scipy                     1.0.0            py36h1260518_0
scipy                     1.0.0
setuptools                38.4.0                   py36_0    conda-forge
six                       1.10.0
smart-open                1.5.6
sqlite                    3.20.1                   vc14_2  [vc14]  conda-forge
stop-words                2<IP_ADDRESS>
tk                        8.6.7                    vc14_0  [vc14]  conda-forge
urllib3                   1.22
vc                        14                            0    conda-forge
vs2015_runtime            14.0.25420                    0    conda-forge
wheel                     0.30.0                   py36_2    conda-forge
wincertstore              0.2                      py36_0    conda-forge
winpty                    0.4.3                    vc14_2  [vc14]  conda-forge
yaml                      0.1.7                    vc14_0  [vc14]  conda-forge
zlib                      1.2.11                   vc14_0  [vc14]  conda-forge

Hi,
Thank you for your feedback, it has been some time since I tested it on Windows. But as far as I can see you get an error because you have an '/' in your prs-file. The format of the file should be as follows:
{ "themoviedb_apikey": "THE_API_KEY" }
where THE_API_KEY should be exchanged with your api key. So there shouldnt be any '/'s in the file.

Thanks for the response - turns out I just left out the quotations around the API key (whoops...)
The page loads now but I seem to be encountering some other issues (no data, other errors on navigation). As much as I would like to get everything working I think I'll just do my best to proceed with looking through the code when necessary since I'd rather not lose too much time troubleshooting. From what I've gone through thus far the book seems to do a good job walking through the details without needing to see the site itself.
Appreciate the help!

Hi Dmahler26,
If you have other issues, please open a new issue for each and I will do my best to help.
Kim


Upgraded build tools

upgraded the buld tools version to 25.2.0

@NickHub4017

Updating the build tool version to current high

@NickHub4017 done sir


Color the commands which can be clicked differently

Color the commands which can be clicked and executed, with a different color

I think this is a duplicate for: https://github.com/kubernetes/kubernetes-bootcamp/issues/11 I'll make the text italics for commands that are not clickable


Update getInvisibles documentation

Description of the Change
fixes #16042
Updates documentation for getInvisibles since setInvisibles is no longer a method.

Release Notes
N/A

Thanks, @UziTech! 💯


added update checker for latest release of dum

closes #28
The checker uses a get request to GitHub releases to find the latest version from its tag. If using GitHub is not ideal, other API's can be used instead such as crates.io .
This change required two additional libraries to make the request and deserialize it. Therefore ureq and serde were added to Cargo.toml .
If other options are preferred, I would be more than happy to apply them.

it seems this is blocking until the network request is resolved. ideally, I prefer something like https://github.com/yeoman/update-notifier#how which doesn't block it.

Actually, I think you misunderstood, this will still wait for a network request before actually parsing the cli args, what I want is to spawn a child process to check for updates and notify if there is an update the next time dum is called. See https://github.com/yeoman/update-notifier#how

My apologies,
Thanks for the clarification. I think I understand the problem better now and would be able to implement that.


fix: prettier overwrites @typescript-eslint/consistent-type-imports

There is/was a misconfiguration (?) between prettier and eslint.
The eslint rule @typescript-eslint/consistent-type-imports has updated something like this ( while running pnpm lint:fix):
import Markdoc, { type Node as MarkdocNode, type Tag } from "@markdoc/markdoc"

to:
import type { Node as MarkdocNode, Tag } from "@markdoc/markdoc"
import Markdoc from "@markdoc/markdoc"

After running pnpm format:fix ( or just save a linted file ), prettier has set the import to the old value.
After setting <TYPES> and <TYPES>^[.]" in the prettier config the pnpm format:fix returns the correct import ( = same as pnpm lint:fix ).
Doc ref: https://github.com/IanVS/prettier-plugin-sort-imports?tab=readme-ov-file#4-group-type-imports-separately-from-values

Thanks @juliusmarminge for the quick review.
I have updated the import order to support the described behavior.

Awesome, can you also run the formatter?

Awesome, can you also run the formatter?

done - fixed also the found linting issue/warning


Why are the copyright to your project owned by google?

The MIT License

Copyright (c) 2010-2018 Google, Inc. http://angularjs.org

I think it's worth changing the license file.

AngularJS was made by Google, I thought?

Fixed by Fixed by c4a6abb6816606ff9356498fd10607345ac7aa33 can be closed


added mpir 2.7.2 support.

Multiple Precision Integers and Rationals.
https://github.com/wbhart/mpir
This should fix https://github.com/Microsoft/vcpkg/issues/48.

Hi @sdcb, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

@sdcb, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

Looks great, thanks!


clipgrab: 3.9.6 -> 3.9.7

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/clipgrab/versions.
meta.description for clipgrab is: "Video downloader for YouTube and other sites"
meta.homepage for clipgrab is: "https://clipgrab.org/"
meta.changelog for clipgrab is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
Warning: no invocation of /nix/store/vm0s1dr2by0vcnmpxjr63cdgy9caffmf-clipgrab-3.9.7/bin/.clipgrab-wrapped had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/vm0s1dr2by0vcnmpxjr63cdgy9caffmf-clipgrab-3.9.7/bin/clipgrab had a zero exit code or showed the expected version
0 of 2 passed binary check by having a zero exit code.
0 of 2 passed binary check by having the new version present in output.
found 3.9.7 with grep in /nix/store/vm0s1dr2by0vcnmpxjr63cdgy9caffmf-clipgrab-3.9.7
found 3.9.7 in filename of file in /nix/store/vm0s1dr2by0vcnmpxjr63cdgy9caffmf-clipgrab-3.9.7

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
1 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
clipgrab
docbookrx

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/vm0s1dr2by0vcnmpxjr63cdgy9caffmf-clipgrab-3.9.7 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A clipgrab https://github.com/r-ryantm/nixpkgs/archive/19c175281f70e793c13a5580b01429446bc778ff.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/vm0s1dr2by0vcnmpxjr63cdgy9caffmf-clipgrab-3.9.7
ls -la /nix/store/vm0s1dr2by0vcnmpxjr63cdgy9caffmf-clipgrab-3.9.7/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

clipgrab

Maintainer pings

Launches and works for me.


SLIP 21 and SLIP 77 (symmetric key derivation and blinding key derivation

@lontivero thanks for the review! This was mostly monkey ported from libwally and elementsd but will shortly make the refactoring you mentioned. I still figured out why the tests don't pass though. :(

@Kukks mind rebasing and see if it is still relevant?

FTR. Wasabi implements slip21 here: https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi/Crypto/Slip21Node.cs

@lontivero  Thanks for the tip. I've rebased and updated the PR as per your review.
@NicolasDorier  I think it is ready to merge now. Both SLIP 77 and SLIP21 tests pass correctly


Issue #6 support revoke function

Provides a function to revoke a token completely, along with all granted scopes.
This endpoint uses Basic auth and requires the refresh token to identify the authorisation being revoked.

Best leave this for a day or so (at least) while I finish integrating this change with the Xero test app, and see if there is anything I've overlooked. But have a play in the meantime. The provider needs the client id and secret set, and revoking operates on the refresh token.
It will accept the token object and extract the refresh toen from it if avaiable. However, since this is not a part of the initial OAuth flow, the token object will unlikely to be available. It is a part of the OAuth 2.0, defined as an extension in the RFC so it does below here. Seems not to be handled by the League OAuth 2.0 package at all at present, unless I've simply missed it.

Hi guys, token revocation is just what I am looking for at the moment as we are going to apply for partner app.
One of the Xero compliance checkpoints is to revoke the active refresh token.
Not sure how https://github.com/calcinai/oauth2-xero/pull/7/commits/4a4ed2586698260e9ae652df45d4a0eebf40591e is related to the revocation feature, maybe we can exclude this commit but merge the other two?
@calcinai Is there any chance we can merge this anytime soon.

I've been working on other things the last month, so have not been able to follow this up. The 4a4ed25 change was to help get to the information needed to help revoke the token, basically so the applicartion knows who's token it is. That information can be presented to an admin, and can also be used to locate existing authorisations for udating when the user reauthorises with additional permissions.
I've got a revoke branch on the demo app that I have not yet sent a PR for, that may be of interest. I'll see if I can tidy it up this weekend, and catch up with the master commits (it's a little behind).


Document librealsense releases

Following-up on #310
Review and additional comments are welcomed.

This seems like a very weird release strategy and doesn't match what is typically done (doesn't mean it's bad just that it seems odd to pick such a workflow if the aim is to make it easier for developers to engage with you).
Typically master is your dev branch and your support/hotfix branches come off your releases (and you can have a release branch or jsut a branch per release). See the model proposed here:
http://tleyden-misc.s3.amazonaws.com/blog_images/release-branching-strategy.png
Your dev branch in your model would end up just being a feature branch.

I agree that we need more predictable branching and versioning strategy, we will work toward that.
As for the current state of affairs - we are doing some of the development outside GitHub.com, it is a limitation rather then a choice. Previously we have decided to merge this work through the development branch first, and only after getting some feedback merge it into master. In that sense you are correct that the development branch is just another feature branch.


Icons not working

/topic
Am i doing something wrong? I typed the code in correctly and still not working

Please create a jsfiddle to reproduce the issue you encounter.

https://jsfiddle.net/d5gfec91/

You forgot to include the library 😉
https://jsfiddle.net/d5gfec91/3/


resetcam does not appear to work on clear() and add()

I'm trying to set up a simple to use animation engine that will alternate between an update() of my data and a draw() of my data.
Here's a small example of the problem:
import vedo
from vedo.shapes import Spheres

centers = [[0,0], [1,1]]
radii = [0.1, 0.1]

vedo.settings.allowInteraction = False
plotter = vedo.Plotter(size=(1600, 1600))

def update():
    global centers, radii
    radii[0] += 0.01 # Increase the first sphere's radius slightly

def draw():
    global centers, radii, plotter
    # Clear off all previous actors and add a new set
    plotter.clear()
    plotter.add(Spheres(centers, radii), resetcam=False)

def updateAndDraw(iren, event):
    update()
    draw()

plotter.interactor.AddObserver("TimerEvent", updateAndDraw)
plotter.interactor.CreateRepeatingTimer(100)
plotter.show().close()

Note that when the animation is run the view jumps all over the place instead of remaining with the same camera angle. Note that resetcam is set to false on plotter.add but each frame apparently has a randomly generated camera.

One issue seems to be that Spheres() needs 3D coords, not 2D...
Try this:
import vedo

centers = [[0,0,0], [1,1,1]]
radii = [0.1, 0.1]

plotter = vedo.Plotter(size=(1600, 1600))

def update():
    radii[0] += 0.01 # Increase the first sphere's radius slightly

def draw():
    # Clear off all previous actors and add a new set
    plotter.clear()
    ss = vedo.Spheres(centers, radii).lw(1)
    plotter.add([ss, vedo.Axes(ss)], resetcam=False)

def updateAndDraw(event):
    vedo.printc(event, italic=1, c='y')
    update()
    draw()

#plotter.interactor.AddObserver("TimerEvent", updateAndDraw)
#plotter.interactor.CreateRepeatingTimer(100)

plotter.addCallback("timer", updateAndDraw)
timerId = plotter.timerCallback("create", dt=100)

cam = dict(pos=(4, -8, 8),
           focalPoint=(0, 0, 0),
           viewup=(-0.258, 0.603, 0.754),
           distance=12)

plotter.show(camera=cam).close()

Wow. My bad, thanks. That does fix it :). I just hadn't realized since it was showing me spheres, just erratic ones.


Add analyzer to detect indexing operations in log files

As a database administrator, I would like a simple CLI call to detect if there are ongoing index builds on a selected cluster so that I can quickly detect if issues are related to foreground index builds.

This would use the streamed output from  https://github.com/mgmonteleone/python-atlasapi/blob/261846652c0c4f5224b681a121893349d123287d/atlasapi/atlas.py#L616 and would parse to detect loglines indicating index builds.
Would add to the CLI interface.


Problems with useTransition and certain CSS properties on components beneath animation

I am animating a nav overlay with useTransition. Here is a gist of the component: https://gist.github.com/michaeljblum/aded457ce603a2bea6a91605986bcac7.
It works well, unless there is an element with properties like filter: blur(__px) or position: absolute beneath the overlay that is animating with useTransition.
In this event, the overlay component mounts and begins to fade in (as per my animation instructions), but the elements with, say, filter: blur() applied on them (on the component beneath the overlay) persist for the duration of the useTransition animation. They are fully visible during this time (only the elements with the problematic CSS properties though - nothing else). I've tried adjusting z-indexes in various ways but that didn't help anything. Using text-shadow instead of filter:blur() resolves the issue, but I still need to use filter:blur() for some elements.
Is there a way around this?

Just a heads up, I'm getting the same issue when there are images behind the component that is animating upon mount with useTransition. I'd like to make this post's label "bug" rather than "question" at this point, because I'm really not sure what I'm doing wrong (you can find the component that is use useTransition in the gist above).

Please provide a repro so I have something to test with when I get around to looking at it. 👍

Hey, thanks so much - so I threw together this simple/ugly example: https://codesandbox.io/s/restless-frog-dc0e9
Are you seeing the same things I am? And I'm getting this on the latest React-Spring version.

This bug is unrelated to react-spring. You can fix it by adding position: absolute and z-index to both the nav and .MenuLinks selectors, or whatever works for you.

I don't know, I tried the properties you suggested and am still having difficulties. With an overlay animating with pure CSS transitions, on the other hand, and with the same properties, I'm not having issues.


Crashes when used with Glide version 4x

I am using Glide in my project, if I use version 3x then it works fine but if I use version 4x then the app gets crashed as soon as the image selector activity is launched.
This is the line which shows the error:-
Glide.with(this.context).load(((Album)this.arrayList.get(position)).cover).placeholder(drawable.image_placeholder).centerCrop().into(viewHolder.imageView);
java.lang.NoSuchMethodError: No virtual method load(Ljava/lang/String;)Lcom/bumptech/glide/DrawableTypeRequest; in class Lcom/bumptech/glide/RequestManager; or its super classes (declaration of 'com.bumptech.glide.RequestManager' appears in /data/app/com.parag.sopr-2/base.apk:classes58.dex)
                                                                          at com.darsh.multipleimageselect.adapters.CustomAlbumSelectAdapter.getView(CustomAlbumSelectAdapter.java:44)
                                                                          at android.widget.AbsListView.obtainView(AbsListView.java:2367)
                                                                          at android.widget.GridView.onMeasure(GridView.java:1065)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
                                                                          at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
                                                                          at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
                                                                          at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
                                                                          at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at com.android.internal.policy.DecorView.onMeasure(DecorView.java:687)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2271)
                                                                          at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1358)
                                                                          at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1607)
                                                                          at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
                                                                          at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6325)
                                                                          at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
                                                                          at android.view.Choreographer.doCallbacks(Choreographer.java:683)
                                                                          at android.view.Choreographer.doFrame(Choreographer.java:619)
                                                                          at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
                                                                          at android.os.Handler.handleCallback(Handler.java:751)
                                                                          at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                          at android.os.Looper.loop(Looper.java:154)
                                                                          at android.app.ActivityThread.main(ActivityThread.java:6111)
                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

Did you find any solution? I am facing the same issue.

I tried exclude glide from dependency but it didn't work either. I am using surveshoeb's solution at the moment

The only solution i found is downloading the source code and implementing it as module in android studio . Then in gradle use latest version of glide.

Yeap you can alsobdo that

For now i got had only one solution, replaced this library with other library which using latest glide version, as I need to use latest glide in my project as well as so other dependency library

For now I had only one solution, replaced this library with other library which using latest glide version, as I need to use latest glide in my project as well as so other dependency library

Any suggest of other library?

forked and rescued the library. Now it's compatible with api 29 and most importantly glide is updated to v4.12.0
implementation 'com.github.sjd753:MultipleImageSelect:1.0.1'


Update README.md to add notes

This setting will throw an error of 'winwidth' cannot be smaller than 'winminwidth', waste me hours  to find the source cause, better to write a note there

Thank you very much for your contribution. This looks fine for me.


Code actions  "Move to file" and "Move to new file" are shown everywhere

open this file
select data
select light bulb
:bug: there is entries for "Move to file" and "Move to new file"

It's unrelated to editor.codeActionWidget.includeNearbyQuickFixes, but this does happen in every file.
imo, maybe the lightbulb shouldn't show for non-fix actions? if it's only move..., i can see how that can be annoying.
vs like how we have this one to indicate quickfixable actions.

imo, maybe the lightbulb shouldn't show for non-fix actions? if it's only move..., i can see how that can be annoying.

I wouldn't declare this as a generic light bulb issue, yet. Having refactoring sold by it does makes sense but it shouldn't be as  spammy as it is today with 'Move...'. It seem they show unconditionally (like for loop counters or semicolons) and would benefit from some self-control, e.g only show when on a method, function, class etc ppp

@jrieken atm, it is just shown in every non-empty line in a method, class, function, etc. and in some files, that means the entire file and nearly every line.
Could maybe play around with only having it to show up at the line of function/class/methoid declaration, but not in the code body?


fix(learn): Change demo urls on various backend projects

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

This PR updates the demo projects to use the ones hosted by freeCodeCamp for the 17 Node back-end projects and 3 Node proxies.  It also updates the regular expression for certain tests which validate the demo project url is not submitted.

I wonder if we should include both the replit and .rocks sites in the tests for I can provide my own project, not the example URL. I don't really mind either way.

Will the repl.it examples continue to remain live?

Will the repl.it examples continue to remain live?

They will, but there will no longer be any reference to them from learn.  I could add both, but I don not think it will be necessary.  The Glitch one is out there too, but just like the repl.it projects, it would be difficult to find them.

Any final thoughts on that server? Roll with it for now - maybe make some 404 pages later?

@moT01 Let's wait for @raisedadead to comment on that.

Thanks for your patience guys, while I hash out the pages and wind up on the config (which I have not been able to come up with a good way) please go ahead and make a PR to the production-current branch.
I can land that to unblock you? As I understand the only things that are pending are the actual go live?

To be clear @raisedadead, are you saying to move this PR to target production-current. We aren't exactly blocked, I feel like if we are still working on that server, we should probably get it where we want it before landing this so the projects don't stop working if we need to make adjustments there. Let me know if you want a second pair of eyes on that.

We will not be able to land this on production separately.
Randell confirmed that it is going to take more than just updating URLs on production. The new hosting server is ready and stable from an Ops standpoint. It does lack some "nice to haves", which I will circle around when we have more time.
I am leaving this PR blocked as is, and should merge it when we are ready to go live with the current master.

So we got on a call and discussed pushing master out the door, blocking #39799 instead.


GitHub dependabot ignores patch updates

Action:

update the package hello_world_vsmelov from 0.2.1 to 0.2.2,
restart dependabot check

Expected:

PR to update from  0.2.1 to 0.2.2 created

Actual:

no PR created
I see in dependabot log that it see that the new version appeared, but ignores it, it does not create the PR.

When I update the package from 0.2.1 to 0.3.1 it works fine, PR is created.
Should I use some setting to increase "sensitivity" of dependabot to create PR on patch updates?
.github/dependabot.yml
version: 2
updates:
- package-ecosystem: cargo
  directory: "/"
  schedule:
    interval: live
  open-pull-requests-limit: 10
  allow:
  - dependency-type: all

Cargo.toml
[package]
name = "dependabot-test"
version = "0.0.1"
authors = ["Vladimir Smelov"]
autobins = false

[dependencies]
hello_world_vsmelov = "^0.2.1"

@vsmelov I believe this is happening because you only have a Cargo.toml and no lockfile checked in, and the requirement ^0.2.1 allows for 0.2.2 but not 0.3.x so has to be bumped to allow for it. You can change the default to always bump the requirement even if it's in range, setting theversioning-strategy to increase https://docs.github.com/en/code-security/supply-chain-security/configuration-options-for-dependency-updates#versioning-strategy

As a quick side note, schedule.interval: live isn't supported, so I'd recommend switching to daily. https://github.com/dependabot/dependabot-core/issues/3488 tracks adding live back, though it's not currently prioritized.

Closing, this is working as expected as explained above.


Accessing map fields with invalid names

go 1.21, expr 1.15.8
I wanted to access map fields using the dot syntax where the keys are numbers, for example:
{1:2}.1
// or {"1":2}.1

unexpected token Number(".1") (1:6)

There's the alternative {1:2}["1"] but I was hoping to be able to use the optional chaining ?. syntax to access fields in a map like this a few levels deep. As a workaround I'm doing this:
let vals = {...};
((vals["1"]??{})["2"]??{})["3"]
// instead of vals.1?.2?.3

I'm going to add arr?.[0] syntax as in JS.


Segfault with latest source code compiled with mingw

Dev Env : Mingw
Host : Win 7 x64 under vbox
NO config file to make sure that it generates default values.
Latest source code is compiling fine but when launching Varcem.exe, it crashes :
gdb backtrace
0  get_string (id=id@entry=3903) at misc.c:63
#1  0x00681f5d in menu_floppy (part=part@entry=0, drive=drive@entry=0)
at ui/ui_stbar.c:330
#2  0x006836fc in ui_sb_update () at ui/ui_stbar.c:709
#3  0x00402537 in pc_reset_hard_init () at pc.c:953
#4  0x00402749 in pc_reset_hard () at pc.c:986
#5  0x0066c059 in ui_init (nCmdShow=nCmdShow@entry=10) at win/win_ui.c:678
#6  0x00684d25 in WinMain@16 (hInst=0x400000, hPrev=hPrev@entry=0x0,
lpszArg=0x1e84d85 "", nCmdShow=10) at win/win.c:229
#7  0x0074e4dd in main (flags=1, cmdline=0x1e61b80, inst=0x1e61e28)
at C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_c.c:18

this looks like a problem with the language DLLs. get_string() is returning zero, even though a string with ID 3903 clearly exists:
https://github.com/VARCem/VARCem/blob/1a3148e9c71693ab5365cabc2d7ed2992873f670/src/ui/lang/VARCem-EN.str#L303
Are you sure you have the correct language DLL for your build?
@waltje Maybe get_string() should fallback to something like "(null)" instead of returning 0, that way a slightly out-of-date language DLL might still work to some extent, and it would be immediately clear  where the problem was :)

Problem is that mingw compilation does not generate language DLLs.
So I tried DLLs from another 0.1.6 build and it does not work either.

This is most likely caused by using the pre-cleanup language DLLs - after the
cleanup, most string ID's had changed, and that will cause NULL pointers in
the code...
If you use the DLLs from the newer installer, it should work fine.
--fred (waltje)

On Wed, 6/13/18, Altheos<EMAIL_ADDRESS>wrote:
Subject: Re: [VARCem/VARCem] Segfault with latest source code compiled with mingw (#36)
To: "VARCem/VARCem"<EMAIL_ADDRESS>Cc: "Fred N. van Kempen"<EMAIL_ADDRESS>"Mention"<EMAIL_ADDRESS>Date: Wednesday, June 13, 2018, 4:08 AM
Problem is that mingw
compilation does not generate language DLLs.
So I tried DLLs from another 0.1.6 build and it does not
work either.

It works with language DLLs from latest installer.


Add PSNativeCommandUseErrorActionPreference preference variable

PR Summary
Fixes #1882
PR Checklist

[ ] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[ ] Summarized changes
[ ] Change is not breaking
[ ] Make sure all .cs, .ps1 and .psm1 files have the correct copyright header
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed and/or updated documentation
[ ] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

Hey @bergmeister,
When the fix will be merged / released ?
Thanks !


Incorrect datetime parsing

I think the KQL queries showing parsing of the "Trigger Details" message with a datetime value may be incorrect.  The format of the message may have changed.
The example below shows the format I'm observing:
Trigger Details: PartionId: 59, Offset:<PHONE_NUMBER>12-124580204288, EnqueueTimeUtc: 2022-08-02T11:10:19.4440000+00:00-2022-08-02T11:10:24.5380000+00:00, SequenceNumber:<PHONE_NUMBER>72, Count: 20
Notice the difference in the EnqueueTimeUtc field (changed from using "Z" to "+00:00".
The queries may need to be modified to parse the datetime values correctly.

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

ID: 7372216a-3f05-c33d-5abc-568a5e9202b2
Version Independent ID: 18a9cda7-ef12-2b9f-55b8-69784e988d47
Content: Monitor Azure Functions and Event Hubs - Azure Example Scenarios
Content Source: docs/serverless/event-hubs-functions/observability.yml
Service: architecture-center
Sub-service: azure-guide
GitHub Login: @dbarkol
Microsoft Alias: dabarkol

@mcollier Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.

#please-close


cli: demo records fix

I've already fast-tracked the PyPI release manually, so I'm merging this one.


Time - Kate P.

React Tic Tac Toe
Congratulations!  Please reflect on the assignment with these questions.
Reflection

Prompt
Response

How are events / event handlers and useState connected?
When we use useState hook, we can set the initial state and change it using the method that useState returns. We can modify state via Event Handler function. Example: onButtonClick is an event handler which calls onClickCallBack callback which in its turn calls setSquares, thus updating the state of squares.

What are two ways to do "dynamic styling" with React? When should they be used?
Can be done either as inline css using style attribute directly in the component files. Or can be done in separate css files that can be loaded when we use className keyword.

Much like Rails works with the HTTP request->response cycle, React works with the browser's input->output cycle. Describe React's cycle from receiving user input to outputting different page content.
user input => event handler is called => event handler calls a callback that contains setState action passed through props. => updating state re-renders component to new view

CS Fundamentals Questions

Question
Answer

What do you think is the BigO complexity of the method you use to compute a winner?
O(n)

Consider what happens when React processes a state change from setState -- it must re-render all of the components that now have different content because of that change.What kind of data structure are the components in, and what sort of algorithms would be appropriate for React's code to "traverse" those components?Speculate wildly about what the Big-O time complexity of that code might be.
Components are in virtual dom tree. Appropriate algorithm might be each node tree traversal. Time complexity is most likely O(n), where n is number of nodes.

React Tic Tac Toe

Major Learning Goals/Code Review

Criteria
yes/no, and optionally any details/lines of code to reference

Demonstrates proper JavaScript coding style.
✔

Correctly passes props to child components.
✔

Correctly passes callback functions to child components and calls them to respond to user events.)
✔

Maintains the status of the game in state.
✔

Practices git with at least 6 small commits and meaningful commit messages
Please try to commit more often; it will help with group projects.

Uses existing stylesheets to render components
✔

Functional Requirements

Functional Requirement
yes/no

The Square component renders properly and executes the callback on a click event.
✔

The Board component renders a collection of squares
✔

The App component renders a board and uses state to maintain the status of the game.
✔

Utilizes callbacks to UI events to update state
✔

Overall Feedback

Overall Feedback
Criteria
yes/no

Green (Meets/Exceeds Standards)
5+ in Code Review && 3+ in Functional Requirements

Yellow (Approaches Standards)
4+ in Code Review && 2+ in Functional Requirements, or the instructor judges that this project needs special attention

Red (Not at Standard)
0-3 in Code Review or 0,1 in Functional Reqs, or assignment is breaking/doesn’t run with less than 5 minutes of debugging, or the instructor judges that this project needs special attention

Code Style Bonus Awards

Was the code particularly impressive in code style for any of these reasons (or more...?)

Quality
Yes?

Perfect Indentation
✅

Elegant/Clever
✅

Descriptive/Readable
✅

Concise

Logical/Organized
✅


Don't work with nested packages

I get errors Cannot find namespace then I use nested packages

I have proto files which I want to use to make grpc client which will work on fastify and communicate with other service on Rust:
projectname.proto
syntax = "proto3";
package projectname;

import "chain_id.proto";

message SomeRequest {
 projectname.type.UserWallet user_wallet = 1;
 optional uint32 limit = 2;
 projectname.type.ChainId chain_id = 3;
}

chain_id.proto
syntax = "proto3";
package projectname.type;

// https://chainagnostic.org/CAIPs/caip-2
message ChainId {
 string caip2id = 1;
}

and then i use gen-grpc-typing i get:
projectname.interface.ts
import type { Metadata, GrpcTimestamp, ServiceClient } from<EMAIL_ADDRESS>
export const PACKAGE_NAME = 'projectname';

export interface SomeRequest {
 userWallet: Iprojectname.type.UserWallet;
 limit?: number;
 chainId: Iprojectname.type.ChainId;
}

and other files containing error Cannot find namespace 'Iprojectname'.ts(2503)

could you share the proto folder + proto file and the config file? I will have a look

yeah, of course, i tried with files provided above and they have this structure:
/proto
  - chain_id.proto
  - projectname.proto
grpc-cli.ts

grpc-cli.ts
import type { IConfigProps } from<EMAIL_ADDRESS>
const config: IConfigProps = {
  paths: ['./proto/**/*.proto'],
  external: ['google.protobuf'],
  output: './src/protobufTypings',
};

export default config;

package.json
{
   ...
   "scripts": {
      ...
      "gen-type": "gen-grpc-typing"
   }
}

I see. When I import a proto file,  I will use the message directly UserWallet user_wallet = 1; instead of projectname.type.UserWallet user_wallet = 1;. Lemme try to handle your case. But I wonder where do you define UserWallet in your project? I need to think how to handle your case correctly

I am working on this. But it will take time because at the moment, I am busy with my work. In the meantime, try to fix it manually. I will release new version asap. Thanks for the issue

hi @beautyfree, I already published 1.1.0 for CLI to support the nested packages. Please let me know if that fixes your issue. If not, please gimme the full proto define, I will have a look at that

hi @beautyfree, if you don't have any issue, then I will close this issue for now. Feel free to reopen if you have any problem.
Thanks for this issue.


Feature/active healthchecks

Codecov Report

Merging #36 into master will increase coverage by 9.39%.
The diff coverage is 93.47%.

@@            Coverage Diff            @@
##           master     #36      +/-   ##
=========================================
+ Coverage    47.7%   57.1%   +9.39%
=========================================
  Files           4       4
  Lines         327     373      +46
=========================================
+ Hits          156     213      +57
+ Misses        171     160      -11

Impacted Files
Coverage Δ

app/test/test_ftp.py
80.86% <100%> (+8.71%)
:arrow_up:

app/ftpclient.py
92.75% <70%> (+19.87%)
:arrow_up:

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 0a81474...981f5c6. Read the comment docs.


[Event Request] report 499 "Delete Invoiced Purch. Orders" - OnBeforePurchaseLineDeleteLinks

Hello, would it be possible to add OnBeforePurchaseLineDeleteLinks event to report 499 "Delete Invoiced Purch. Orders", like this:
trigger OnAfterGetRecord()
...
                              ItemChargeAssgntPurch.SetRange("Document Line No.", PurchLine."Line No.");
                             ItemChargeAssgntPurch.DeleteAll();
                         end;
                         IsHandled := false;
>                         OnBeforePurchaseLineDeleteLinks(IsHandled); //New Event
                         if not IsHandled then
                             if PurchLine.HasLinks then
                                 PurchLine.DeleteLinks();

     [IntegrationEvent(false, false)]
     local procedure OnBeforePurchaseLineDeleteLinks(var IsHandled: Boolean)
     begin
     end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 54020.


Debug Info: Fix a bug when decoding the source file for a Clang Decl

that was defined using a Macro: Use the file of the presumed location,
not of the SourceBuffer.
rdar://problem/49181568

@swift-ci test and merge


Flickering price updates

Happens more frequently a little bit later in the video
https://github.com/get10101/10101/assets/382048/180fb149-201c-41e2-b80e-9ea2ececafe2

Yeah, this is happening in production for me.

Boy, what did we think that bid/ask are always updated together? 😬


OIDC flow consent screen shows with no requested claims (please see attached image)

In the ODIC configuration, email is a requested claim.

@nilasini , This should be due to pre-consented requested claims. Can you confirm.

@malithie Yes this issue is due to pre-consented requested claims. According to our current implementation, this is expected behavior.
Please refer [1] for more details on this.
[1] #2985 (comment)

This issue will be tracked with the doc issue [1] hence closing the issue.
[1] https://github.com/wso2/product-is/issues/2985#issuecomment-374506227


default-packages doesn't install last package in file on Mac and Raspbian 12

The command for ensuring a trailing new line in the list of default packages doesn't work in Mac and Raspbian 12. Instead it silently does nothing. This means that if you fail to put a new line in the default-packages file manually, the last package is ignored.
Notes
Command in nvm.sh:
$ echo '---'; echo -e "one\ntwo" | sed -e '$a\'; echo '---'
---
one
two
---

As an example (and not a replacement!) this is what it would look like on Mac and Raspbian 12.
$ echo '---'; echo -e "one\ntwo" | sed -e $'$a\\\n\\'; echo '---'
---
one
two

---

I'm no expert by any means, but perhaps an alternative such as while IFS="" read -r p || [ -n "$p" ] would work more broadly, and also wouldn't require rewriting the file into tmp.
Operating systems and versions:
Mac OS 14.2.1 (23C71) / nvm 0.39.7
Raspbian 12 / nvm 0.39.7

Update: After a little testing, it looks like the following command works on Raspi, but not on Mac.
Raspbian:
$ echo '---'; echo -e "one\ntwo" | sed -e '$a\\'; echo '---'
---
one
two

---

Mac:
$ echo '---'; echo -e "one\ntwo" | sed -e '$a\\'; echo '---'
---
sed: 1: "$a\\
": extra characters after \ at the end of a command
---

ok, i can definitely reproduce this, but the test in https://github.com/nvm-sh/nvm/commit/db19450caafb37734a3302b24ac9fe2cde40638d should be preventing it.
I'd definitely prefer to avoid the tempfile if possible.


In make_rst.py, include the parent class in 'Inherits:' even if it is not known.

In the rare case that a parent class has not yet been documented, it will still appear in "Inherits:", as in:

This is related to https://github.com/godotengine/godot-proposals/issues/10733: When the script is used for a gdextension codebase, the script will not be aware of the parent class. This mitigates the issue of an empty "Inherits:" notation:

Additionally, an error will now be printed through make_type, where this mistake was silently ignored before.

I ran the tool against the current codebase, at least right now it doesn't do anything different.

I ran the tool against the current codebase, at least right now it doesn't do anything different.

Yes, but we are talking about how the code should work in such a situation. You propose reStructuredText generation for user docs and documented the use of make_rst.py for this purpose. So we can't use the argument "it doesn't do anything different for the current Godot codebase", given that the PR is specifically about a situation that does not happen normally in Godot. But it can happen by mistake or in third-party projects using make_rst.py.

@dalexeev Maybe you misunderstand. This PR changes from  the second picture to the first picture. Where before, you had an empty Inherits: part, now you will at least have the name of the parent class, plus an error in the log.
A better solution for gdextension would involve referencing against and linking the official godot docs, but that's a lot more work. This is a decent hotfix for an odd situation.

By the way, NumDot Docs are not displayed correctly. Your classes are obviously not Variant types, this can be confusing for NumDot users. As far as I understand, the whole problem is that your class reference does not have Godot classes, so you get incorrect inheritance and missing links (see Variant and int).
If NDArray inherits RefCounted, then the picture is absolutely correct, you just don't have RefCounted documentation, just like you don't have Variant and int:

Ideally, you should modify make_rst.py to redirect links to Godot documentation. But this can be a lot of work, which probably won't be appropriate for our make_rst.py / godot-docs.

@dalexeev Yes, both are addressed in the latest versions of the docs: https://numdot.readthedocs.io/en/latest/classes/class_nd.html
Basically i used the changes to make_rst.py proposed in this PR to create the version with the fixed inherits. That's why i proposed them!

Yep, sorry. I agree this PR wouldn't make sense in reverse order. I'll structure it better next time!

Thanks!


Work around markdown lint bug 😭

There is a bug in the markdown linter (mdl) that causes it to error out
if a link is bolded, e.g.:
**[I am a link](https://example.com)**

https://github.com/markdownlint/markdownlint/issues/211
Having the <br/> after the link seems to stop this from happening
(maybe that's why @a-roberts added it in the first place?).
Submitter Checklist

[x] ~Includes tests (if functionality changed/added)~
[x] ~Includes docs (if user facing)~
[x] Commit messages follow commit message best practices

See the contribution guide for more details.

I0227 00:12:19.390] ============================
I0227 00:12:19.390] ==== BUILD TESTS FAILED ====
I0227 00:12:19.390] ============================
W0227 00:12:19.426] Run: ('/workspace/./test-infra/jenkins/../scenarios/../hack/coalesce.py',)
E0227 00:12:19.427] Command failed
I0227 00:12:19.427] process 458 exited with code 1 after 2.1m

what is happening

oh i see, that's unrelated
I0227 00:10:22.795] ------------------------------------
I0227 00:10:22.796] ---- Linting the markdown files ----
I0227 00:10:22.796] ------------------------------------
I0227 00:10:24.883] docs/tutorial.md:329: MD025 Multiple top level headers in the same document
I0227 00:10:24.883] docs/tutorial.md:606: MD034 Bare URL used
I0227 00:10:24.884]


Crash recovery implementation

The state machine crashes upon restarting due a to a nil pointer dereference deeming the WAL redundant. This can be reproduced by starting a node, stopping it, and then restarting it.
By tracing the state machine events it is found that the origin of the crash is et.myNewEpoch, which is uninitialised during reinitialisation and is broadcast until the target epoch reaches normal operation. This bug is therefore resolved by only broadcasting et.myNewEpoch when it is not unintialised.
After doing so however, the target epoch stops progressing.This is because the restarted node does not have the state which it should transfer to following reinitialisation. If this node obtains the necessary state and then catches up to it then crash recovery has been implemented.
A possible implementation of crash recovery is as follows:

After restarting a node will check the value of et.myNewEpoch. As it is uninitialised the node knows it has to state transfer.
The state which the node should transfer to should be that of the next epoch (relative to the current epoch of the well-behaving nodes).
Therefore the target epoch of the node enters state etPending (and not etPrepending as it lacks an epoch change to propose), where it will remain until the current epoch ends.
In this state it will wait to receive the new epoch from the primary which upon receiving it will validate using the epoch change messages it has also received from the other nodes.
If the node is the primary then the current epoch will ungracefully end (due to suspicions raised by the well behaving nodes). A new primary will then be selected by round-robin and this new primary will send the node the new epoch.
In either case after receiving the new epoch, the node will undergo state transfer following the start of the new epoch (as its highest committed sequence number will be below the starting sequence number of the new epoch) using the state within the new epoch.
The node will then either have the same state as the other well-behaving nodes, or be able to initiate further state transfers if its state is still behind.

This issue is legitimate, but concerns legacy code (on the legacy branch) and should not be expected to be fixed.


Fix broken link to grafana dashboard. (#5215)

Pull request opened by the merge tool on behalf of #5215

Merged in 1be2a0c893ddc20189c0f817ed952cbc2377a9fa


call onChange only when function has been provided

"onChange" prop is marked as NON-required function, but component always call that function without checking if it exist which causes an error, when no "onChange" function has been provided and user interacts with slider handle.

@tannerlinsley ?

This was a refactor and I was unable to merge the change in its form here. The issue is fixed in the new version though.


WIP: Fix test failures that occur with "nondex" plugin

This PR fixes several flaky tests:

There are several flaky tests in DynamicModelSerializationTest. The root cause of them is that equals() compares two HashMap<String, T> dynamicProperties in DynamicModel.
In this PR, LinkedHashMap is used instead of HashMap to resolve the ordering issue. This solution considers 2 DynamicModels are same if their elements have the same insertion order. However, the equals() function should be modified to completely resolve the ordering issue.
There are several flaky tests in RequestBuilderTest. In these tests multiple pairs of JSON strings are compared with each other.
In this PR, JSONAssert library is used to ignore the order difference when comparing 2 JSON strings.
There are a couple of flaky test in RequestUtilsTest. The root cause of them is the inconsistency when comparing 2 maps.
In this PR, the comparations are changed to match the style of other tests in the same files while ignoring the ordering issue.

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

Hi @HildoYe, could you perhaps provide more info about the environment where you are seeing test failures occur?
Which OS are you using and which version of Java, for example?
That would help me understand a bit more about how/when these failures might occur.
On our team, we typically use either Mac or Linux for development work along with Java 8, and we have not seen these "flakey" test results in the past.

Hi @HildoYe, could you perhaps provide more info about the environment where you are seeing test failures occur? Which OS are you using and which version of Java, for example? That would help me understand a bit more about how/when these failures might occur.
On our team, we typically use either Mac or Linux for development work along with Java 8, and we have not seen these "flakey" test results in the past.

The tests I've done are in Linux and Java 8. It can be reproduced with mvn -pl . edu.illinois:nondex-maven-plugin:1.1.2:nondex -Dtest=TESTNAME
List:
DynamicModelSerializationTest#testAddlPropsNull
DynamicModelSerializationTest#testAlternatePropertyNames
DynamicModelSerializationTest#testDynamicModelMethods
DynamicModelSerializationTest#testModelAPFoo
DynamicModelSerializationTest#testModelAPFooNullTypeToken
DynamicModelSerializationTest#testModelAPInteger
DynamicModelSerializationTest#testModelAPObject
DynamicModelSerializationTest#testModelAPProtectedCtor
DynamicModelSerializationTest#testModelAPString
DynamicModelSerializationTest#testNullValues
RequestBuilderTest#testBodyContent1
RequestBuilderTest#testBodyContent3
RequestBuilderTest#testBodyContentList
RequestUtilsTest#testOmitWithNulls
RequestUtilsTest#testPickWithNulls

@HildoYe did you see the unit test failures only when using your edu.illinois:nondex-maven-plugin:1.1.2:nondex plugin?
The reason I ask is that we haven't seen any actual unit test failures on Mac or Linux.
Also a bit curious about the reason for your involvement here. Are you using an IBM Cloud SDK that depends on the java core library or are you simply experimenting with the java core to exercise your maven plugin?

closing without merging as we don't plan to merge this one in...


[CARBONDATA-2347][LUCENE_DATAMAP]load issue in lucene datamap, make multiple directory based on taskId

Be sure to do all of the following checklist to help us incorporate
your contribution quickly and easily:

[x] Any interfaces changed?

[x] Any backward compatibility impacted?

[x] Document update required?

[x] Testing done
Please provide details on
- Whether new unit test cases have been added or why no new tests are required?
- How it is tested? Please attach test report.
- Is it a performance related change? Please attach the performance test report.
- Any additional information to help reviewers in testing this change.

[x] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

When the loading is triggered after creation of table and datamap , it failed with lock exception.
Analysis:
The index write location for the lucene is same, and to IndexWriter will take a lock file called write.lock in write location while writing the index files. In carbon loading the writer tasks are launched parallel and those many writers are opened,
Since the write.lock file is acquired by one writer, all other tasks will fail and dataloading will fail.
Solution
so in this PR, the write path can be configured on the fly, with task id and timestamp mapping.
Handling in reader part:
In query side, there was a single indexSearch object which does search on index file present in a single location.
Now with thsi dataload fix, there will be multiple directories which will have index files, and cannot give a single path to search object, as serch object is one.
Probable Solutions:

create those many number of search objects, as number of index file directories created in data load. and finally return all the final Blocklets.
you can have one searcher in one executor to search the local folder, this part im working how to do

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3441/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4667/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4705/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3478/

SDV Build Success , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4213/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3530/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4758/

SDV Build Success , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4263/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3551/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4778/

SDV Build Success , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4280/

SDV Build Success , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4315/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3700/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3705/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4923/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4926/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3708/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4386/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4390/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4392/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4932/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3713/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4393/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4938/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3719/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4963/

retest this please

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4967/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4419/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4976/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4426/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4427/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4428/

retest this please

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4432/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4434/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4984/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4989/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3772/

retest this please

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/4436/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3777/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4994/

retest sdv please

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5035/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3819/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3827/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5044/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3836/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5057/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5056/

retest this please

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3840/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5062/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3851/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5073/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3855/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5078/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3860/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5083/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5089/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3866/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5095/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3881/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3883/

retest this please

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3887/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3888/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5105/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3890/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5109/

retest this please

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3892/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5113/

LGTM


how to share multiple gpus?

Let's say we have job A and B.
And suppose we have two GPUs, each has 16GB memory.
Is it possible that we let job A occupy both GPUs, each 5GB memory.
And let job B occupy both GPUs, each 10GB, memory?
I think in the configuration file, we can specify "aliyun.com/gpu-mem: 5"
But how do we specify the gpu #?
Thanks,
Meng

Never mind it should be aliyun.com/gpu-count

Hello,
Did you manage to make it work with aliyun.com/gpu-count?
Because from #10 it seems not possible. I tried to do the same thing but I can't make it work.
Do you have any advice?
Thank you very much,
Michele

Hello,
Did you manage to make it work with aliyun.com/gpu-count? Because from #10 it seems not possible. I tried to do the same thing but I can't make it work. Do you have any advice?
Thank you very much,
Michele

I don't think it's possible by using their tool.
Their allocation is based on memory value only: https://github.com/mengwanguc/gpushare-scheduler-extender/blob/878b6fde505d6e11fd15ef4fdcc67091b6d6323a/pkg/cache/nodeinfo.go#L147
If we want to make it possible, we must hack their code for our needs.


Image reEdit is not working. it not show old image. Its show camera view. I just change UIImageView.init(frame:self.bounds)

*** First throw call stack:
(0x191b991b8 0x1905d055c 0x191b9908c 0x19265102c 0x1002db5c0 0x1002db920 0x1002db9fc 0x1002dc254 0x100d7d258 0x100d7d218 0x100d8aaec 0x100d80ce0 0x100d8b088 0x100d8ce2c 0x100d8cb78 0x190c2b2a0 0x190c2ad8c)
libc++abi.dylib: terminating with uncaught exception of type NSException When I choice old video and click public_button .

well, you can trying the last commit.I think it have been sovled. and thanks your feedback

Thank you, I think this is best source code for everyone.


Incoherent colors and class names

Hi,
Since version 4.5, badge and background colors changed.
These components now use Orange Supporting colors instead of Orange Functional colors.
The CSS classe names, are still the same, they look like *-danger, *-warning, etc.
The first problem : now there is a color incoherence with other classes with similar names.
The other problem is the meaning of the class names do not correspond with the color.
Example :

badge-danger and background-danger are now in pink (#ffb4e6)
BUT border-danger, btn-danger, alert-danger are still in red (#cd3c14)
How something called danger be in pink ?

Can we have an harmonization of colors ?
Like keeping all standard bootstrap classes in Orange Functional colors and adding few classes for Supporting colors ?
Regards,
Olivier

Just pasting my first answer here for tracking, question asked to the brand to decide if we stick to the current state or if we follow your suggestion and provide both color set.

As explained in Orange's Web Browsing Guidelines:

Functional colours can be used for certain functions in places where there are strongly established conventions. Functional colours are associated with specific meanings:

Green for success.
Blue for information and discovery.
Yellow for warning or alert.
Red for critical.

Badges are mostly used for tags (e.g. categories in a CMS) or flags (e.g. "NEW" in a product title), unrelated to the specific meanings attached to functional colors. Supporting colors are meant to be used as background, so here they are.
Regarding naming, please keep in mind that Boosted is built on top of Bootstrap: we don't rename Bootstrap components nor do we rename their variants.

Just pasting my first answer here for tracking, question asked to the brand to decide if we stick to the current state or if we follow your suggestion and provide both color set.

As explained in Orange's Web Browsing Guidelines:

Functional colours can be used for certain functions in places where there are strongly established conventions. Functional colours are associated with specific meanings:

Green for success.
Blue for information and discovery.
Yellow for warning or alert.
Red for critical.

Badges are mostly used for tags (e.g. categories in a CMS) or flags (e.g. "NEW" in a product title), unrelated to the specific meanings attached to functional colors. Supporting colors are meant to be used as background, so here they are.
Regarding naming, please keep in mind that Boosted is built on top of Bootstrap: we don't rename Bootstrap components nor do we rename their variants.

Hi there,
Got an answer from our brand:

regarding badges, functional colors should be used . Badges are in UI Kit's backlog and considered as functional components, so my interpretation of the Web Browsing Guidelines was wrong here.
regarding backgrounds, functional colors are strictly forbidden: what can be done here is to keep the current naming (to keep Bootstrap interoperability) but also alias those to use color related naming (and add those to the docs, obviously).

Let's go!

Hi there,
Got an answer from our brand:

regarding badges, functional colors should be used . Badges are in UI Kit's backlog and considered as functional components, so my interpretation of the Web Browsing Guidelines was wrong here.
regarding backgrounds, functional colors are strictly forbidden: what can be done here is to keep the current naming (to keep Bootstrap interoperability) but also alias those to use color related naming (and add those to the docs, obviously).

Let's go!

Hi,
Thanks a lot for badges, it will be better for our team.
Regarding to backgrounds : I understand that a global background in a Functional color is forbidden, but :

CSS classes of background can be used for some custom functional component (background-* classes can be applied anywhere in a html template)
because of the class names, if background keep Supporting color but use functionnal names (eg. *-danger) it will be confusing.

So, can you re-evaluate my proposal : keep all standard bootstrap classes in Orange Functional colors and adding few classes for Supporting colors ?
Thanks again,
Olivier

Hi,
Thanks a lot for badges, it will be better for our team.
Regarding to backgrounds : I understand that a global background in a Functional color is forbidden, but :

CSS classes of background can be used for some custom functional component (background-* classes can be applied anywhere in a html template)
because of the class names, if background keep Supporting color but use functionnal names (eg. *-danger) it will be confusing.

So, can you re-evaluate my proposal : keep all standard bootstrap classes in Orange Functional colors and adding few classes for Supporting colors ?
Thanks again,
Olivier

As I said, functional colors are forbidden for background. And I can't obviously drop background utilities with functional names for backward compatibility. The best I can do here is to un-document background utilities with functional names and only document those with supporting color names.
But .bg-danger would still be pink, and there's not much I can do for it.
FWIW, naming consistency cannot be a requirement in Boosted since naming mostly comes from Bootstrap and is not meant to be consistent with our Web UI Kit.

As I said, functional colors are forbidden for background. And I can't obviously drop background utilities with functional names for backward compatibility. The best I can do here is to un-document background utilities with functional names and only document those with supporting color names.
But .bg-danger would still be pink, and there's not much I can do for it.
FWIW, naming consistency cannot be a requirement in Boosted since naming mostly comes from Bootstrap and is not meant to be consistent with our Web UI Kit.

As I said, functional colors are forbidden for background.

But buttons (an badges in the future) have functional color for background !

naming consistency cannot be a requirement in Boosted

How can we use a library where one suffix name is corresponding to two colors ?
And where that two colors have two different meaning !
Sorry, but it breaks all (my) logic.

As I said, functional colors are forbidden for background.

But buttons (an badges in the future) have functional color for background !

naming consistency cannot be a requirement in Boosted

How can we use a library where one suffix name is corresponding to two colors ?
And where that two colors have two different meaning !
Sorry, but it breaks all (my) logic.

Well, to quote directly the answer I had:

We do not currently use the functional colours as a general background colour. We only use them for components, icons or possibly data displays. You can use supporting colours as background colour for illustrations or info graphics.

At the moment, the only cases were functional colors are appropriate as backgrounds are components delivered in the Web UI Kit. In other words, there's no case in Boosted where someone should need functional color as background, since Boosted should have implemented every case in its core components.
It's not a matter of logic, you need to understand the constraints around this whole project: we're implementing Orange brand Web UI Kit and staying backward compatible with Bootstrap. It's obviously not always consistent.
As I said, what I'm about to do is to un-document background utilities using success et all and replace them with more consistent naming. However Bootstrap classes still need to work.

Well, to quote directly the answer I had:

We do not currently use the functional colours as a general background colour. We only use them for components, icons or possibly data displays. You can use supporting colours as background colour for illustrations or info graphics.

At the moment, the only cases were functional colors are appropriate as backgrounds are components delivered in the Web UI Kit. In other words, there's no case in Boosted where someone should need functional color as background, since Boosted should have implemented every case in its core components.
It's not a matter of logic, you need to understand the constraints around this whole project: we're implementing Orange brand Web UI Kit and staying backward compatible with Bootstrap. It's obviously not always consistent.
As I said, what I'm about to do is to un-document background utilities using success et all and replace them with more consistent naming. However Bootstrap classes still need to work.

I understand that's not your decision and that you do your best.
I remain disagree with it and I hope it won't affect usability of the Boosted library.
Thank you for your time.
Regards
Olivier

I understand that's not your decision and that you do your best.
I remain disagree with it and I hope it won't affect usability of the Boosted library.
Thank you for your time.
Regards
Olivier


Not working with FullCalendar v2.6.1

Same issue as before, the coordmap is removed so I changed the 2 lines to
that.prepareHits();
var cell = that.queryHit(ev.pageX, ev.pageY);
Now cell is undefined.

same for me :(

I just released a new version (1.7) that fixes this.


Example app: add a data type picker to number screen.

Selectable values should include:

Decimal
Double
Int
Int8
Int16
Int32
Int64
UInt
UInt8
UInt16
UInt32
UInt64

Optionality should be picked separately, using the current method.

It’s a low priority addition, but I think it would be nice for showcase purposes.


Unfortunately, your changes have been partially reverted in adb4fd3d4294ec715a1b7e239ed56c0e1d9c6bd0.


fix(login): ldap login page js file not found

Which Problems Are Solved

fix ldap login page js file not found

Hey @Yxnt
Thank you for the fix. We'd like so send you a small gift in return. Please reach out to<EMAIL_ADDRESS>


Default editor

I am using UBUNTU and found an issue when i want to edit some files like PHP, CSS, HTML and JS from FTP (FireFTP - FireFox AddOns) which are already set open in Bracket.
but when i click on edit the file is not opening with bracket i need to set the folder tmp (there is too much unnecessary files.) Make it like Sublime Text editor when ever i open the files its not require to open from selected folder. Please add new Menu with Close Folder.

May be you can mount ftp as drive with native linux utils or with fuse. Then edit the files from disk.
This will solve the problem. With mount SFTP - everything works fine.


PR #1097 breaks deployment

Not sure if this is a bug for me based on my setup, or a bug in general. Unless there's something super funky with my setup, I can't see this working for anyone.
PR #1097 changed the task deploy:symlink:release to:
task :release do
    on release_roles :all do
        tmp_current_path = release_path.parent.join(current_path.basename)
        execute :ln, '-s', release_path, tmp_current_path
        execute :mv, tmp_current_path, current_path.parent
    end
end

During deployment, the following paths are present:
(byebug) release_path
#<Pathname:/home/deploy/rails/app_1/releases/20150318194322>
(byebug) release_path.parent
#<Pathname:/home/deploy/rails/app_1/releases>
(byebug) current_path
#<Pathname:/home/deploy/rails/app_1/current>
(byebug) current_path.basename
#<Pathname:current>
(byebug) current_path.parent
#<Pathname:/home/deploy/rails/app_1>

Which ends up trying to execute:
/usr/bin/env ln -s /home/deploy/rails/app_1/releases/20150318194322 /home/deploy/rails/app_1/releases/current
/usr/bin/env mv /home/deploy/rails/app_1/releases/current /home/deploy/rails/app_1

Which fails with
mv: cannot overwrite directory ‘/home/deploy/rails/app_1/current’ with non-directory

Before the PR, it would have:
/usr/bin/env rm -rf /home/deploy/rails/app_1/current
/usr/bin/env ln -s /home/deploy/rails/app_1/releases/20150318194322 /home/deploy/rails/app_1/current

I have a multi-passenger app setup using Apache. There is one vhost with a DocumentRoot of /var/www/html. Each app's public folder is already symlinked into that folder:
$ ls -Al /var/www/html
total 8
-rw-r--r-- 1 root root 1234 Mar 17 12:48 index.html
lrwxrwxrwx 1 root root   43 Mar 17 12:47 ridepilot -> /home/deploy/rails/app_1/current/public
-rw-r--r-- 1 root root   26 Mar 17 11:58 robots.txt

I have deploy/staging.rb configured as such:
set :branch, 'my_feature'
set :rvm_ruby_version, '2.2.0@app_1'
set :deploy_to, '/home/deploy/rails/app_1'
set :rails_env, 'staging'
server 'apps.my-host.org', roles: [:app, :web, :db], user: 'deploy'

Aaaaaaaaaaaaand...  user error. I had setup /home/deploy/rails/app_1/current/public as physical directories so that I could setup the symlink in Apache. deleted them, and it worked.

i am having same issue? can you please tell me how you fixed it? I can't seem to figure it out.

@bogdanRada Just make sure any directory that Capistrano is going to try to symlink to doesn't exist as a physical directory. That should probably also go for any file or directory you added to the :linked_files or :linked_dirs config option.

same issue on the last 3.5 version, it's so weird to move symlink somewhere.. 😬

Ahh yes, forgot to update this thread, but suggestion from @chrisbloom7  really helped me and i fixed this a long time ago :) Maybe you can try same thing @milushov  and see if that works. For me it did the trick :)

I ran into the same issue running 3.11.0, together with capistrano/maintenance 1.2.0. I managed to resolve it by, after a failed deploy, deleting the mysite/current directory and running ln -s mysite/releases/VERSION mysite/current and redeploying.

My hoster Nine.ch creates the folder current/public when creating a new virtual host. That's why the folder exists already. I have to manually remove it ($ rm -rf current), so the deployment works.