Fix GraphQL query sent with hierarchical nodes

This looks good to me, it might be a bit weird that we start to use fragments without actually requesting fragments.
I.e. even if someone did this:
from infrahub_sdk import InfrahubClientSync

client = InfrahubClientSync()
nodes = client.all(kind="LocationSite", prefetch_relationships=True, populate_store=True, fragment=False)

We'd still use fragments which might seem confusing. Having said given how these hierarchial models work I think it's a good compromise and most users wouldn't care about the fact that these objects require fragments. Thoughts @gmazoyer?
It would be good to have a pipeline complete with this change in the main infrahub repo. Can you open a PR there that updates the submodule to this commit?

We'd still use fragments which might seem confusing. Having said given how these hierarchial models work I think it's a good compromise and most users wouldn't care about the fact that these objects require fragments. Thoughts @gmazoyer?

Actually the idea of using a fragment came up during our quick sync with. We thoughts that going down that path would simplify the code (instead of going through several if clauses) and probably would not hurt the user in the process. So I agreed with Lucas' choice, and thought it was a pretty good idea.

Main infrahub repo related PR: https://github.com/opsmill/infrahub/pull/5023


Use IntrusivePointer to manage TilesetContentManager and raster overlay lifetime

Before this PR, if a Tileset was destroyed while async requests/loading were in progress, the destructor would block until all the async work wrapped up and then actually do the destruction. This was necessary because parts of the async pipeline would write to e.g. Tile, and so we can't have that Tile go away while the operation is in progress or we'd get undefined behavior.
There were two problems with this approach, though:

It would cause a freeze, potentially for hundreds or thousands of milliseconds. So removing a Tileset mid-game, for example, wouldn't go very well.
It relied on HTTP requests and background tasks continuing to make progress even while blocking in the destructor. This creates some weird reentrancy in the best case, and in some environments in might not really even be possible.

So this PR switches to a different approach, originally suggested by @baothientran. Tilesets can now be destroyed at any time, and the destructor will never block. It will also unload a) all renderer resources associated with every tile, b) all tile content that is not currently being used by an async operation. Later, when the async operations complete, the remaining tile content will be unloaded.
This is implemented by making TilesetContentManager reference counted, rather than strictly owned by the Tileset. When the load pipelines are idle, only the Tileset's single reference to the TilesetContentManager exists. But each async operation also counts as a reference to the TilesetContentManager. So while the Tileset is destroyed immediately, the TilesetContentManager will stick around until the last async operation finishes, and then it will be destroyed.
For Unreal (and probably others), it is essential to unload the renderer resources at Tileset destruction time, rather than at the arbitrarily-later TilesetContentManager destruction. The reason is that when we switch levels, all UObjects are garbage collected and destroyed, including the UCesiumGltfComponents created to render tiles, which are the "renderer resources" given to cesium-native. If we defer the freeing of these renderer resources until later, the level will have already unloaded, and so the pointers to the UCesiumGltfComponents will be invalid. When we try to use them - even just to release them - we'll crash. We can't extend their lifetime, either. Unreal Engine will complain loudly (i.e. raise a fatal error that causes the process to die) if any UObjects outlive the level. So the only real option is to ensure that they are freed before the Tileset destructor returns.
So that is why the Tileset destructor unloads all tiles even though the TilesetContentManager lives on. However, we still have the problem of the two types of tiles that cannot be unloaded:

Tiles that are in the ContentLoading state. An async pipeline is currently working on these, and that pipeline culminates in the content being set on the tile, the worker thread renderer resources being created, and the tile state changing to ContentLoaded. We assume that these worker thread renderer resources are not problematic to exist or create after Tileset destruction, which is definitely true in Unreal, at least (because it is illegal to create/destroy/use UObjects anywhere other than the game thread).
Tiles that are in the Done state but that have children that are being upsampled from this tile's data. These tiles are more problematic because they, being in the Done state, have main thread renderer resources created already. Luckily we don't need these renderer resources for upsampling, we only need the cesium-native-side tile content.

Ok, so, we want to unload the main thread renderer resources for tiles in category (2), but not the normal tile content (because it's still in use). That's pretty easy to do in principle, but makes things complicated from a tile state machine perspective, because there's no such state. The states are as follows:

Unloaded: no content, no renderer resources
ContentLoaded: has content, has worker thread renderer resources
Done: has content, has main thread renderer resources
This funny new state: has content, has no renderer resources

We can't derive worker thread renderer resources from main thread renderer resources (we can only go the other way), so once we free the main thread renderer resources, the Tile is stuck in a broken state. There's no way to get it renderable again other than by unloading the whole thing and starting over.
Now, one could argue that the state of the Tiles doesn't make much difference, because we're shutting down the whole Tileset anyway. Which is true, but this weird implicit state is still an easy source of bugs. Plus it's nice if Tileset destruction can just do a normal Tile unload rather than a special, might-leave-the-tile-broken unload.
So that's why this PR introduces a new TileLoadState: Unloading. Tiles in this state can transition back to Unloaded over multiple calls to unloadTileContent, and this method is called automatically by updateTileContent for tiles in this state. Once the tile is fully unloaded, it can be reloaded as normal. In addition to fixing the Tileset shutdown problem, this means that even tiles that are being used as a source for upsampling can be partially unloaded, which is nice.
I should mention that Bao had the interesting idea to store tile content using a thread-safe copy-on-write mechanism. That way an upsample operation can "view" the parent tile content, but if it changes (e.g. is unloaded!), the original is still available for use by the upsample thread. I like it, but worry the cost (in terms of heap allocations and atomic operations) might be a bit high. And also, in the general case, when a parent tile's glTF is modified (not just unloaded), we probably need to propagate that change to upsampled children, not just stick with the original snapshot. Still, it's worth investigating. I've just chosen not to do so here because I think it's a much bigger and riskier change than is implemented in this PR.
Raster Overlays
Raster overlays have a similar situation. While an async RasterOverlayTile load is in progress, we must avoid deleting:

That RasterOverlayTile
The RasterOverlayTileProvider that created the tile.
The RasterOverlay that created the tile provider.

However, we would like to be able to remove a RasterOverlay and have it disappear immediately, even if async loads are in progress. This already worked before this PR, but it was complicated. Now it's... still complicated. But hopefully a bit less so.
The RasterOverlayCollection is owned by the TilesetContentManager, so a RasterOverlayCollection can be deleted at any time, even while an overlay is creating a tile provider or a tile provider is loading a tile. The lifetime relationships are as follows:

RasterOverlayCollection holds an intrusive pointer to all of its overlays, their corresponding placeholders, and their actual tile providers (once they're created).
RasterOverlayCollection holds all of the above information in a private OverlayList struct, which is reference counted. The RasterOverlayCollection holds an intrusive pointer to this, and async tile provider creation operations also hold a reference to it so that they can store the created tiled provider. The OverlayList may outlive the RasterOverlayCollection that created it.
While a RasterOverlayTile is loading, the async load operation holds an intrusive pointer to both the tile being loaded and the tile provider doing the loading.
RasterOverlayTileProvider holds an intrusive pointer to the RasterOverlay that created it.

When the RasterOverlayCollection is destroyed, all overlays are removed. When an overlay is removed, the corresponding overlay tiles are immediately removed from all geometry tiles, and then the intrusive pointers to the overlay, tile provider, and placeholder are all dropped. This will usually result in them all being destroyed, though they may stick around a bit longer if there are any async operations (tile provider creation or tile load) in progress.
Other smaller changes:

RasterOverlay knows how to create a RasterOverlayTileProvider (or a placeholder), but it no longer maintains a reference to it. It's just a factory.
RasterOverlay::createTileProvider is now const. Fixes #478

I'm marking this ready to review, and it is, but probably best not to merge it until after the October Cesium for Unreal release.

I really like this change @kring! Thanks for the detailed write-up as well, it made it much easier to understand this change.
I couldn't find any obvious leaks or issues in actual testing, but I did have one concern about this change - particularly regarding this part of the write-up:

...two types of tiles that cannot be unloaded:

Tiles that are in the ContentLoading state. An async pipeline is currently working on these, and that pipeline culminates in the content being set on the tile, the worker thread renderer resources being created, and the tile state changing to ContentLoaded. We assume that these worker thread renderer resources are not problematic to exist or create after Tileset destruction, which is definitely true in Unreal, at least (because it is illegal to create/destroy/use UObjects anywhere other than the game thread).
...

This may no longer be true in Unreal after we added asynchronous RHI texture creation right? Suppose Unreal's shutdown procedure is something like:
1. Stop ticking
2. GC / destroy all UObjects
3. Flush render thread tasks (resource release tasks queued up by destructing UObjects)
4. Shutdown render thread
5. Shutdown RHI (maybe a separate flushing has to happen first to sync render thread and RHI)

This may be completely made up - it is only from my partial understanding of the resource dependencies across the threads and some guessing... But if this is the case, the only chance we have to safely destroy render resources is during step 1), by waiting for worker thread tasks to resolve. Previously we did not actually create proper render resources from the worker thread, so it was safe to shutdown the renderer before background tile loading completed. Now I think we need to wait for async render resource creation to finish right?
Again, don't know if this is a real concern. But if so, then RHI resource creation on the worker thread might hypothetically fail on renderer-shutdown, we would just get a crash-on-exit. If we are just refreshing the tileset however, then:

The resource creation will be successful (since the renderer will be alive)
So all pending tiles at the time of Tileset destruction will eventually get to ContentLoaded
At which point the TileContentManager destructor will run.
Which will unload all those pending tiles from the ContentLoaded state
This will release all render resources, which should again be safe since the renderer is alive in this case.

It's very possible I missed a detail though, fwiw I haven't actually seen any such crash on exit so far.

That's a good point @nithinp7! To test it, I tried adding FPlatformProcess::Sleep(5.0f); to the top of loadTextureAnyThreadPart, started up the Editor, let some tiles load a bit, and then exited the Editor. This pretty much guaranteed that the load threads would try to do load work after the Editor shutdown process was well underway.
And it did indeed cause a crash, but not where I expected. It crashed (consistently) because PhysX had been uninitialized by the time we were trying to bake physics meshes. So, I think you're right: we need to do a bit more to ensure an orderly shutdown.
After thinking about this for a bit, I eventually remembered that Unreal already has a built-in process for asynchronously destroying UObjects: IsReadyForFinishDestroy. So, I extended cesium-native to raise an event (in the form of a SharedFuture) when a Tileset is destroyed, all async work is completed, and all tiles are unloaded. And I used this on the Unreal side to make IsReadyForFinishDestroy only return true after everything has cleaned up completely. This avoids the crash on exit (because Unreal waits for the async work before shutting everything down), but it still avoids blocking the main thread when we delete Tilesets.
I added it in #563 and https://github.com/CesiumGS/cesium-unreal/pull/958, not in this branch.
I think we still need a similar system for RasterOverlays, but I'm curious what you think of this first.

I like the idea and I'm glad we can still keep tileset destruction free of blocking! Just checking my understanding (let me know if I'm misunderstanding any part of this):
So in Unreal IsReadyForFinishDestroy returning false should keep the game systems running - so loading should continue to be safe. Unreal polls IsReadyForFinishDestroy which dispatches main thread tasks in the async system and checks the "tilesetsBeingDestroyed" counter. The dispatched main thread tasks include progressing finished tile loads into ContentLoaded, decrementing the TilesetContentManager reference count, and destroying the TilesetContentManager if the reference count is 0. Lastly, a main thread task is needed to check whether the in-progress-loads-finished promise has been resolved, and decrement the "tilesetsBeingDestroyed" counter in the Cesium for Unreal tileset if so. Once that counter is 0, IsReadyForFinishDestroy will return true, letting the Unreal tileset get destroyed - and letting Unreal shutdown its game systems if wanted without disrupting pending loads.
This looks perfect in Unreal and seems to work as expected! So no objections from me to continue this approach for raster overlays as well!

That's exactly right @nithinp7, good explanation! And thanks for reviewing it.  I'll implement it for raster overlays now, too.

@nithinp7 I've fixed the two problems we talked about offline in this branch:

Cesium ion token refresh for quantized mesh tiles
The token troubleshooting panel wasn't popping up for tilesets (only raster overlays). This also exists in Cesium for Unreal v1.18.0.

Thanks @kring this looks solid to me! And thanks for fixing those two bugs as well!


Use pydantic for configuration management

To align better with the recent change that bot has witnessed, we've decided to also migrate the rest of the bot to use the same schema/package.

Note: Some classes are not configurable, so they were left as is, but that can be easily changed if we want.

The following is a list of all env variables we'd need to update @python-discord/devops
CHANNEL_DEVLOG -> channels_devlog
CHANNEL_COMMUNITY_BOT_COMMANDS -> channels_sir_lancebot_playground
CHANNEL_REDDIT -> channels_reddit
PREFIX -> client_prefix
FILE_LOGS -> logging_file_logs
BOT_TRACE_LOGGERS -> logging_trace_loggers
BOT_ADMIN_ROLE_ID -> roles_admin
ROLE_HELPERS -> roles_helpers

GIPHY_TOKEN -> tokens_giphy
AOC_SESSION_COOKIE -> tokens_aoc_session_cookie
OMDB_API_KEY -> tokens_omdb
youtube -> tokens_youtube
TMDB_API_KEY -> TMDB_API_KEY
NASA_API_KEY -> tokens_nasa
IGDB_CLIENT_ID -> tokens_igdb_client_id
IGDB_CLIENT_SECRET -> tokens_igdb_client_secret
GITHUB_TOKEN -> tokens_github
UNSPLASH_KEY -> tokens_unsplash
WOLFRAM_API_KEY -> tokens_wolfram

USE_FAKEREDIS -> redis_use_fakeredis

Chiming in for devoops. Aside from the tokens, all the other constants should be given defaults within the app itself.

Chiming in for devoops. Aside from the tokens, all the other constants should be given defaults within the app itself.

Which constants are lacking defaults here ? Aside from the tokens, the Reddit, Redis, Logging are the ones that have attributes without defaults, and they're all secrets, except for the Logging one.

I’m going off the content of the PR message. If those already have constants added, this PR doesn’t need to do anything further.

I’m going off the content of the PR message. If those already have constants added, this PR doesn’t need to do anything further.

Ah, those need to be updated in our pods/cluster. (I want to assist when it's going to be done)

I see, you're welcome to take this on. The production environment only contains tokens and other secret values, no channels or roles.

More general question, do we actually need dotenv as a package too?
docker compose loads from the .env files already, and so does poetry run ...

Hum, good question. Since docker loads them as env variables, there shouldn't be a need to include it. We'll test it out tonight.

It’s still valuable for anyone running outside poetry, is there a downside to including it?

It’s still valuable for anyone running outside poetry, is there a downside to including it?

Dear Scaleios,
Thank you for reaching out to us regarding running our bot. Please be advised that we do not support running our bot outside of either Poetry or Docker.
Poetry is a tool for dependency management and packaging in Python that we use to manage our bot's dependencies. Docker, on the other hand, is a containerization platform that allows us to package our bot and all its dependencies into a single container for easy deployment.
While we understand that there may be other ways to run our bot, we strongly recommend using either Poetry or Docker to ensure that all dependencies are properly managed and to minimize any potential issues that may arise from running the bot outside of these environments.
If you have any further questions or concerns, please don't hesitate to let us know.


Don't return error object in response

Return a valid error

Need to reproduce

Hey hello @ChaituVR what's the status here? 🙏


Release Viewer

Hi, thanks for this amazing work!
When do you plan to release the viewer for Spec-Gaussian?

Hi, thanks for your interest.
We have not yet developed a viewer corresponding to Spec-Gaussian. If this paper can be accepted in the future, we will consider developing a viewer.


Prepare release 3.2.0

@yunbodeng-db it will allow users to use newer pyarrow version if they need

I'd really like to get the pandas pin relaxed too for the next release: https://github.com/databricks/databricks-sql-python/issues/342

Thrift is getting an update as well https://github.com/databricks/databricks-sql-python/commit/7ff60935cd9dc05f4dfb7a25dd6313da87bba68b


perf: add Factories::get()

Description
See https://github.com/codeigniter4/CodeIgniter4/issues/6889#issuecomment-1974170688

add method to get the shared instance fast.

Benchmark
Test 			Time 	Memory
config() 		0.5684 	0 Bytes
factories::get() 	0.1305 	0 Bytes

<?php

namespace App\Controllers;

use CodeIgniter\Config\Factories;
use CodeIgniter\Debug\Iterator;

class Home extends BaseController
{
    public function index(): string
    {
        $iterator = new Iterator();

        $iterator->add('config()', static function () {
            $config = config('App');
        });

        $iterator->add('Factories::get()', static function () {
            $config = Factories::get('config', 'App');
        });

        return $iterator->run(30000);
    }
}

Profiling
Before:

After:

Environment
$ php -v
PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.14, Copyright (c), by Zend Technologies

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS"

$ apache2 -v
Server version: Apache/2.4.52 (Ubuntu)
Server built:   2023-10-26T13:44:44

Checklist:

[x] Securely signed commits
[ ] Component(s) with PHPDoc blocks, only if necessary or adds value
[ ] Unit testing, with >80% coverage
[ ] User guide updated
[ ] Conforms to style guide

Have you compared using the current config() method, with a version of it that uses Factory::get('config') to see the difference?
I find the helper method config() much more readable and pleasant and what I'd prefer to ask users to use if it makes sense. I'm assuming it speeds it up quite a bit since the big boost is the callStatic method in Factory, right? And as it stands, assuming the config file is used say 1000 times in a page load for an app, we're only looking at 0.000143 second increase with the proposed changes. While I think any performance boost is good, if the a modified config() call is close to the same speed I would prefer to stay with that.

I am agree with @lonnieezell, we already introduces config() to get variable config using feature Factories release

Indeed, the performance improvement in the Welcome page benchmark in this PR was very small. The numbers are so varied that it is hard to tell if there is any real improvement.
However, the performance of Factories should have improved as seen in the profiles.
It might be certainly better to use config(), although there is the overhead of a function call.
That way, the config() implementation can be replaced by another container or something.
However, DI containers, service locators, whatever, they cannot make the framework faster. They can only slow it down. So even if we improve that, it seems impossible to keep up with CI3.


Simplify host check

Just a simple change that caught my eye. No need to return explicit booleans, the check returns the desired values already.

You are completely right! I was writing quickly and just trying to think through it. Thank you!


Silver Ore requires Iron to mine, should require Stone tool.

Silver Ore should be soft. Wiki is correct, not the code. Fix this.

Note to self: cause is wrong tag--should be "needs_stone_to_mine", not "needs_iron_to_mine".

Fixed by commit d943fb6


Notify Harbormaster for non-differential builds

Now it's ignored:

[phabricator:non-differential] Coverage result not found. Ignoring build.

It would be nice to have it for diffusion to show build results.

Yup, out workflow at Uber doesn't utilize this but this seems like a generally useful and easy to implement feature.

Can you clarify how you're triggering these jenkins jobs?

It's a herald rule for commits. It runs build plan which triggers job in jenkins. Job triggered with parameters GIT_COMMIT=${buildable.commit}&PHID=${target.phid}

I have the following herald rules setup on my test server.

When I make a new commit it does start a build.

And the Jenkins log does show the build:
Started by user Phabricator
Building in workspace /var/lib/jenkins/jobs/Test/workspace
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url http://p.fstab.net/diffusion/T/test.git # timeout=10
Fetching upstream changes from http://p.fstab.net/diffusion/T/test.git
 > git --version # timeout=10
using .gitcredentials to set credentials
 > git config --local credential.username jenkins # timeout=10
 > git config --local credential.helper store --file=/tmp/git8096642345063786895.credentials # timeout=10
 > git -c core.askpass=true fetch --tags --progress http://p.fstab.net/diffusion/T/test.git +refs/heads/*:refs/remotes/origin/*
 > git config --local --remove-section credential # timeout=10
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision bb711d40fdcaf2b809f8e0fce4bcfcf0b2a89d5f (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f bb711d40fdcaf2b809f8e0fce4bcfcf0b2a89d5f
 > git rev-list 41e245b1706ed2ee75830f7a39c2933944903fba # timeout=10
[phabricator:ignore-build] No differential ID found.
[workspace] $ /bin/sh -xe /tmp/hudson2902405382799744766.sh
+ make
mkdir -p results
echo 'Direct commit - 3' > results/test
Archiving artifacts
[phabricator:non-differential] Coverage result not found. Ignoring build.
Finished: SUCCESS

This is in contrast to a differential triggered build which does respond to the build request and close it.
Started by user Phabricator
Building in workspace /var/lib/jenkins/jobs/Test/workspace
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url http://p.fstab.net/diffusion/T/test.git # timeout=10
Fetching upstream changes from http://p.fstab.net/diffusion/T/test.git
 > git --version # timeout=10
using .gitcredentials to set credentials
 > git config --local credential.username jenkins # timeout=10
 > git config --local credential.helper store --file=/tmp/git5505462600999545426.credentials # timeout=10
 > git -c core.askpass=true fetch --tags --progress http://p.fstab.net/diffusion/T/test.git +refs/heads/*:refs/remotes/origin/*
 > git config --local --remove-section credential # timeout=10
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 4473ea55aa39b66c45c9071e270d3fe4677963b6 (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 4473ea55aa39b66c45c9071e270d3fe4677963b6
 > git rev-list 4473ea55aa39b66c45c9071e270d3fe4677963b6 # timeout=10
[phabricator:conduit] Fetching differential from Conduit API
[workspace] $ git reset --hard 4473ea55aa39b66c45c9071e270d3fe4677963b6
HEAD is now at 4473ea5 Testing differential
[workspace] $ git clean -fd -f
Removing results/
[workspace] $ git submodule update --init --recursive
[workspace] $ /var/lib/phabricator/arcanist/bin/arc patch --nobranch --diff 10 --nocommit ********
Checking patch makefile...
Applied patch makefile cleanly.
 OKAY  Successfully applied patch.
[workspace] $ /bin/sh -xe /tmp/hudson7389794144036638857.sh
+ make
mkdir -p results
echo 'Test 2 - D2-1' > results/test
Archiving artifacts
[phabricator:process-build-result] No line coverage found, skipping...
[phabricator:process-build-result] No unit results available.
[phabricator:process-build-result] No coverage provider available.
[phabricator:harbormaster] Sending Harbormaster BUILD_URL via PHID: PHID-HMBT-2ianqbrzd4ero25fxqik
[phabricator:process-build-result] Sending build result to Harbormaster with PHID PHID-HMBT-2ianqbrzd4ero25fxqik, success: true
[phabricator:comment-file] no files found by path: '.phabricator-comment'
Finished: SUCCESS

Thanks for the info! I think I have a plan to modify the logic.
The part where it gets tricky is that a lot of the code is built around the
idea that we can submit a comment (for the differential), but Conduit
doesn't contain methods to comment on Diffusion. So all you'll get back is
a build status. Is that sufficient for your needs?
On Mon, Nov 23, 2015 at 5:21 AM, Kyle Altendorf<EMAIL_ADDRESS>wrote:

I have the following herald rules setup on my test server.
[image: image]
https://cloud.githubusercontent.com/assets/543719/11337085/39f7a28c-91b8-11e5-81c9-723dc21855e7.png
[image: image]
https://cloud.githubusercontent.com/assets/543719/11337076/2939b250-91b8-11e5-8e56-9682fdda54ff.png
When I make a new commit it does start a build.
[image: image]
https://cloud.githubusercontent.com/assets/543719/11337171/da343044-91b8-11e5-85b2-041e26c7a50c.png
[image: image]
https://cloud.githubusercontent.com/assets/543719/11337205/2fb274b8-91b9-11e5-8194-65506d0b5406.png
And the Jenkins log does show the build:
Started by user Phabricator
Building in workspace /var/lib/jenkins/jobs/Test/workspace

git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
git config remote.origin.url http://p.fstab.net/diffusion/T/test.git # timeout=10
Fetching upstream changes from http://p.fstab.net/diffusion/T/test.git
git --version # timeout=10
using .gitcredentials to set credentials
git config --local credential.username jenkins # timeout=10
git config --local credential.helper store --file=/tmp/git8096642345063786895.credentials # timeout=10
git -c core.askpass=true fetch --tags --progress http://p.fstab.net/diffusion/T/test.git +refs/heads/:refs/remotes/origin/
git config --local --remove-section credential # timeout=10
git rev-parse refs/remotes/origin/master^{commit} # timeout=10
git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision bb711d40fdcaf2b809f8e0fce4bcfcf0b2a89d5f (refs/remotes/origin/master)
git config core.sparsecheckout # timeout=10
git checkout -f bb711d40fdcaf2b809f8e0fce4bcfcf0b2a89d5f
git rev-list 41e245b1706ed2ee75830f7a39c2933944903fba # timeout=10
[phabricator:ignore-build] No differential ID found.
[workspace] $ /bin/sh -xe /tmp/hudson2902405382799744766.sh

make
mkdir -p results
echo 'Direct commit - 3' > results/test
Archiving artifacts
[phabricator:non-differential] Coverage result not found. Ignoring build.
Finished: SUCCESS

This is in contrast to a differential triggered build which does respond
to the build request and close it.
Started by user Phabricator
Building in workspace /var/lib/jenkins/jobs/Test/workspace

git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
git config remote.origin.url http://p.fstab.net/diffusion/T/test.git # timeout=10
Fetching upstream changes from http://p.fstab.net/diffusion/T/test.git
git --version # timeout=10
using .gitcredentials to set credentials
git config --local credential.username jenkins # timeout=10
git config --local credential.helper store --file=/tmp/git5505462600999545426.credentials # timeout=10
git -c core.askpass=true fetch --tags --progress http://p.fstab.net/diffusion/T/test.git +refs/heads/:refs/remotes/origin/
git config --local --remove-section credential # timeout=10
git rev-parse refs/remotes/origin/master^{commit} # timeout=10
git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 4473ea55aa39b66c45c9071e270d3fe4677963b6 (refs/remotes/origin/master)
git config core.sparsecheckout # timeout=10
git checkout -f 4473ea55aa39b66c45c9071e270d3fe4677963b6
git rev-list 4473ea55aa39b66c45c9071e270d3fe4677963b6 # timeout=10
[phabricator:conduit] Fetching differential from Conduit API
[workspace] $ git reset --hard 4473ea55aa39b66c45c9071e270d3fe4677963b6
HEAD is now at 4473ea5 Testing differential
[workspace] $ git clean -fd -f
Removing results/
[workspace] $ git submodule update --init --recursive
[workspace] $ /var/lib/phabricator/arcanist/bin/arc patch --nobranch --diff 10 --nocommit ********
Checking patch makefile...
Applied patch makefile cleanly.
OKAY  Successfully applied patch.
[workspace] $ /bin/sh -xe /tmp/hudson7389794144036638857.sh

make
mkdir -p results
echo 'Test 2 - D2-1' > results/test
Archiving artifacts
[phabricator:process-build-result] No line coverage found, skipping...
[phabricator:process-build-result] No unit results available.
[phabricator:process-build-result] No coverage provider available.
[phabricator:harbormaster] Sending Harbormaster BUILD_URL via PHID: PHID-HMBT-2ianqbrzd4ero25fxqik
[phabricator:process-build-result] Sending build result to Harbormaster with PHID PHID-HMBT-2ianqbrzd4ero25fxqik, success: true
[phabricator:comment-file] no files found by path: '.phabricator-comment'
Finished: SUCCESS

—
Reply to this email directly or view it on GitHub
https://github.com/uber/phabricator-jenkins-plugin/issues/108#issuecomment-158931914
.

That would be a nice start.  I looked and agree that I do not see a conduit method for commenting on diffusion (or audit) though you certainly can comment on them...  interesting.
Except!  https://secure.phabricator.com/T6468
Not sure how comfortable you are with a hidden/deprecated function.

Build status is good enough for me.

Cool. I'll try to add this this weekend.
On Mon, Nov 23, 2015 at 10:30 PM, Pavel Zinovkin<EMAIL_ADDRESS>wrote:

Build status is good enough for me.
—
Reply to this email directly or view it on GitHub
https://github.com/uber/phabricator-jenkins-plugin/issues/108#issuecomment-159169408
.

I put up a branch here: https://github.com/uber/phabricator-jenkins-plugin/tree/non-differential-status-108
It doesn't have tests yet, but should implement the functionality desired.
Could one of you try installing it and see if it meets your needs?
To install a development version, pull down the repo and run mvn package which will generate a .hpi file in the target/ directory which you can install on your jenkins under the plugin manager's "advanced" tab.
If this is the right approach, I'll add tests and get it reviewed.

Looks like it's working.  I got myself confused and went through a bunch of other stuff that included having to install the Cobertura plugin for Jenkins to avoid exceptions.  This certainly may be unrelated to this particular change.
My main interest in the comments from Jenkins are to have a link from the Phabricator build to the Jenkins build.  Presently, the only way I see to do this is manually via the commit hash.  Is there another way I am missing?
As always, thanks for your work on this.

When you say "have a link from the Phabricator build to the Jenkins build" -- are you talking about this part?

That is the Harbormaster "artifact" that it doesn't look like I implemented for non-differentials (d'oh).
If that's the only piece you're missing, I'll go ahead and add that and tests, get this reviewed and merged.
If there's something else that's missing, let me know.

... and if that is the feature you were missing,  I just pushed another untested commit to the branch that should accomplish this.

I just got home from work and that's where my test rig is.  I won't be back until next Wednesday.
If the image you show is of a hyperlink from within Phabricator to the specific URL of the corresponding Jenkins build, then yes, that's what I'm looking for.
I'm not sure if I want to or not but it crossed my mind to have the build results transmitted back to Phabricator as well, but that can certainly be left for another time if not already covered by your reference to artifacts...  if I even want that to happen.
Thanks for getting this implemented.  It certainly is a nice integration.

That image is from a differential. I'm not sure what the UI looks like on
the diffusion side. My test VM is also unavailable until I get back to work
next week. I'll see if I can get something running if I have some spare
time this weekend so I can stop using you as a guinea pig :)
On Wed, Nov 25, 2015 at 11:48 AM Kyle Altendorf<EMAIL_ADDRESS>wrote:

I just got home from work and that's where my test rig is. I won't be back
until next Wednesday.
If the image you show is of a hyperlink from within Phabricator to the
specific URL of the corresponding Jenkins build, then yes, that's what I'm
looking for.
I'm not sure if I want to or not but it crossed my mind to have the build
results transmitted back to Phabricator as well, but that can certainly be
left for another time if not already covered by your reference to
artifacts... if I even want that to happen.
Thanks for getting this implemented. It certainly is a nice integration.
—
Reply to this email directly or view it on GitHub
https://github.com/uber/phabricator-jenkins-plugin/issues/108#issuecomment-159713623
.

This functionality is critical for us as we drive both commit builds and release pipelines through Phabricator, and we need to be able to build arbitrary commits in Jenkins and have the result returned to a PHID (even if a Diff ID is not specified).

Sounds good. Could you try pulling down my branch linked above and see if
it meets your needs? It this is the right approach, I'll add tests and get
this merged.
On Thu, Jan 7, 2016 at 10:45 PM June Rhodes<EMAIL_ADDRESS>wrote:

This functionality is critical for us as we drive both commit builds and
release pipelines through Phabricator, and we need to be able to build
arbitrary commits in Jenkins and have the result returned to a PHID (even
if a Diff ID is not specified).
—
Reply to this email directly or view it on GitHub
https://github.com/uber/phabricator-jenkins-plugin/issues/108#issuecomment-169911088
.

I'm looking forward to this very much, yay to more visibility of the build system into phabricator. I checked the branch commits and they seem good to me.
@sectioneight Is there anything else we can do to help close this?

No, I just need to revive my branch and write tests.
On Sat, Jan 16, 2016 at 9:55 AM Chaitanya Pramod<EMAIL_ADDRESS>wrote:

I'm looking forward to this very much, yay to more visibility of the build
system into phabricator. I checked the branch commits and they seem good to
me.
@sectioneight https://github.com/sectioneight Is there anything else we
can do to help close this?
—
Reply to this email directly or view it on GitHub
https://github.com/uber/phabricator-jenkins-plugin/issues/108#issuecomment-172226795
.

I'm too looking forward for this feature. What I'm interested in is to have a direct link from Phabricator to the build console.

@sectioneight I meant to update this, but being a Windows shop we don't have the capacity to build Java plugins for Jenkins.  We'll only be able to test if this is working when we can install the plugin through the Jenkins interface.

Confirmed that the branch works, including the Jenkins link from the artifact.
Diffusion commit page:

Diffusion index page:

Going to write some tests and get this merged today. Thanks for the patience.

This is merged and released in 1.9.0, which I just uploaded to maven. You should see it in the your update manager within the next 12 hours.

Hi there. Nice work. But it seems to skip uberalls reporting.


add more tls configs to enable/disable specific cipher suites and protocols

:+1:

@jon-wei @nishantmonu51 @gianm can anyone of you take a look ?

:+1:
Can you backport as well


📝 doc: Add CONTRIBUTING.md

Make a good contributing rules/guidelines for the developers

PR #11 . Closing this issue.


options.killTimeout has no default value.

I'm fairly certain this line is incorrect:
if (typeof options.killTimeout !== 'number') { options.timeout = 5000; }

It checks to see if options.killTimeout is not a number (most likely it will be undefined), and then sets the options.timeout variable. This means that for the setTimeout will still always have an undefined timeout, this results in the setTimeout being executed immediately. Rendering both the "immediate" and the "setTimeout" features here useless.
The only way to actually use the killTimeout option is to explicitly set the option currently.

Good catch. Sorry for ignoring the PR all this time.
@vladikoff I think the default killTimeout value should be replaced with a smallest value (500ms or 1000ms for example) or the process will looks like it hangs for some time (5s) then continue its work.

Shy of a year, so you're all still better than most open source maintainers :+1:

Shy of a year, so you're all still better than most open source maintainers :+1:

haha, you can count me as a new member :-)
And this PR was on my TODO for some time. I just found the time to check it.

@Arkni sure! feel free to make the change

Merged. Thanks :)

@Arkni sure! feel free to make the change

I'll update it in another commit


Error: write EPIPE on bulk pdf generation

Hi,
We are getting the following error
Uncaught Error: write EPIPE
Error: write EPIPE
    at exports._errnoException (util.js:1022:11)
    at WriteWrap.afterWrite [as oncomplete] (net.js:804:14)

Whenever we try to generate pdf in bulk like anything between 30 and 500 or 1000
But when we are trying to generate a single pdf or even till 10 it works fine. So can anyone help regarding this?

I am getting similar error intermittently. It will throw this error once when I try to create PDF for 5 or 6 times.
Unhandled rejection Error: write EPIPE
at _errnoException (util.js:1024:11)
at Socket._writeGeneric (net.js:767:25)
at Socket._write (net.js:786:8)
at doWrite (_stream_writable.js:387:12)
at writeOrBuffer (_stream_writable.js:373:5)

Try setting  { "phantomPath": "./node_modules/phantomjs/bin/phantomjs" } in the options. This worked for me

This will work 100 % -- follow this it worked for me ...
https://www.vultr.com/docs/how-to-install-phantomjs-on-ubuntu-16-04


How to lazyload images and change paths

It's a very nice plugin but my client has an image heavy website (photograph) so I would like to know if it's possible to change path for uploaded media ? Currently CKEditor ouputs the image with relative path so I'd like to be able to output this :
https://api.example.org + path
Also is it possible to lazyload images, at the very least add a loading="lazy" ?

@Zharkan If you use default upload provider and you want prefix url with api path you need to modify api.js file in config/api.js and add baseURL, something like this:
module.exports = ({ env }) => ({
  rest: {
    defaultLimit: 25,
    maxLimit: 100,
    withCount: true,
  },
  baseURL:env('PUBLIC_URL', 'http://localhost:1337')
});

About loading lasy - you can modify html tags through source mode in the editor, but in order to be able to add loading tag you need to add in plugin config some configurations, something like this:
config/plugins.js
module.exports = ({ env }) => ({
    ckeditor: {
      enabled: true,
      config: {
        plugin: {},
        editor: {
          htmlSupport: {
            allow: [
                {
                  name: 'img',
                  attributes: {
                      sizes:true,
                      loading:true,
                  }
                },
            ]
        },
        },
      },
    },
  });

After that you can add loading and sizes attributes in the source mode

That is perfect, thank you for this ! I'm closing this then.


Wrong style rendering in text fields

Hi
I have use the last version of repo (1.5.x) and noticed that the css class w2field is not properly applied in text fields of my forms
The same issue also exist in the demo of w2ui 1.5.x

Can you please be more specific. Please specify files in demo it is not working and provide some screenshots. Thanks.

Since no reply, closing this issue.


[WIP] Update project sync command

Update project sync command

What is the benefit of changing this from a linear execution to a stepped one? A potential negative trade off I see is that this will increase our number of requests sent to the API to get the project sync status.

This was just an attempt to test changes to the sync command.


Swipe in iOS?

Swipe from left goes back in browser history and swipe from right goes forward.
Unfortunately I cannot test it myself on iOS..
Does this component works around this? How?
I would love to reuse this trick with other components if I need to use swipes from left or right.

I bumped into this too. Would be nice to fix. This thread discusses some potential workaround, but I can't quite tell whether it's possible or not:
http://stackoverflow.com/questions/8737709/any-way-to-prevent-horizontal-scrolling-triggering-swipe-back-gesture-on-os-x-li

This component does not work around this issue.
One simple approach would be increase the side of the touch handle via the touchHandleWidth prop.
Another possible solution (haven't tested it myself) would be to fork the repo and prevent the default action from the touch events on the touch handle. @tonygentilcore's SO link mentions this technique as well. That could introduce other possible undesirable effects, like preventing page scrolling entirely, but might work for you. It would theoretically be possible to add a boolean prop on react-sidebar that would enable this behavior.

I think right now the best solution is to detect iOS and disable touch handle. To infer default iOS behavior may produce undesirable side effects (as mentioned) and bad user experience.

Worth noting that if users save your web app to the home screen, the touch handle works really well. If that's a common use case, then the interactivity may be worth preserving.


Interpret the signal name when the return value is grater than 128

In Linux Bash-scripting ABI, the return value has its specific meaning
in different range.
Value 128+n means fatal error with signal "n".
For more information, please refer to this link:
http://tldp.org/LDP/abs/html/exitcodes.html#EXITCODESREF
You can turn on/off this feature by assigning true/false to this
variable:
BULLETTRAIN_STATUS_EXIT_SIGNAL_SHOW

Yes, if we consider all cases, it is 4-state status. It is more clear to use one enum instead of two variables to me, since enabling the symbol while disabling the error codes state does not exist.
As you mentioned, the state 0 is kinda redundant to the switch STATUS_SHOW=false. Since it's not necessary to make the number to the power of 2, I would consider to either use one of the following:

minimal - show only cross on error
ret_code - show always return code, do not interpret it
ret_code_or_signal - interpret return codes > 128 as signals

or (this is just my habit)

minimal - show only cross on error
ret_code - show always return code, do not interpret it
ret_code_or_signal - interpret return codes > 128 as signals
ret_code_or_signal_filtered - interpret return codes > 128 as signals (exclude TSTP siganl)

Is there a simple way for me to modify this patch? Or I need to fork it, modify and create PR? I do not know if github allows to amend someone else's PR's.

hum..... good question.
I think the easiest way might be I push a new commit with the modifications you want to do. But it's a bit weird that I submit the codes you writes (in blame).
Or... take this PR and refactor your codes. This way the history will still show this PR with duplicated condition coding, but it gets fixed in version XXX.

@dawikur AFAIK you can just clone @MedicineYeh 's branch and commit to it directly, though in Github, you have to fork his then create a pull request to it, then he can merge that in here. Complicated? Sure is XD

I will take a look at this, maybe on weekend. I have some working svn segment which I am quite happy about.


UTXO Move Event Mismatch

fixed here https://github.com/CounterpartyXCP/counterparty-core/pull/2585


Change Type metadata name and add analyzers nodes to Nuget sub-tree

Add matching change (with sdk task output)  to Type metadata for package dependencies  and add support for new dependency type "AnalyzerAssembly". Now package will also show a subfolder Analyzers with analyzer assemblies in it (with corresponding Analyzer icon)

@dotnet/project-system

@srivatsn @natidea

LGTM modulo the additional Analyzers node. I think we can remove that keep it simpler.

👍


glide update: Could not find /root/work/src/github.com/rkt/rkt/api/v1alpha

Environment
Linux testing 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux
Replace this with the output of:
`rkt Version: 1.27.0
appc Version: 0.8.10
Go Version: go1.7.4
Go OS/Arch: linux/amd64
Features: -TPM +SDJOURNAL
Linux 3.16.0-4-amd64 x86_64
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
systemd 215
+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR`
What did you do?
glide install
What did you expect to see?
What did you see instead?
[ERROR]	Dependency github.com/rkt/rkt/api/v1alpha (/root/work/src/github.com/rkt/rkt/api/v1alpha) failed to resolve: open /root/.glide/cache/src/https--root-work-src-github.com-rkt-rkt-api-v1alpha: no such file or directory.
[ERROR]	Failed to retrieve a list of dependencies: open /root/.glide/cache/src/https--root-work-src-github.com-rkt-rkt-api-v1alpha: no such file or directory```

updating go to version 1.8.3 solved it


Feature/slider

Some notes, things to discuss:

✅ IE11 works, quite a lot of design decisions had to be done because of it :/
Error is only visible through the message, no border is set on a thumb (because it'd be weird in a range mode). I can modify it it we have some designs for it
⚠ no Designs are present in Figma yet, so there is a missing Storybook link to it
We should follow https://www.w3.org/TR/wai-aria-practices-1.2/#slidertwothumb guidelines - basically we use 2 sliders on top of each other
🕐 I'll add screenshots in the end once the PR is approved to speed up the process.

What I'd need help with / possible improvements:

TS typeguards - maybe this could be done in a more elegant way, but I want a component to check that value & onChange are consistent with the parameter, that I could only done with generics so I combined it with typeguards
Formik stories will be modified the same way as I'll do here https://github.com/hazelcast/frontend-shared/pull/76

@aigoncharov @jozefhruska thanks for a great feedback, I'll wrap this up during next week as I have a lot of job on .cloud right now.

Ready for re-review, however we're still waiting for design inputs, especially for https://github.com/hazelcast/frontend-shared/pull/79#discussion_r530348593

Thanks @danad02 for the useful comments, I'll fix them once I get designs for showing the value.

@jvorcak shouldn't it highlight the top label in this case and hide the bottom one?

@aigoncharov good catch, I'll implement now.


Dns problems using custom VNET

Is this a request for help?: Yes

Is this an ISSUE or FEATURE REQUEST? (choose one): ISSUE

What version of acs-engine?: v0.8.0

Orchestrator and version (e.g. Kubernetes, DC/OS, Swarm) Kubernetes
What happened:
I've tried deploying several clusters with v0.8.0, all using custom VNET and different options for networkPolicy (currently using "azure"). They all have dns problems after deployment though. I can see pods running with "kubectl get pods", and nodes show up, but if I try to attach, run og log a pod I only get error message
Error from server: Get https://k8s-master-xxxx:10250/containerLogs/kube-system/kube-apiserver-k8s-master-xxxx/kube-apiserver: dial tcp: lookup k8s-master-xxxx on <IP_ADDRESS>:53: server misbehaving
My custom VNET is running Active Directory with its own dns servers (<IP_ADDRESS>), and the vnet has custom dns servers set. This seems to cause problems for dns lookups on linux nodes. On our other linux machines we have followed the guidelines at https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/virtual-network/virtual-networks-name-resolution-ddns.md and created a boot script that register the dns on linux nodes. (After allowing non-secure dns updates in AD DNS).
Was considering just making this an extension to acs-engine to fix, but maybe there is a better option. Would be nice if it could be set as kubernetesConfig or something. For now I'm just adding this manually to continue testing.
How to reproduce it (as minimally and precisely as possible):
Deploy cluster to custom VNET with custom dns servers.
Anything else we need to know:

This shouldn't be needed. What you should need to do is follow the steps here to add the routetable in the custom vnet's subnets so that the internal kubernetes routing functions. This isn't in our custom vnet Documentation though.  I'm not sure why

Using networkPolicy "azure" there is no routetable created, and not sure how that would help. I've tested this by deploying same cluster to another vnet that does not have any dns servers set on vnet. Then the /etc/resolv.conf on master has this content:
nameserver <IP_ADDRESS>
search qddxx3nbbwnebgeeerdhuajxnf.ax.internal.cloudapp.net
In this setup everything works. Its using the internal Azure dns servers and searching correct domain. However with custom dns servers resolv.conf has these values:
nameserver <IP_ADDRESS>
namespace <IP_ADDRESS>
search reddog.microsoft.com
My dns servers are set to forward lookups to <IP_ADDRESS>, but its not searching correct domain. So only way I can manage to get it to work is registering the master and nodes in my dns server. Would work if it searched the correct domain, but thats not something that can control as it is now with vnet dhcp settings.

You can safely add DNS search suffixes on Ubuntu by setting /etc/resolvconf/resolv.conf.d/base. This setting survives reboots and will allow master and agent nodes to resolve each other via your internal DNS zone.
That being said, you may want to consider leaving your VNets on Azure DNS with no OS customization. If you need Pods to be able to resolve internal services, use the DNS ConfigMap settings instead. The reason why this is important is due to the fact that cluster upgrades work by deleting VMs and re-provisioning them with the new bits. If your deployment relies on customized OS settings, you will need to account for it as part of your upgrade process, which isn't ideal.

I added the DNS search suffix, and registered it on my custom DNS server with an extension I made (https://github.com/tesharp/acs-engine/blob/master/extensions/register-dns/v1/register-dns.sh). Registering that as a pre provision extension the cluster works after deployment without any changes needed. But maybe the extension wont run again re-provisioning the machines?
Thanks for the link on DNS ConfigMap, I'll look into that. Will solve problem of pods resolving internal services at least. If extension won't work on re-provisioning I will have to reconsidering deploying to custom VNet. That would really limit usage of custom VNet in my opinion though..

I'm kind of struggling with the same problem. I'm also deploying with the azure networkPolicy and this does not create a route (and seem to not be needed).
I have a vNet connected to our onprem environment and as such has DNS to our DC added to the Azure vNet. Though when I try to deploy to this vNet it seems like both DNS and the dashboard is stuck in  ContainerCreating. On the master I can see both my onprem DC DNS server added as nameservers and a
search reddog.microsoft.com in the /etc/resolv.conf
I've looked high and low to find some hints to how I can do anything with this. I've read about the DNS ConfigMap but unsure how I can use it with the acs-engine generation configs.
So out of desperation I'm posting here, as this seems as close to my issue as I have come.

I'm facing the same issue using "azure" network policy. Cluster is deployed but kube-dns & dashboard containers are stuck in ContainerCreating state...

I have only gotten this to work with this profile on a custom vNet with the default DNS (if setting a custom DNS, none of the system pods (DNS,Tiller and Dashboard) works as expected).
This seems to be related to what IP range the PODs are handed.
If I have a custom vNet (<IP_ADDRESS>/16). With one subnet for master (<IP_ADDRESS>/24) and one for agents (<IP_ADDRESS>/24). Using the following config gets the system pods created with an IP in the 192.168.x.x range. I'm probably not understanding how to integrate the azure vNet with the cluster. I also want to be able to reach the PODs I spinn up from inside the Azure vNet without having to expose them through the loadbalancer (on the Internet). Though not sure how to get that working.
`{
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"orchestratorType": "Kubernetes",
"orchestratorRelease": "1.8",
"kubernetesConfig": {
"networkPolicy": "calico",
"clusterSubnet": "<IP_ADDRESS>/18",
"serviceCidr": "<IP_ADDRESS>/18",
"dnsServiceIP": "<IP_ADDRESS>",
"nonMasqueradeCidr": "<IP_ADDRESS>/16"
}
},
"masterProfile": {
  "count": 1,
  "dnsPrefix": "satestk8s",
  "vmSize": "Standard_D2_v2",
  "storageProfile": "ManagedDisks",
  "OSDiskSizeGB": 80,
  "ipAddressCount": 100,
  "vnetSubnetId": "/subscriptions/<ID>/resourceGroups/satestsharedresourcesrg/providers/Microsoft.Network/virtualNetworks/SATestVnet/subnets/SATestK8sMastersSubnet",
  "firstConsecutiveStaticIP": "<IP_ADDRESS>"
},
"agentPoolProfiles": [
  {
    "name": "agentpool1",
    "count": 2,
    "vmSize": "Standard_D2_v2",
    "OSDiskSizeGB": 80,
    "storageProfile": "ManagedDisks",
    "vnetSubnetId": "/subscriptions/<ID>/resourceGroups/satestsharedresourcesrg/providers/Microsoft.Network/virtualNetworks/SATestVnet/subnets/SATestK8sAgentsSubnet",
    "availabilityProfile": "AvailabilitySet"
  }
],`

Is there anything else I can do to help move this issue along? I have a step by step guide deploying on a custom vnet that doesn't have any problems. The moment I have a vnet with custom dns servers though the problem then arises. Will happily assist anyone with debugging this.

@sylus Im still using this workaround. Tried deploying a 0.12 cluster without and it failed. Using registerdns.sh as an extension on both master and agent nodes it works fine. Havent found any other solution so far...

@tesharp unable to access https://github.com/tesharp/acs-engine/blob/master/extensions/register-dns/v1/register-dns.sh , Do you have another link ?

@eynet Sorry, I just moved it from master to a separate branch a while ago. Forgot about that.. new link is https://github.com/tesharp/acs-engine/blob/register-dns-extension/extensions/register-dns/v1/register-dns.sh

@tesharp Thank you!

Hi,
I think kubernetes has a way to solve this:
http://blog.kubernetes.io/2017/04/configuring-private-dns-zones-upstream-nameservers-kubernetes.html

@yfried That works from inside the pods, but not from the master / nodes themselves. Problem here is that the nodes cannot resolve the master dns names, and opposite. So when nodes are trying to do a dns lookup on k8s-master-xxxx it just fails. Inside the containers / pods this would work, just not on the vm machines.

Have the same issue with kubernetes cluster with a custom vnet created by acs-engine.
Created a cluster with the following:
{
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"orchestratorType": "Kubernetes",
"kubernetesConfig": {
"networkPolicy": "azure"
},
"orchestratorVersion": "1.7.7"
},
"masterProfile": {
"count": 3,
"vnetCidr":"<IP_ADDRESS>/23",
"dnsPrefix": "k8sinfoplus",
"vnetSubnetId": "$SUBNETID",
  "vmSize": "Standard_D2_v2",
  "storageProfile" : "ManagedDisks",
  "firstConsecutiveStaticIP": "<IP_ADDRESS>"
},
"agentPoolProfiles": [
  {
    "name": "agentpool1",
    "count": 3,
    "vmSize": "Standard_D2_v2",
    "storageProfile" : "ManagedDisks",
    "vnetSubnetId": "$SUBNETID",

    "availabilityProfile": "AvailabilitySet"
  }
],
"linuxProfile": {
  "adminUsername": "kubadmin",
  "ssh": {
    "publicKeys": [
      {
        "keyData": "$KEY"
      }
    ]
  }
},
"servicePrincipalProfile": {
  "clientId": "$ID",
  "secret": "$SECRET"
}

}
}
kubectl get nodes and get pod works fine but when using exec or helm install I get the same error "..... server misbehaving".
Is the only option to manually add the masters and agents to dns servers?

I got it to work by adding al cluster nodes to our own (on premise) dns servers

@bramvdklinkenberg this is what the register-dns extension from @tesharp does :)

that script didn't work for me. I don't know if the script is ment for a specific distro?
next to adding the nodes to the dns servers I also had to add a configmap with a stubdomain for our domain name. only adding the nodes to the dns server wasn't enough for me to get it to work.

That's right, you have 2 pieces to the puzzle. Someone correct me if I'm wrong 😄 :
The DNS for the nodes, and the DNS used from within the pods/containers.

The nodes DNS lookups are fixed by the extension (registering the nodes in your private dns)
The pods DNS lookups are handled by the configmap for kube-dns (tell k8s dns, used by your containers, to forward to your private dns)

@tesharp We could add some post-deployment enforcement: "if user brought his/her own dnsServiceIP value then run nsupdate to register the nodes w/ resolver(s)".
I'd be happy to start experimenting along those lines with something resembling the script you shared.

@jackfrancis Correct me if I'm wrong, but isn't the dnsServiceIP (kubernetesConfig.DNSServiceIP) the internal IP address of dns service in cluster? In this case it is more a master / node configuration and not kubernetes configuration, so maybe shouldn't be in kubernetesConfig at all?
Having it as a port-deployment step would be very nice. I could have created a PR as well, but didn't like this way (extension) of doing it and didn't know what would be best way. If it could be a setting on master / agent config maybe, like vnetDomainName.

@tesharp That makes a cascading priority between cluster-wide config and pool specific config... it complicates and already busy api.
What about creating a VM profile separately, and provide a way to reference it in each pool to reuse the configuration?

@serbrech So if I understand you correct it could be something like this:
{
  properties: {
    ...
    vmProfile: {
      "name": "vm-common",
      "domainName": "domain.local",
      "http_proxy": "http://proxy",
      "https_proxy": "http://proxy",
      "no_proxy": "local",
      "distro": "coreos"
    },
    "masterProfile": {
      "vmProfile": "vm-common"
      ...
    },
    "agentPoolProfiles": [
      {
        "vmProfile": "vm-common",
        ...
      }
    ]
    ...
  }
}

Just included http proxy and distro as example of what configuration could be useful for a vmProfile setting. This kind of setup would be good to me. Just don't want to have to repeat all these settings for every agent pool / master pool as they should be cluster wide.

@tesharp I can't use your extensions:
Unable to GET extension resource for extension: register-dns with version v1 with filename template-link.json at URL: https://raw.githubusercontent.com/tesharp/acs-engine/register-dns-extension/extensions/register-dns/v1/template-link.json StatusCode: 404: Status: 404 Not Found

    "extensionProfiles": [
      {
        "name": "prometheus-grafana-k8s",
        "version": "v1",
        "rootURL": "https://raw.githubusercontent.com/Azure/acs-engine/master/"
      },
      {
        "name": "register-dns",
        "version": "v1",
        "rootURL": "https://raw.githubusercontent.com/tesharp/acs-engine/register-dns-extension/",
        "version": "v1",
        "script": "register-dns.sh"
      }
    ]

        "extensions": [
          { "name": "prometheus-grafana-k8s" },
          { "name": "register-dns" }
        ]

@sylus Adjusting kube-dns is to allow the pods to resolve services that live outside the cluster.
pods run dns resolution through kube-dns (to allow for local resolution via service names).
If you want the kubernetes services to talk to your on-prem services, the kube-dns config map needs to be updated to forward dns resolution queries when they don't match local k8s services.

Ah thanks @serbrech makes sense :) was curious as everything was working for you, glad to know just outside services.

@sylus about what you wrote above, I believe that's the right approach, until PR #2590 from @axier lands :)

This also summates my issue:
https://github.com/openshift/origin/issues/17316


Read actual motion

Checks

[x] Debugging completed
[ ] Please debug me

Related Issue
This PR closes #290.

駆動試験済み


readline: C compiler cannot create executables

readline installation fails due to C compiler cannot create executables error.
(~/.local/bin)-(git::master)--> brew install readline --verbose
==> Downloading http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz
Already downloaded: /home/hutson/.cache/Homebrew/readline-6.3.8.tar.gz
==> Verifying readline-6.3.8.tar.gz checksum
tar xf /home/hutson/.cache/Homebrew/readline-6.3.8.tar.gz
==> Downloading https://gist.githubusercontent.com/jacknagel/d886531fb6623b60b2af/raw/746fc543e56bc37a26ccf05d2946a45176b0894e/readline-6.3.8.diff
Already downloaded: /home/hutson/.cache/Homebrew/readline--patch-dccc973e4a75ecfe45c25c296e0f7785b06586dc.diff
==> Verifying readline--patch-dccc973e4a75ecfe45c25c296e0f7785b06586dc.diff checksum
==> Patching
patch -g 0 -f -p1 -i /home/hutson/.local/tmp/readline--patch-61pNLY/readline-6.3.8.diff
patching file display.c
patching file input.c
patching file misc.c
patching file patchlevel
patching file readline.c
patching file rltypedefs.h
patching file util.c
==> ./configure --prefix=/home/hutson/.local/Cellar/readline/6.3.8 --enable-multibyte
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu

Beginning configuration for readline-6.3 for i686-pc-linux-gnu

checking whether make sets $(MAKE)... yes
checking for gcc... /usr/bin/gcc-4.9
checking whether the C compiler works... no
configure: error: in `/home/hutson/.local/tmp/readline-f6mX8R/readline-6.3':
configure: error: C compiler cannot create executables
See `config.log' for more details
==> Configuration
HOMEBREW_VERSION: 0.9.5
HEAD: 6a95075ff1aa09d4ec4c2f88383009fabc456bbb
HOMEBREW_PREFIX: /home/hutson/.local
CPU: dual-core 32-bit 6
OS X: 0-i686
/usr/bin/ruby2.1:
  2.1.5-273
X11: N/A
==> ENV
CC: /usr/bin/gcc-4.9
CXX: /usr/bin/g++-4.9
OBJC: /usr/bin/gcc-4.9
OBJCXX: /usr/bin/g++-4.9
CFLAGS: -Os -w -pipe -Xarch_i386 -march=prescott
CXXFLAGS: -Os -w -pipe -Xarch_i386 -march=prescott
CPPFLAGS: -isystem/home/hutson/.local/include
LDFLAGS: -L/home/hutson/.local/lib -Wl,-rpath,/home/hutson/.local/lib
MAKEFLAGS: -j2
CMAKE_PREFIX_PATH: /home/hutson/.local
PKG_CONFIG_LIBDIR: /home/hutson/.local/lib/pkgconfig:/usr/lib/pkgconfig
PATH: /home/hutson/.local/var/rbenv/shims:/home/hutson/.local/bin:./node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/hutson/.local/Library/ENV/scm

Error: readline 6.3.8 did not build
Logs:
     /home/hutson/Library/Logs/Homebrew/readline/01.configure
     /home/hutson/Library/Logs/Homebrew/readline/config.log

These open issues may also help:
Issue with readline 6.3.6 (https://github.com/Homebrew/homebrew/issues/30751)

I had already setup symlinks according to Create symlinks for gcc
Running the same brew command with --env=inherit I was able to successfully install readline:
(~/.local/bin)-(git::master)--> brew install readline --verbose --env=inherit

Please let me know if I should retest any portion of my process.

Please post these logs in a gist.
     /home/hutson/Library/Logs/Homebrew/readline/01.configure
     /home/hutson/Library/Logs/Homebrew/readline/config.log

@sjackman,
I re-ran brew install readline --verbose, and the logs can be found here:
https://gist.github.com/hbetts/198c4ab7173f1754e0b4

I missed this last time: checking host system type... i686-pc-linux-gnu
Are you on a 32-bit system?

Linuxbrew doesn't support 32-bit systems, that is, I don't support 32-bit systems, because I don't have one to test on. If you're able to fix this issue, I will merge well-thought-out pull requests to support 32-bit systems.


swap-keys: init at 1.0.0

Description of changes

This is an interaction-tools plugin that allows swapping arbitrary pairs of keys. Usage and instructions can be found here: https://github.com/amfranz/swap-keys
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@drupol thanks for taking the time to review, and going above and beyond in letting me know about the finalAttrs pattern!
I believe I've applied the requested changes.
I originally had the package version as "1.0.0" because the tag in the source repo was "v1.0", and I was not sure if there was a naming convention in this repo on package versions, but I got the impression that "x.y.z" was preferred. Since you suggested finalAttrs, I think you were suggesting I use that to set both the package version and the git "rev" field? Meaning, it's fine if the package version now doesn't follow the "x.y.z" pattern? In any case, that's what I've done.

@drupol anything else needed from me for this PR?

@drupol Should be fixed now to only be 2 commits.

Nixfmt is still failing

@drupol Formatting issue is fixed.


replace siphash128 with foldhash::quality

As the title suggests, this PR replaces the siphash based phf with a foldhash based phf. foldhash is a new fast hash algorithm by @orlp which has high avalanche properties and is very fast on modern hardware. My benchmarks demonstrate that construction times are similar (sometimes faster, sometimes slower - only a few % difference), but lookup times are significantly improved (2.5x).
To get more reliable benchmarks, I had to modify them.

The construction benchmarks were biased towards lucky seeds, so I made them change seed each time.
The lookup benchmarks for hashmap/btreemap were unstable based on the insertion order, so I fixed the order to make it more consistent.

Benchmark reports
These benchmarks were run on my M2 Max.
 That's odd... and concerning

Annoying case with unicase.

UniCase::ascii("foo") is hashed as b'f', b'o', b'o'
UniCase::unicode("foo") is hashed as b"f", b"o", b"o"

In SipHash, these end up being equivalent (since siphash is a bytestream digest), but it's different in foldhash.


meteor-git: 0.22.0 -> 0.23.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/stefanlogue/meteor/releases.
meta.description for meteor-git is: CLI tool for writing conventional commits
meta.homepage for meteor-git is: https://github.com/stefanlogue/meteor
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.23.0 in filename of file in /nix/store/mgdwkc43045ph166bzsr66j6jn4ish08-meteor-git-0.23.0

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

meteor-git

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/mgdwkc43045ph166bzsr66j6jn4ish08-meteor-git-0.23.0 \
  --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 meteor-git https://github.com/r-ryantm/nixpkgs/archive/9cb3abed2df59fb093f40b88c5603814cb542a91.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/9cb3abed2df59fb093f40b88c5603814cb542a91#meteor-git

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/mgdwkc43045ph166bzsr66j6jn4ish08-meteor-git-0.23.0
ls -la /nix/store/mgdwkc43045ph166bzsr66j6jn4ish08-meteor-git-0.23.0/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:

meteor-git

Maintainer pings
cc @nebunebu for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


Fix the snapshot update script

The update_one_bazel.sh script wasn't updated when support for ruby-2.6 was added.

Motivation

Make tools/scripts/update_exp_files.sh work again.
Test plan

I've run the individual update rules successfully locally, and am re-running the whole script.

I see this logic is duplicated in another script, maybe it would be worth to try to be DRYer?

Sounds good, I'll put together a separate PR to try and abstract out functionality a bit.


pipeline hashing: refactor to different packages

Following the architectural proposal documented here, this PR pulls out the different components to their respective packages within the pipeline package. Unit tests have been added to the respective packages.
fixes #619 (other future tasks have been extracted to separate issues)
The followup tasks that have been created are #708 #709 #710.
As documented in #710, there is still a missing test to the hashtrie writer, which can be used to get someone else familiar with this part of the codebase.

@zelig can you submit your pending review?


FAI-8128 - Some minor fixes

@cjwooo we could also clear our accumulated records from memory once all the dependent streams are completed. WDYT?


Add support and test coverage for Swift 5

Context
Fixes https://github.com/gradle/gradle-native/issues/1002
Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

All test pass on Xcode 10.2.

@lacasseio could you look at the failures: https://builds.gradle.org/viewLog.html?buildId=21333582&tab=buildResultsDiv&buildTypeId=Gradle_Check_Stage_QuickFeedbackLinuxOnly_Trigger&branch_Gradle_Check=lacasseio%2Fswift-5


Tree: Nest Core libs into core directory

Description
This moves the core libraries (which are aggregated into core, see src/core and the tree package readme) into the core directory. This makes the structure of the dependencies more clear and more enforceable.
This change was originally left out when introducing the core package to reduce code churn, but this seemed like a good time to do it.
Also adds a missing fence file to id-compressor.
Also forest (and other indexes) no longer need to depend on the abstractions in "shared-tree-core" (and haven't for a while) so "shared-tree-core" was not moved into core and was separated from the rest of the core libraries.
Reviewer Guidance
Pay special attention to the fence file changes, and the top level readme: they have changes which are not just moves.

It looks like a number of fence files allow import from utils despite the no such import existing in the folder. These are the offending cases:

core/forest
core/repair
core/schema-view
core/transaction
core/tree
shared-tree

I don't have a strong opinion as to whether we should remove "utils" from the allowed import list of those folders. On one hand it seems like good house keeping (the fence file ends up being a better representation of the folder's dependencies), but on the other hand, it is true to say that imports form utils are indeed allowed (whether or not there are any), and keeping "utils" in the list might reduce noise in case those folders do end up relying on it later on.

For dependencies that are explicitly allowed by our architecture docs in the readme, and might be needed later, I think it's better to leave them in the fence file. This saves someone who needs a util function from having to change the fence, lookup if its ok, check if they need to update the readme and also saves work from their reviewer.
It also avoids someone having to remove things from fence files if they remove the use of some random helper function and it happens to be the last dependency on that folder: realistically I don't think we want to expect that from devs and reviewers.


please update typora to 0.9.80

Describe the bug
Typora have released version 0.9.80
To Reproduce
Steps to reproduce the behavior:

nix-env -i typora
Got old version compared to the latest version in their website
Sad :(

Expected behavior
The latest version should be installed
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Metadata
Please run nix run nixpkgs.nix-info -c nix-info -m and paste the result.
Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: typora
# a list of nixos modules affected by the problem
module:

Can do @sharuzzaman :+1:

Hey, I just noticed that the current version 0.9.73 is broken (download link at least), I'll update it to <IP_ADDRESS>.2.


Setup auto deploy for staging

we now track branches via system-upgrade-controler, thanks michael

it's built into flux


🐞 Text selection is janky while dragging across lines

Description
While making a multi-line text selection, it can appear janky because the background shifts briefly while dragging across lines.
To Reproduce

Make a multi-line selection.
Notice that while dragging across lines the selection background sometimes shifts.

Expected Behavior
The selection background should remain in the same place while dragging across lines.
Version Information
CodeEditTextView: 0.7.0
macOS: 14.0
Xcode: 15.0
Screenshots
CodeEdit
https://github.com/CodeEditApp/CodeEditTextView/assets/806104/78628221-5620-4339-9edc-41d887093e5f
CodeEdit (frame-by-frame tracking)
https://github.com/CodeEditApp/CodeEditTextView/assets/806104/515e5113-1010-4a12-9423-43ecf6d1ade7
Xcode
https://github.com/CodeEditApp/CodeEditTextView/assets/806104/7a092bfb-b279-4558-8556-c18a990cc8e4

I can't seem to reproduce this, there's been a few changes to selection drawing and a bunch of bug fixes since this was created. Is this still an issue?


Add signing keys

Codecov Report

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

@@            Coverage Diff            @@
##             master     #205   +/-   ##
=========================================
  Coverage     80.22%   80.22%
  Complexity      473      473
=========================================
  Files            79       79
  Lines          1846     1846
  Branches        216      216
=========================================
  Hits           1481     1481
  Misses          274      274
  Partials         91       91

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 d251c18...3a44bdf. Read the comment docs.

I incorporated these changes into #201. Once that one is merged, this can be closed without merging.


Added groupBy method to QueryBuilder

Hey @iGusev , thanks for  the PR. LGTM! @thecodeassassin , please review


Add -h alias for --help option

Add shortcut option for help to support pip-compile|sync -h
Changelog-friendly one-liner:
Add -h alias for --help option
Contributor checklist

[ ] Provided the tests for the changes.
[x] Gave a clear one-line description in the PR (that the maintainers can add to CHANGELOG.md on release).
[ ] Assign the PR to an existing or new milestone for the target version (following Semantic Versioning).

@atugushev thanks for the review. I like your idea of passing dict value as named arg, so accepted suggestions.

@jan25
Nice fist contribution! 🎉 Thanks!


FIX setLogger now exists on SecurityAdminExtension

Fixes #327

Any idea about the failing test?

Nope. I think it's just a shitty test.


Implement AVL Tree  #14

This should follow established coding standards.
Test file and example file are based off of the equivalent files for red black trees. The implementation file is based on the binary search tree file.
Look forward to your thoughts!

Check the Files Changed Section I will leave you some comments about what I would like you to rename.


Inventory Import needs to be updated to new schema

Since the move to ember-pouch, https://github.com/HospitalRun/hospitalrun-server/blob/master/utils/inv-import.js does not properly load inventory data.  The script needs to be updated to load the inventory data using the ember-pouch schema, eg:
{
  "_id": "inventory_2_iiqtc6w3_31",
  "_rev": "4-8b68967daca21a66f63837d3900439cb",
  "data": {
    "distributionUnit": "vial",
    "friendlyId": "m00001",
    "inventoryType": "Medication",
    "name": "Cefazolin 500mg vial (Hazolin)",
    "quantity": 999986,
    "lastModified": "2017-04-12T15:30:07.970Z",
    "modifiedBy": "Admin User",
    "purchases": [
      "E3B2184F-4ECA-3B76-92C8-437846C2E3DC"
    ],
    "locations": [
      "24BB235E-B271-AF61-9A3D-9ACD77CE25AF",
      "DBCF3E06-B812-B6C7-930E-74F9372D384A"
    ]
  }
}

hi @jkleinsc. I want to help with this issue. Would you like to help me identify which part of inv-import.js should I change to fit with new data using ember-pouch schema? Thanks a lot.

@baoqchau i am really stuck on this issue any help would be appreciated...:-)

Hi @jkleinsc :), ember-pouch is expecting a CouchDB doc field to be wrapped in a data object, something like:
{
    _id: '...',
    _rev: '...',
    data: {
        aisleLocation: ...,  # <- field inside data object
        currentQuantity: ...,  # <- field inside data object
        ...
    }
}

but inv-import.js is generating CouchDB docs without this data object, something like:
{
    _id: '...',
    _rev: '...',
    aisleLocation: ..., # <- not inside data object
    currentQuantity: ...,  # <- not inside data object
    ...
}

What you're looking for are functions inside of inv-import.js (e.g addPurchase) where docs are being generated.

@rwanyoike would you have interest in working on this?

@tangollama #67 until a better solution comes along...


Models for enrollment reports

Reports being served:

Cumulative enrollment events over time, broken down by enrollment mode
Daily enrollments and un-enrollments

WIP PR:
https://github.com/openedx/oars-dbt/pull/1

assign me, please

assign me


improve guides and other docs

Feature to document
There are a lot of usage file-loader/url-loader/raw-loader in guides (and other docs), for example https://webpack.js.org/guides/asset-management/#loading-fonts, we need to rewrite it on https://webpack.js.org/guides/asset-modules/, because these loader will be deprecated in the near future
Author(s)
Any
Additional information
I think it is high priority
[ ] I am willing to work on this issue and submit a pull request.

I'll update them soon.


Change App ID for Action Builds

Discussed in https://github.com/EmiyaSyahriel/CrossLauncher/discussions/61

Originally posted by AkiraKusanagi November 23, 2023
Just a thought. So you could test some of the features in the action build without having to delete the release build installed on the device.

Tweak has been implemented, @AkiraKusanagi can you check it in the action builds Android CI#40 or newer, In case there is no feedback, I'll close this issue in around Dec 20th 2023 and considered it's done.

No additional feedback, considering request done. Now closing ...


[Bug]: LightsBot does not work when supplied an Azure OpenAI API key and running locally against Microsoft 365 Developer Program Teams instance

Language
C#
Version
latest
Description
I wanted to check out the most recent updates to the Microsoft Teams bot space in regards to AI and can't seem to get the simple examples with Azure OpenAI to work. I can run the EchoBot succesfully. LightBot and ChefBot fail with the same exception though.
I receive the following exception when attempting to send the same light actions as the sample suggests.
System.Exception: Operation returned an invalid status code 'BadRequest'
 ---> Microsoft.Teams.AI.Exceptions.TeamsAIException: Operation returned an invalid status code 'BadRequest'
   --- End of inner exception stack trace ---
   at Microsoft.Teams.AI.AI.Planners.ActionPlanner`1.ContinueTaskAsync(ITurnContext context, TState state, AI`1 ai, CancellationToken cancellationToken)
   at Microsoft.Teams.AI.AI.Planners.ActionPlanner`1.BeginTaskAsync(ITurnContext context, TState state, AI`1 ai, CancellationToken cancellationToken)
   at Microsoft.Teams.AI.AI.AI`1.RunAsync(ITurnContext turnContext, TState turnState, Nullable`1 startTime, Int32 stepCount, CancellationToken cancellationToken)
   at Microsoft.Teams.AI.Application`1._OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken)
   at Microsoft.Teams.AI.Application`1.OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken)
   at Microsoft.Bot.Builder.MiddlewareSet.ReceiveActivityWithStatusAsync(ITurnContext turnContext, BotCallbackHandler callback, CancellationToken cancellationToken)
   at Microsoft.Bot.Builder.BotAdapter.RunPipelineAsync(ITurnContext turnContext, BotCallbackHandler callback, CancellationToken cancellationToken)

I'm using an Azure OpenAI deployment that we use for another bot that was created prior to all the Microsoft.Teams.AI library developments, so we know it works in some capacity. It's possible I might be screwing up the configurations for these sample applications somehow though.
The Azure OpenAI key and endpoint I am using are from here:

I've tried both the core domain name and with all the extra paths and query parameters. Both fail. Any thoughts on what could be going wrong?
Reproduction Steps
1. Open LightsBot.sln
2. Follow the instructions in the QuickStart guide to setup the Dev Tunnel and Prepare App Dependencies. https://github.com/microsoft/teams-ai/blob/main/getting-started/QUICKSTART.md#build-and-run-the-sample-app
3. Update appsettings.Development.json, Program.cs, and Prompts/tools/config.json to use the correct Azure OpenAI API key, Azure OpenAI Endpoint, and Model.
4. Build and run LightBot.csproj in Debug mode from Visual Studio.
5. Browser will open, navigate to Teams, and prompt to install the bot. If bot isn't installed then will prompt to open.
6. Open the chat with the Bot.
7. Send a `Turn lights on` message.
8. Receive exception back and the exception isn't very helpful in determining what went wrong exactly. I suspect it's due to Azure OpenAI because the EchoBot sample works fine and I'm able to install all of the different sample applications.

@adc-cjewett - Thank you for bringing this issue to our attention. We will look into it and get back to you shortly.

@adc-cjewett : I see it is leading to bad request error with gpt-4 model. Can you add gpt-4o model and keep the same in Program.cs file and validate?

@SubbaReddi It looks like changing the model to gpt-4o did work. Thank you!
We have both gpt-4 and gpt-4o models. Most of our applications are currently running gpt-4 as we prepare to move to gpt-4o. Are these samples only compatible with gpt-4o and later?


Reduce all messages that print packet contents to TRACE level

Debug level logging has a significant performance impact because several statements print actual packet data.  Reduce all those to trace.

Hmm, or for stdout packets, it could just print the packet index.  Maybe one location (in the daemon's pty service) could print the contents with trace level.


Migration from Map Quest API to Google Maps API in time module

Hi, @swapagarwal
I've changed usage of Map Quest to Google Maps in time module. I removed Map Quest dependency as well.

Thank you for taking the time to contribute! This is sincerely appreciated. 😇
(Powered by GitMate.io)


Test works but not in a new project UnityException.FindKernel failed

Hello keijiro thanks a lot for everything. I really like this, but i would like to use within my own project. The test you supplied works but when i try to use it in my own project it fails.
Im using a mac. any ideas?
Thanks a lot! your work is amazing!

It must work with Metal on macOS. Could you verify it? (change the graphics API to Metal, or enable Metal Editor Support)
https://forum.unity3d.com/threads/metal-editor.450548/

I'm closing this issue. Please feel free to reopen if you have further problems.


fix(runner): fail fast on concensus failure

A chain in follow mode (testnet) may reach a concensus failure. In those cases the process does not stop, as the cosmos layer stay up answering RPC requests, but no further progress is made.
This change detect this case by following the chain node's stderr, and failing the task immediately if a CONSENSUS FAILURE is printed.

Verified this locally. Here is a CI run on agoric-sdk using this change: https://github.com/Agoric/agoric-sdk/actions/runs/1808921648


adding flash comment

Description

A clear and concise summary of the change and which issue (if any) it fixes. Should also include relevant motivation and context.
Resolved or fixed issue:
Affirmation

[ ] My code follows the CONTRIBUTING.md guidelines

/semgrep triage


⚠ Bofrost.be has degraded performance

In 447040d, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 927 ms

Resolved: Bofrost.be performance has improved in db1ed58.


Prefix http kernel middleware entry with slash in readme

I think it's needed?

Thank you @dmyers !

Small contribution, but really great project. Just set it up yesterday.


Job events performance

Improves the performance of processing job events from 200 per second to 4000 per second.

Events per second:  4238.371749744774


Email OTP sent only for the user taken from the subject attribute step.

Describe the issue:

When email OTP configured as an authentication step, the current behaviour is to retrieve the user email from the user set to the step marked as the subject attribute step.
https://github.com/wso2-extensions/identity-outbound-auth-email-otp/blob/master/component/authenticator/src/main/java/org/wso2/carbon/identity/authenticator/emailotp/EmailOTPAuthenticator.java#L247
If the subject attribute step has not yet been reached, and the current authenticated user has email address claim configured, then we get the following error.

The official documentation does mention a requirement to pick the user attribute step.
https://is.docs.wso2.com/en/latest/guides/mfa/2fa-email-otp
How to reproduce:

Create a sample application.
Set basic authentication as first step and email OTP as second step.
Do not mark any step as the step to get user attributes.
Try to sign in to the sample application.
Login should fail.

Expected behavior:

If there is no user to be retrieved from a subject attribute step and the current authenticated user has an email adress claim configured, they should receive the email the OTP.
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: [e.g., IS 5.10.0, IS 5.9.0]
OS: [e.g., Windows, Linux, Mac]
Database: [e.g., MySQL, H2]
Userstore: [e.g., LDAP, JDBC]

Optional Fields
Related issues:

Suggested labels:

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Productionise relay services

Various fixes and improvements to get the relay services working robustly in production.
The main change however is to split the relayer into separate processes, a design which has better error discovery and robustness (The previous monolithic container design was a dead end). It is also a better fit for service orchestrators such as Nomad, K8s, Docker-Compose etc.
Changes:

Service management

Relay services now run in independent processes
Simplified logging (no need to pass loggers down into services now that there is only 1 service per process)
Eliminated buggy (and obsolete) deadlock detector heuristic

Configuration

Configuration now reorganised to better reflect the fields for listeners ("Sources"), and writers ("Sinks")
EIP-1554 FeeCap, TipCap, and GasLimit are now read from configuration

Bug fixes

Don't overpay for Ethereum EIP-1554 transactions. FeeCap & TipCap are automatically calculated. Only need to provide GasLimit to prevent flaky "eth_estimateGas` calls.
Listeners & Writers should not return an error if their main loops are terminated due to context cancellation (i.e via signals). This ensures that errgroup.Wait() returns the real error cause, not a random "context cancelled".
On listener/writer teardown, channel draining was flawed and could cause deadlock, leaving the process hanging where it could only be killed using SIGKILL.
BeefyEthereumWriter was not returning potential errors from its main loop, causing the service not to terminate as required.

Example UX changes:
snowbridge-relay run beefy --config /path/to/config.toml --ethereum.private-key-file /path/to/key
snowbridge-relay run ethereum --config /path/to/config.toml --substrate.private-key-file /path/to/key

Example config for ethereum relay:
{
  "source": {
    "data-dir": "/tmp/snowbridge-e2e-config",
    "ethereum": {
      "endpoint": "ws://localhost:8546"
    },
    "descendants-until-final": 3,
    "contracts": {
      "BasicOutboundChannel": "0xdeadbeef",
      "IncentivizedOutboundChannel": "0xdeadbeef"
    }
  },
  "sink": {
    "parachain": {
      "endpoint": "ws://localhost:11144"
    }
  }
}

E2E tests pass cleanly.

this all looks great, thx a lot! context cancelled fix will help a ton too :).
a few minor comments but otherwise looks good to merge if e2e tests pass.
do the duplicate and malicious configurations still work as expected?


License update - deregister source_id BNU-ESM-1-1

From: Duoying Ji
Date: Wednesday, June 15, 2022 at 10:59 PM
To: Durack, Paul J.
Subject: Re: CMIP6 data licensing update
Dear Paul,
Thanks for your email. Please deregister BNU-ESM-1-1.
Best,
Duoying

@duoying thanks for the update, both the source_id BNU-ESM-1-1 and institution_id BNU have been deregistered


Microsoft Edge V.41.16299.666.0 - Redirect to example.com

Hi,
Merchant is experiencing their returnurl and cancelurls to redirect to example.com after successful or non-successful payments with microsoft edge.
Microsoft Edge V.41.16299.666.0
Issue occurs in both Sandbox and Production environments.

Is the edge browser not supported by PayPal checkout.js ? I am getting this issue in edge V42.17134.
We moved to paypal-checkout.js after we were told, it has got edge support ?

Hey @cheryjose,
Edge is certainly supported by Checkout.js. We have an internal ticket going for this bug, and I'll update you with the status as it changes.

Hey @cheryjose and @gladde there are quite a few reports mentioning a similar bug. Could you please see this comment on issue #959 and let me know if this solves your problem?
This will help us keep track of which ticket is related to which bug, since the example.com redirect can happen for a few different reasons.


feat(2890117178): bridge is full new ui

Description of the Changes

Removed the isDisabled prop
Changed the logic of displaying the error massage below the <TokenInput /> component
Added a function: BridgeIsFullError which returns component

Solves #2890117178

Checklist

[x] Changes have been done against dev branch, and PR does not conflict.
[x] Manually tests of the main Application flows are done and passed.
[ ] New unit / functional tests have been added (whenever applicable).
[x] Automation tests are passing in local environment.
[ ] Docs have been updated (whenever relevant).
[x] PR title is follow the Conventional Commits convention: <type>[optional scope]: <description>, e.g: fix: prevent racing of requests

This change is

:tada: This PR is included in version 1.9.0-dev.9 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

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

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


Sysbox integration test "build with inner images" sometimes fails.

Sysbox integration test "build with inner images" is currently flaky, as it sometimes fails:
not ok 4 build with inner images
# (in test file tests/dind/build.bats, line 36)
#   `mount -t shiftfs -o mark /lib/modules/$(uname -r) /lib/modules/$(uname -r)' failed with status 32
# mount: /lib/modules/5.4.0-1032-gcp: wrong fs type, bad option, bad superblock on /lib/modules/5.4.0-1032-gcp, missing codepage or helper program, or other error.

The part of the test that fails is one in which the test randomly (with 50% probability) mounts shiftfs on the test container's /lib/modules/$(uname -r) directory prior to creating sysbox containers. The goal is to see how sysbox-mgr reacts to those pre-existing shiftfs mounts.
It's not clear why this fails, as I've tried to manually reproduce without much success. This needs further investigation. Also, this test was passing consistently in the past.
This is causing sysbox CI to fail.

Issue is stale now; test consistently passes now. Closing.