[Camera RGB][synchronous mode]: sensor_tick not in synch with fixed_delta_seconds

Problem - short description
I have observed weird (atleast to me) behavior when using sensor_tick of the camera sensor (didn't try others yet) and the synchronous mode.

As soon as a value is set (different than 0), the sensor data is not being transmitted during the second tick.
Additionally, the sensor data doesn't get transmitted according to the least common multiple

See Observations for more info.
Example script
This is a modified sensor_synchronization.py example:
import glob
import os
import sys
from queue import Queue
from queue import Empty

sys.path.insert(0, r'C:\workdir\installations\carla\<IP_ADDRESS>\CARLA_<IP_ADDRESS>\WindowsNoEditor\PythonAPI\carla\dist\carla-0.9.9-py3.7-win-amd64.egg')

import carla

def sensor_callback(sensor_data, sensor_queue, sensor_name):
    # just to make sure that something weird doesn't happen due to the queue
    print("RECEIVED sensor data for frame: {}".format(sensor_data.frame))

    sensor_queue.put((sensor_data.frame, sensor_name, sensor_data.timestamp))

def main():
    # We start creating the client
    client = carla.Client('localhost', 2000)
    client.set_timeout(2.0)
    world = client.get_world()

    try:
        original_settings = world.get_settings()
        settings = world.get_settings()

        # We set CARLA syncronous mode
        settings.fixed_delta_seconds = 0.02
        settings.synchronous_mode = True
        world.apply_settings(settings)

        sensor_queue = Queue()

        blueprint_library = world.get_blueprint_library()
        cam_bp = blueprint_library.find('sensor.camera.rgb')

        sensor_list = []

        ## 1. no sensor tick changes
        #cam_bp.set_attribute('sensor_tick', '0.0')  # 2. manually set to 0.0
        #cam_bp.set_attribute('sensor_tick', '0.02')  # 3. manually set to 0.02 (same as fixed_delta_seconds)
        #cam_bp.set_attribute('sensor_tick', '0.04')  # 4. manually set to 0.04 (double the value of fixed_delta_seconds)
        #cam_bp.set_attribute('sensor_tick', '0.03')  # 5. manually set to 0.03 (least common multiple is 0.06)
        cam01 = world.spawn_actor(cam_bp, carla.Transform())
        cam01.listen(lambda data: sensor_callback(data, sensor_queue, "camera01"))
        sensor_list.append(cam01)

        # Main loop
        for i in range(10):
            # Tick the server
            world.tick()
            w_frame = world.get_snapshot().frame
            w_time = world.get_snapshot().timestamp
            print("\nWorld's frame: %d timestamp: %f" % (w_frame, w_time.elapsed_seconds))

            try:
                for i in range(0, len(sensor_list)):
                    s_frame = sensor_queue.get(True, 1.0)
                    print("    Frame: %d   Sensor: %s Timestamp: %f" % (s_frame[0], s_frame[1], s_frame[2]))

            except Empty:
                print("    Some of the sensor information is missed")

    finally:
        world.apply_settings(original_settings)
        for sensor in sensor_list:
            sensor.destroy()

if __name__ == "__main__":
    try:
        main()
    except KeyboardInterrupt:
        print(' - Exited by user.')

In order to try it out on your machine:

modify sys.path accordingly
uncomment the setting of sensor_tick which interests you (see Observations)

And, I didn't mess with the queue that much, just added a print to make sure that i don't miss some sensor data due to the nature of the example (queue and popping).
Observations
I use fixed_delta_seconds of 0.02 in all tests, and modify the sensor_tick of the camera to observe the following:

sensor_tick not modified -> image received every tick [EXPECTED]

World's frame: 178547 timestamp: 2195.663063
RECEIVED sensor data for frame: 178547
    Frame: 178547   Sensor: camera01 Timestamp: 2195.663063

World's frame: 178548 timestamp: 2195.683063
RECEIVED sensor data for frame: 178548
    Frame: 178548   Sensor: camera01 Timestamp: 2195.683063

World's frame: 178549 timestamp: 2195.703063
RECEIVED sensor data for frame: 178549
    Frame: 178549   Sensor: camera01 Timestamp: 2195.703063

World's frame: 178550 timestamp: 2195.723063
RECEIVED sensor data for frame: 178550
    Frame: 178550   Sensor: camera01 Timestamp: 2195.723063

World's frame: 178551 timestamp: 2195.743063
RECEIVED sensor data for frame: 178551
    Frame: 178551   Sensor: camera01 Timestamp: 2195.743063

World's frame: 178552 timestamp: 2195.763063
RECEIVED sensor data for frame: 178552
    Frame: 178552   Sensor: camera01 Timestamp: 2195.763063

World's frame: 178553 timestamp: 2195.783063
RECEIVED sensor data for frame: 178553
    Frame: 178553   Sensor: camera01 Timestamp: 2195.783063

World's frame: 178554 timestamp: 2195.803063
RECEIVED sensor data for frame: 178554
    Frame: 178554   Sensor: camera01 Timestamp: 2195.803063

World's frame: 178555 timestamp: 2195.823063
RECEIVED sensor data for frame: 178555
    Frame: 178555   Sensor: camera01 Timestamp: 2195.823063

World's frame: 178556 timestamp: 2195.843063
RECEIVED sensor data for frame: 178556
    Frame: 178556   Sensor: camera01 Timestamp: 2195.843063

sensor_tick manually set to 0.0 ->  image received every tick [EXPECTED]

World's frame: 182146 timestamp: 2241.293400
RECEIVED sensor data for frame: 182146
    Frame: 182146   Sensor: camera01 Timestamp: 2241.293400

World's frame: 182147 timestamp: 2241.313400
RECEIVED sensor data for frame: 182147
    Frame: 182147   Sensor: camera01 Timestamp: 2241.313400

World's frame: 182148 timestamp: 2241.333400
RECEIVED sensor data for frame: 182148
    Frame: 182148   Sensor: camera01 Timestamp: 2241.333400

World's frame: 182149 timestamp: 2241.353400
RECEIVED sensor data for frame: 182149
    Frame: 182149   Sensor: camera01 Timestamp: 2241.353400

World's frame: 182150 timestamp: 2241.373400
RECEIVED sensor data for frame: 182150
    Frame: 182150   Sensor: camera01 Timestamp: 2241.373400

World's frame: 182151 timestamp: 2241.393400
RECEIVED sensor data for frame: 182151
    Frame: 182151   Sensor: camera01 Timestamp: 2241.393400

World's frame: 182152 timestamp: 2241.413400
RECEIVED sensor data for frame: 182152
    Frame: 182152   Sensor: camera01 Timestamp: 2241.413400

World's frame: 182153 timestamp: 2241.433400
RECEIVED sensor data for frame: 182153
    Frame: 182153   Sensor: camera01 Timestamp: 2241.433400

World's frame: 182154 timestamp: 2241.453400
RECEIVED sensor data for frame: 182154
    Frame: 182154   Sensor: camera01 Timestamp: 2241.453400

World's frame: 182155 timestamp: 2241.473400
RECEIVED sensor data for frame: 182155
    Frame: 182155   Sensor: camera01 Timestamp: 2241.473400

sensor_tick manually set to 0.02 -> image NOT received for the second tick, afterwards received every tick [NOT EXPECTED]

World's frame: 184174 timestamp: 2270.390377
RECEIVED sensor data for frame: 184174
    Frame: 184174   Sensor: camera01 Timestamp: 2270.390377

World's frame: 184175 timestamp: 2270.410377
    Some of the sensor information is missed                                            <---- MISS ALWAYS on the second tick

World's frame: 184176 timestamp: 2270.430377
RECEIVED sensor data for frame: 184176
    Frame: 184176   Sensor: camera01 Timestamp: 2270.430377

World's frame: 184177 timestamp: 2270.450377
RECEIVED sensor data for frame: 184177
    Frame: 184177   Sensor: camera01 Timestamp: 2270.450377

World's frame: 184178 timestamp: 2270.470377
RECEIVED sensor data for frame: 184178
    Frame: 184178   Sensor: camera01 Timestamp: 2270.470377

World's frame: 184179 timestamp: 2270.490377
RECEIVED sensor data for frame: 184179
    Frame: 184179   Sensor: camera01 Timestamp: 2270.490377

World's frame: 184180 timestamp: 2270.510377
RECEIVED sensor data for frame: 184180
    Frame: 184180   Sensor: camera01 Timestamp: 2270.510377

World's frame: 184181 timestamp: 2270.530377
RECEIVED sensor data for frame: 184181
    Frame: 184181   Sensor: camera01 Timestamp: 2270.530377

World's frame: 184182 timestamp: 2270.550377
RECEIVED sensor data for frame: 184182
    Frame: 184182   Sensor: camera01 Timestamp: 2270.550377

World's frame: 184183 timestamp: 2270.570377
RECEIVED sensor data for frame: 184183
    Frame: 184183   Sensor: camera01 Timestamp: 2270.570377

sensor_tick manually set to 0.04 -> data not received for the second and third tick [NOT EXPECTED]; afterwards it is received every second tick [EXPECTED]

World's frame: 192157 timestamp: 2367.593661
RECEIVED sensor data for frame: 192157
    Frame: 192157   Sensor: camera01 Timestamp: 2367.593661

World's frame: 192158 timestamp: 2367.613661
    Some of the sensor information is missed                                    <-- MISS

World's frame: 192159 timestamp: 2367.633661
    Some of the sensor information is missed                                    <-- MISS

World's frame: 192160 timestamp: 2367.653661
RECEIVED sensor data for frame: 192160
    Frame: 192160   Sensor: camera01 Timestamp: 2367.653661

World's frame: 192161 timestamp: 2367.673661
    Some of the sensor information is missed

World's frame: 192162 timestamp: 2367.693661
RECEIVED sensor data for frame: 192162
    Frame: 192162   Sensor: camera01 Timestamp: 2367.693661

World's frame: 192163 timestamp: 2367.713661
    Some of the sensor information is missed

World's frame: 192164 timestamp: 2367.733661
RECEIVED sensor data for frame: 192164
    Frame: 192164   Sensor: camera01 Timestamp: 2367.733661

World's frame: 192165 timestamp: 2367.753661
    Some of the sensor information is missed

World's frame: 192166 timestamp: 2367.773661
RECEIVED sensor data for frame: 192166
    Frame: 192166   Sensor: camera01 Timestamp: 2367.773661

sensor_tick manually set to 0.03 - weird sequence of HIT MISS HIT MISS at the begininng

World's frame: 205626 timestamp: 2531.280411
RECEIVED sensor data for frame: 205626
    Frame: 205626   Sensor: camera01 Timestamp: 2531.280411

World's frame: 205627 timestamp: 2531.300411
    Some of the sensor information is missed

World's frame: 205628 timestamp: 2531.320411
RECEIVED sensor data for frame: 205628
    Frame: 205628   Sensor: camera01 Timestamp: 2531.320411

World's frame: 205629 timestamp: 2531.340411
    Some of the sensor information is missed

World's frame: 205630 timestamp: 2531.360411
RECEIVED sensor data for frame: 205630
    Frame: 205630   Sensor: camera01 Timestamp: 2531.360411

World's frame: 205631 timestamp: 2531.380411
RECEIVED sensor data for frame: 205631
    Frame: 205631   Sensor: camera01 Timestamp: 2531.380411

World's frame: 205632 timestamp: 2531.400411
    Some of the sensor information is missed

World's frame: 205633 timestamp: 2531.420411
RECEIVED sensor data for frame: 205633
    Frame: 205633   Sensor: camera01 Timestamp: 2531.420411

World's frame: 205634 timestamp: 2531.440411
RECEIVED sensor data for frame: 205634
    Frame: 205634   Sensor: camera01 Timestamp: 2531.440411

World's frame: 205635 timestamp: 2531.460411
    Some of the sensor information is missed

Problems
Maybe some of the questions below are not bugs (you know better than I do), but based on the information available in the documentation, and without looking deeper into the workings of UE, I couldn't figure out the behavior. We can extend the docs if needed (I can make a PR as long as I understand the behavior - np).

Why is data always skipped for the second tick (case 3) ?
** Is it because of SetActorTickInterval which is used?
In case 4, why don't we get data for the 2nd and 3rd tick? I would expect something like:

1.  0.00 -> 0.02    HIT (if I interpret this as an initial value)
2.  0.02 -> 0.04    MISS (0.04 seconds didn't pass from 0.02 -> 0.04)
3.  0.04 -> 0.06    HIT (at 0.06, 0.04 seconds passed: 0.02 -> 0.06)
4.  0.06 -> 0.08    MISS
5.  0.08 -> 0.10    HIT
6.  0.10 -> 0.12    MISS
7.  0.12 -> 0.14    HIT
8.  0.14 -> 0.16    MISS

In case 5, why do we have a sequence of HIT MISS HIT MISS at the beginning? I would expect something like:

1.  0.00 -> 0.02    HIT (if I interpret this as an initial value)
2.  0.02 -> 0.04    MISS (0.03 seconds didn't pass from 0.02 -> 0.04)
3.  0.04 -> 0.06    HIT (at 0.05, 0.03 seconds passed)
4.  0.06 -> 0.08    HIT (at 0.08 0.03 seconds passed again)
5.  0.08 -> 0.10    MISS
6.  0.10 -> 0.12    HIT
7.  0.12 -> 0.14    HIT
8.  0.14 -> 0.16    MISS

Could it be related to how the ticks are stored (double vs float) ?
Related issues

#3385 and the related PR and testing issue

I couldn't find anything useful on the discord channel as well
Environment
Platform: Windows 10
Python: Python 3.7.7
Carla: <IP_ADDRESS>, <IP_ADDRESS>, 0.9.10 (ignored due to the linked issue)

Is there a solution for this issue without waiting till the next release ?

Hi, I found a similar issue in Carla 0.9.10, changing the sensor tick for the camera just doesn't work. The timestamps of frames do not change accordingly after we set a different sensor tick.
Do you find any solution?

at the latest version 0.9.11 they solved this issue, but i didn't try it yet.

at the latest version 0.9.11 they solved this issue, but i didn't try it yet.

Thanks. I also tried the async mode, it does not work either. And the real sensor tick depends on the quality of rendering. Did you encounter a similar issue?

sorry i didn't go through this issue before, but i checked the bugs they solved in the latest version, and they mentioned it.

@OmarAbdElNaser Thanks. Where did they mention it's fixed? Can you direct me? I saw something like Fixed bug causing camera-based sensors to stop sending data, not sure it is related though.

This is what i'm refering to, the camera issue was sending data without caring about the sensor tick, they said they solved it.

@OmarAbdElNaser Great, I will test it with the new version and let you know if it's really fixed. Thanks.

@OmarAbdElNaser I tested 0.9.11, the sensor_tick functionality has been improved, at least in the synchronized mode. I see the sensor tick setting is effective if you don't choose a very small value, this is expected due to the performance limitation of our system I guess.

This is not fixed. Problem still persists.
e.g. in case 4 from my description, we still get 2 misses one after the other.
Tried with 0.9.13.
Please reopen the issue.


vistir assumes it has chmod permissions, preventing pipenv lock from completing

Issue description
We are running pipenv on a shared drive that has permissions set at the share/mount level, not at the file level, which means that chmod will always fail.
When running pipenv lock, a temporary file is created within the current directory. Near the end of the process, an unprotected chmod is attempted on that file, which results in an exception being thrown, Pipfile.lock not being updated, and the temporary file not being deleted.
The trouble is here:
https://github.com/pypa/pipenv/blob/5c01c6824156be093b291a364230df97c05c9880/pipenv/vendor/vistir/contextmanagers.py#L237
Expected result
Pipfile.lock updates without issue.
Actual result
$ pipenv lock
Locking [dev-packages] dependencies…
✔ Success!
Locking [packages] dependencies…
✔ Success!
Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pipenv/cli/command.py", line 332, in lock
    pypi_mirror=state.pypi_mirror,
  File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 1088, in do_lock
    project.write_lockfile(lockfile)
  File "/usr/local/lib/python3.6/site-packages/pipenv/project.py", line 840, in write_lockfile
    self.lockfile_location, **open_kwargs
  File "/usr/lib64/python3.6/contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/vistir/contextmanagers.py", line 224, in atomic_open_for_write
    os.chmod(f.name, stat.S_IWUSR | stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH)
PermissionError: [Errno 1] Operation not permitted: '/.../.__atomic-writeed7p1955'

$ chmod 0644 .__atomic-writeed7p1955
chmod: changing permissions of ‘.__atomic-writeed7p1955’: Operation not permitted

Steps to replicate

Prevent chmod from succeeding in the current directory.
Run pipenv lock.
Wait until the end.
Notice that an exception is thrown, Pipfile.lock has not been updated, and a temporary file is left behind.

Pipenv version: '2018.11.26'
PEP 508 Information:
{'implementation_name': 'cpython',
 'implementation_version': '3.6.8',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '3.10.0-1062.18.1.el7.x86_64',
 'platform_system': 'Linux',
 'platform_version': '#1 SMP Tue Mar 17 23:49:17 UTC 2020',
 'python_full_version': '3.6.8',
 'python_version': '3.6',
 'sys_platform': 'linux'}

Also filed sarugaku/vistir#110 upstream.

Thanks for the report! I'll follow up over there as we may need to try a few things before we arrive at a decent resolution.

This was resolved in #4255 due to vendored updates. Thanks for reporting!


feat(UI): Item accordion now have dynamic cursor

Changes

pointer cursor is used when item is enabled
grab cursor when label is clicked
label now grows to use all available space (fixes #682)
help cursor is used when item is disabled to indicate the scroll to item feature

UI preview
https://github.com/user-attachments/assets/0aaea1b2-ba8c-400a-af95-7c2e2698af5f
Fixes #685

Super cool the scroll!


Wrong grid-template-areas when minified

Have you read the Contributing Guidelines on issues?

[X] I have read the Contributing Guidelines on issues.

Prerequisites

[X] I'm using the latest version of Docusaurus.
[X] I have tried the npm run clear or yarn clear command.
[X] I have tried rm -rf node_modules yarn.lock package-lock.json and re-installing packages.
[x] I have tried creating a repro with https://new.docusaurus.io.
[X] I have read the console error message carefully (if applicable).

Description
CSS value for grid-template-areas gets transformed during minification.
I use the following CSS:
.project {
  display: grid;
  grid-template-areas:
    'b a'
    'b c';
}

Then it gets transformed into:
.project_bxJZ{display:grid;grid-template-areas:"c d" "e c"}

e and c should be reversed.
Also tested with USE_SIMPLE_CSS_MINIFIER=true btu the result is the same.
I need to disable minification with --no-minify as a workaround.
Reproducible demo
https://stackblitz.com/edit/github-rfgrzj?file=src%2Fpages%2Findex.module.css
Steps to reproduce

Stop the running server
Run yarn build
Look at file build/assets/css/styles.8cc5e1e4.css and search for grid-template-areas
CSS value is now "c d" "e c"

Expected behavior
Order of areas in minified CSS should respect the original CSS declaration.
Actual behavior
Order is not respected and design is broken.
Your environment

Public source code: https://github.com/tonai/blog/blob/main/src/components/Project/styles.module.css
Public site URL: https://tonai.github.io/blog/projects/os-projects (Desktop version)
Docusaurus version used: 3.4.0
Environment name and version (e.g. Chrome 89, Node.js 16.4):  Chrome Version 126.0.6478.182 (Build officiel) (64 bits), node v20.15.1
Operating system and version (e.g. Ubuntu 20.04.2 LTS): Ubuntu 22.04.4 LTS

Self-service

[ ] I'd be willing to fix this bug myself.

This appears to be a cssnano bug. You can reproduce it in their playground: https://cssnano.github.io/cssnano/playground/ with the "Preset Advanced" option. Could you report the bug to them instead?

@tonai is this issue solved by now

Nop still an issue on cssnano side.
For now I don't use minification.

Please try canary and Docusaurus Faster, this should be fixed with the LightningCSS migration.

I can confirm that this problem doesn't occur with docusaurus faster.


'eplot'  Not working

None of the code in the examples notebook eplot usage example.ipynb is working
I get errors:
trying to setup:
eplot.set_config(return_type='HTML') # default by htm
gives "module 'eplot' has no attribute 'set_config'"
df.col3.eplot()
gives"'Series' object has no attribute 'eplot'"
and
df.eplot()
gives " 'DataFrame' object has no attribute 'eplot'"

Did you import the module by from epolot import eplot or import eplot successfully?


[CLOSED] Generate Rewrite Tactics for Unfolding Definitions

 Issue by euisuny
Wednesday Jan 29, 2020 at 16:21 GMT
Originally opened as https://github.com/antalsz/hs-to-coq/issues/140

Haskell function definitions that use where blocks to define local helper functions and recursive functions are compiled to Coq that unfolds in a cumbersome way.
It would be nice to mechanically introduce rewrite lemmas that unfolds definitions "as expected" and add them to the Rewrite hint database.

 Comment by lastland
Monday Feb 03, 2020 at 23:39 GMT

This sounds useful to have. Another use case for this is with type classes: currently, we have to manually do several unfolds or use computations to get the actual definition of certain type class methods. Automatically generated rewrites would help this as well.
As for local definitions introduced by where, how do you think they should be compiled? One option I can think of is making the local definitions global, but we will need to be careful with their names so that they won't collide with other top-level function definitions. Is that what you have in mind?

 Comment by euisuny
Thursday Feb 27, 2020 at 02:42 GMT

Actually, it turns out (conveniently) that this can be solved by a judicial use of the fold tactic, no need to burden the rewrite database!


CLOUD-46412 move template related classes to template modul

@keyki no any significant change just moved template related classes to template modul from api

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1730/


Handleing diffrent type of rows

As I noticed you are overriding getItemViewType method. I wanted to know if you have suggestion for handling different type the rows.

You just have to change return position == 0 ? VIEW_TYPES.HEADER : VIEW_TYPES.NORMAL; to return your own viewtype if it's not position = 0. The only restriction is that the first view shouldn't be of type VIEW_TYPES.FIRST_VIEW because of screen orientation issues. Other than that you are free to change your viewtype implementation:
Example
@Override
public int getItemViewType(int position) {
    if (mRecyclerAdapterMethods == null)
        throw new NullPointerException("You must call implementRecyclerAdapterMethods");
    if (position == 1)
        return VIEW_TYPES.FIRST_VIEW;
    if(position==0)
          return VIEW_TYPES.HEADER;
    if (position%2 ==0)
          return VIEW_TYPES.TYPE1;
    return VIEW_TYPES.TYPE2;
}

@nekofar #14


Release v1.18.0

This is a draft of changelog for the v1.18.0 release.
Here you can find all related translations changes: v1.17.0...master.

⚠ Do not merge this pull request manually ⚠
You should approve this pull request instead. After approving, I will automatically update it (release date needs to be adjusted), merge, and tag a new release. You can read more about the process on forum.

Show release notes preview
v1.18.0

新增翻譯:

blomstra/database-queue
blomstra/horizon
datlechin/flarum-simple-tour-guide
fof/anti-spam
fof/clockwork
hikarilan/flarum-passkey-login
imdong/flarum-ext-spam-alert
imdong/flarum-ext-visible-to-op-only
litalino/flarum-adblock
litalino/flarum-geo-weather-widget
litalino/flarum-more-bbcode
nodeloc-chatgpt
sycho/flarum-force-password-reset
umhelper/oauth-clerk

更新翻譯:

datlechin/flarum-chatgpt
datlechin/flarum-copy-links
datlechin/flarum-more-discussions
fof/ban-ips
fof/best-answer
fof/filter
fof/follow-tags
fof/forum-statistics-widget
fof/geoip
fof/oauth
fof/reactions
fof/split
fof/terms
fof/upload
ianm/follow-users
ianm/translate
ianm/twofactor
katosdev/signature
kilowhat/flarum-ext-rich-embeds

全部變化：v1.17.0...v1.18.0

Success! Now you can announce new release on forum:
## 版本 [`v1.18.0`](https://github.com/flarum-lang/chinese-traditional/releases/tag/v1.18.0)

**新增翻譯**:

* [`blomstra/database-queue`](https://github.com/blomstra/flarum-ext-database-queue)
* [`blomstra/horizon`](https://github.com/blomstra/flarum-ext-horizon)
* [`datlechin/flarum-simple-tour-guide`](https://github.com/datlechin/flarum-simple-tour-guide)
* [`fof/anti-spam`](https://github.com/FriendsOfFlarum/anti-spam)
* [`fof/clockwork`](https://github.com/FriendsOfFlarum/clockwork)
* [`hikarilan/flarum-passkey-login`](https://github.com/shaokeyibb/flarum-passkey-login)
* [`imdong/flarum-ext-spam-alert`](https://github.com/imdong/flarum-ext-spam-alert)
* [`imdong/flarum-ext-visible-to-op-only`](https://github.com/imdong/flarum-ext-visible-to-op-only)
* [`litalino/flarum-adblock`](https://github.com/Litalino/flarum-adblock)
* [`litalino/flarum-geo-weather-widget`](https://github.com/Litalino/flarum-geo-weather-widget)
* [`litalino/flarum-more-bbcode`](https://github.com/Litalino/flarum-more-bbcode)
* `nodeloc-chatgpt`
* [`sycho/flarum-force-password-reset`](https://github.com/SychO9/flarum-force-password-reset)
* [`umhelper/oauth-clerk`](https://github.com/UMHelper/flarum-ext-oauth-clerk)

**更新翻譯**:

* [`datlechin/flarum-chatgpt`](https://github.com/datlechin/flarum-chatgpt)
* [`datlechin/flarum-copy-links`](https://github.com/datlechin/flarum-copy-links)
* [`datlechin/flarum-more-discussions`](https://github.com/datlechin/flarum-more-discussions)
* [`fof/ban-ips`](https://github.com/FriendsOfFlarum/ban-ips)
* [`fof/best-answer`](https://github.com/FriendsOfFlarum/best-answer)
* [`fof/filter`](https://github.com/FriendsOfFlarum/filter)
* [`fof/follow-tags`](https://github.com/FriendsOfFlarum/follow-tags)
* [`fof/forum-statistics-widget`](https://github.com/FriendsOfFlarum/forum-statistics-widget)
* [`fof/geoip`](https://github.com/FriendsOfFlarum/geoip)
* [`fof/oauth`](https://github.com/FriendsOfFlarum/oauth)
* [`fof/reactions`](https://github.com/FriendsOfFlarum/reactions)
* [`fof/split`](https://github.com/FriendsOfFlarum/split)
* [`fof/terms`](https://github.com/FriendsOfFlarum/terms)
* [`fof/upload`](https://github.com/FriendsOfFlarum/upload)
* [`ianm/follow-users`](https://github.com/imorland/follow-users)
* [`ianm/translate`](https://extiverse.com/extension/ianm/translate)
* [`ianm/twofactor`](https://github.com/imorland/flarum-ext-twofactor)
* [`katosdev/signature`](https://github.com/katosdev/signature)
* [`kilowhat/flarum-ext-rich-embeds`](https://extiverse.com/extension/kilowhat/flarum-ext-rich-embeds)

全部變化：[v1.17.0...v1.18.0](https://github.com/flarum-lang/chinese-traditional/compare/v1.17.0...v1.18.0)

更新命令：

```console
composer update flarum-lang/chinese-traditional
php flarum cache:clear
```


[Task]: Send originalQueryId parameters to the create Query API

Is there an existing issue for this?

[x] I have searched the existing issues

SubTasks
To measure the impact of query modules in Appsmith. We need to track the amount of time a user takes to edit a copied query. Today, we do not have a mechanism to understand if a query in question is a copied query. To fix this, the data model of the Query action needs to change to include the originalQueryId if a query is, in fact, a copied query.

[ ] When a query is first copied, there will be no originalQueryId in the action object. In this scenario the client will populate the originalQueryId field and call the POST API to create the copied query.

[ ] If the query is already a copied query, the client will duplicate the value of the originalQueryId when calling the POST API to create the copied query.

Related discussion on Notion

@riodeuno
The current payload for creating a new action for the PostgreSQL plugin is as follows
{
  "actionConfiguration": {
    "pluginSpecifiedTemplates": [
      {
        "value": true
      }
    ]
  },
  "name": "Query3",
  "pageId": "64959533c9ec61457bf6be1d",
  "pluginId": "64297e482273a30d71cf669b",
  "datasource": {
    "id": "6492df2c9e16d365ffd0d30c"
  },
  "eventData": {
    "actionType": "Query",
    "from": "SUBMENU",
    "dataSource": "Users",
    "datasourceId": "6492df2c9e16d365ffd0d30c",
    "pluginName": "PostgreSQL",
    "isMock": true
  }
}

Although the client side sends some data in the eventData attribute, the server doesn't capture this data.
Do you think the server should capture the entire eventData attribute and the new parameter in question originalQueryIdshould also be part of it?

Case
Creating a query from scratch

Request Payload (New)
{
    "actionConfiguration": {
        "pluginSpecifiedTemplates": [
            {
                "value": true
            }
        ]
    },
    "name": "Query5",
    "pageId": "64959454c9ec61457bf6be1a",
    "pluginId": "64297e482273a30d71cf669b",
    "datasource": {
        "id": "6492df2c9e16d365ffd0d30c"
    },
    "eventData": {
        "analyticsData": {
            "originalActionId": null,
            "actionType": "Query",
            "from": "SUBMENU",
            "dataSource": "Users",
            "datasourceId": "6492df2c9e16d365ffd0d30c",
            "pluginName": "PostgreSQL",
            "isMock": true
        }
    }
}

Response
{
    "actionConfiguration": {
        "pluginSpecifiedTemplates": [
            {
                "value": true
            }
        ]
    },
    "name": "Query5",
    "pageId": "64959454c9ec61457bf6be1a",
    "pluginId": "64297e482273a30d71cf669b",
    "datasource": {
        "id": "6492df2c9e16d365ffd0d30c"
    },
    "eventData": {
        "analyticsData": {
            "actionType": "Query",
            "from": "SUBMENU",
            "dataSource": "Users",
            "datasourceId": "6492df2c9e16d365ffd0d30c",
            "pluginName": "PostgreSQL",
            "isMock": true
        }
    }
}

Case
Create a copy of an existing query through Copy CTA

Request Payload (New)
{
    "actionConfiguration": {
        "pluginSpecifiedTemplates": [
            {
                "value": true
            }
        ]
    },
    "name": "CopyOfQuery5",
    "pageId": "64959454c9ec61457bf6be1a",
    "pluginId": "64297e482273a30d71cf669b",
    "datasource": {
        "id": "6492df2c9e16d365ffd0d30c"
    },
    "eventData": {
        "analyticsData": {
            "originalActionId": "64991ac8350bc33377739442",
            "actionType": "Query",
            "from": "SUBMENU",
            "dataSource": "Users",
            "datasourceId": "6492df2c9e16d365ffd0d30c",
            "pluginName": "PostgreSQL",
            "isMock": true
        }
    }
}

Response (New)
{
    "actionConfiguration": {
        "pluginSpecifiedTemplates": [
            {
                "value": true
            }
        ]
    },
    "name": "CopyOfQuery5",
    "pageId": "64959454c9ec61457bf6be1a",
    "pluginId": "64297e482273a30d71cf669b",
    "datasource": {
        "id": "6492df2c9e16d365ffd0d30c"
    },
    "eventData": {
        "analyticsData": {
            "originalActionId": "xyz",
            "actionType": "Query",
            "from": "SUBMENU",
            "dataSource": "Users",
            "datasourceId": "6492df2c9e16d365ffd0d30c",
            "pluginName": "PostgreSQL",
            "isMock": true
        }
    }
}

A lot of fields are missing between the current response data. Such as
"errorReports": [],
"executeOnLoad": false,
"dynamicBindingPathList": [],
"isValid": true,
"invalids": [],

And also from the nested field "eventData", "analyticData" filed is added but other fields removed. Is there a plan to deprecate these fields or is it just to keep the response and request concise for documentation?

@tkAppsmith

A lot of fields are missing between the current response data.

Apologies for missing out on those fields. All the fields in the current response data will continue to appear in the new response as well. In addition, some analytics-related data will also appear under a new attribute e.g. eventData. The response that I shared above is not the final one but it's good enough to explain what type of changes we are going to implement.

And also from the nested field "eventData", "analyticData" filed is added but other fields removed. Is there a plan to deprecate these fields or is it just to keep the response and request concise for documentation?

Can you please elaborate?

Can you please elaborate?

It is the same comment but for the "eventData" field of the response. I think your last comment resolves this as well. Thanks.

@tkAppsmith Can we finalize the request payload and response? Do you see any problem with the proposal above?

I think the above proposal is fine. One last query I had is that the current request also has eventData field of which following fields are part of.
"eventData": {
    "actionType": "Query",
    "from": "SUBMENU",
    "dataSource": "users",
    "datasourceId": "6492c32222f37825415f1283",
    "pluginName": "PostgreSQL",
    "isMock": false
  }

Now we are nesting those fields in analyticsData under eventData field. Since this is not yet captured by server then it shall be fine but any other place can you think of where this change might break stuff?
"eventData": {
        "analyticsData": {
            "originalActionId": "xyz",
            "actionType": "Query",
            "from": "SUBMENU",
            "dataSource": "Users",
            "datasourceId": "6492df2c9e16d365ffd0d30c",
            "pluginName": "PostgreSQL",
            "isMock": true
        }
    }

Although the client side sends this eventData as part of the request payload the server doesn't capture this till now. I don't think the change mentioned above will break any stuff. @tkAppsmith

Decision
So, we are going to introduce a new attribute in the request payload to send all the data related to analytics. Let's call this new attribute eventData. And inside eventData there's another attribute named analyticsData. Inside analyticsData attribute you can send whatever you want and those attributes will be reflected in the GET action API.
Scope of change

API
Query

Out of scope

JS Object
Note: If JS object requires similar analytics then we need to implement this in JS object in the same way as JS object has its own endpoint of creating/copying a JS object.

How to identify whether a query is a copy?
If the eventData->analyticsData->originalActionId exists in the GET action response, then it means it's a copied query and the id of the original query is XYZ.
"eventData": {
        "analyticsData": {
            "originalActionId": "XYZ"
         }
}

How to identify whether a query is a copy?
If the attribute itself doesn't exist or it exists but contains a null value then it denotes that it's not a copied query.
@tkAppsmith Please let me know if the suggested change looks good to you. Based on your confirmation we will start implementing this.
cc: @riodeuno

@subrata71 Hey. I have gone through the final decision. The design and the changes to request and response seems good for the use case. I have completed the review from my end. I dont have any more comments. Thanks.

@riodeuno Based on Tushar's confirmation given above, can we start implementing this?
Please let me know if the above proposal works for you.

Just to clarify, the response object for an action will contain the originalQueryId in the eventData, in case this is a copied action in the first place.
Please confirm.

Changed the estimate from 1 to 1.5 as the same issue is being used to track both the frontend and backend changes.


Windows Instructions do not work GitHub does not trust PC without SSH ?????

Hi
I have tried following your instructions but GitHub will not allow connection

You say do not use SSH but github help says to avoid this error use ssh ?????

SSH-key without passward is preferred

doesn't mean do not use ssh-keys

SSH-key without passward is preferred

doesn't mean do not use ssh-keys.
Please, use the ssh-key.

HI Charles
But your Windows docs do not mention this!

It's in https://github.com/CharlesChiuGit/Logseq-Git-Sync-101/wiki/🪜-Workflow.
Please read all the guilds, thanks.

It's in https://github.com/CharlesChiuGit/Logseq-Git-Sync-101/wiki/🪜-Workflow. Please read all the guilds if you're not familiar with git , thanks.

HI
Sorry i didnt see that i have SSH from my Linux laptop for same repo can i use that if i copy the key into my windows machine or should i make a new ssh key ?

Every machine should has their own ssh-key, please make a new one for your windows machine.

Every machine should has their own ssh-key, please make a new one for your windows machine.

OK thank you so one i have set up a new ssh doi i just follow the windows instructions as i have a repiosirtry already i just need to pull from github as i have no loqseq files on my Windows yet?

Yes exactly!

Do remember to update the git-hooks.

Do remember to update the git-hooks.

I have added a SSH key into Github from this PC and when i try again with Git now it says it does not exsist ???
$ git clone git@github.com:{thorrrr}/{logseq}.git
Cloning into '{logseq}'...
fatal: remote error:
is not a valid repository name
In Linux this worked flawlesley

Did you literally type {} in the command line?

Sorry fixed and working now
Thank You for your patience

HI Charles
NOt sure if i screwed up yesterday but everything came through to my WIndows machine.
But i now get errors on my laptop
From github.com:thorrrr/logseq
ceccf99..e8a4c20 main -> origin/main
Updating ceccf99..e8a4c20
Fast-forward
pages/Contents.md-3 | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 pages/Contents.md-3
fatal: cannot lock ref 'HEAD': is at e8a4c20b64a7040591510065bcaed23d55cc5f82 but expected ceccf99ffac298cf15a623ac49ef19060a6e7d75
If you don't want to see those errors or don't need git, you can disable the "Git auto commit" feature on Settings > Version control.
Also on my iPad i can see the pages but they no longer commit what the pull from Github
Could you point me how to fix it please no doubt i have made an error

I have done a git status and pull and it looks to have grabbed them but i thought this method was automatic

As u can you have a git conflict on your windows machine, so nothing can be push or pull at this moment, not until u fix the conflict.
The best approach for u now is to move what's not being pushed, re-do setup on your windows machine, add new notes back and try to push again.
This git sync method is indeed automatic, but now u have a git conflict, so it has been blocked until u solve it.

I never heard of "git irc", wtf is it?

I have a hard time understanding your English.
So did u do what I said in the previous comment?

I am re doing everything from scratch as you mentioned but i do not understand No 7
Copy&paste the post-commit and pre-commit in .git/hooks. (Note: this folder could be hidden)

GIT IRC

If you don't want to deal with git, you can always choose to paid for Logseq Sync. Here's the link.

HI Charles
Thank you i decided to fllow your advice plus support the Loqseq Team.
Could you tell me how to stop Git from syncing on my laptop and Pc do i disable options in Github or on my machines.
I would use Logseq Sync to Syync
I was thinking of just using Git as a backup to Github if possible
Could you advice or point me to docs to find out how to do this ?

Could you tell me how to stop Git from syncing on my laptop and Pc do i disable options in Github or on my machines.

Just remove the .git folder and you'll be good! 👍

You mean the one on each machine  the .git

ys, the .git folder in your Logseq graph.

Hi Charles
I have deleted it but when i open Logseq i get an errror .git missing and a new .git file bac in folder ??

The new .git file is created each time with this code in it
gitdir: /home/dale/.logseq/git/_home_dale_Loggy/.git

Okey, then delete that .git file and .gitignore and toggle off the Enable Git auto commit option in Logseq settings.

Cheers worked a treat


Fixed value in compute-vm module

"disk" value requires disk name and not the disk source path: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_disk_resource_policy_attachment#example-usage---disk-resource-policy-attachment-basic

"existing" is not a supported source type.

Checklist

I applicable, I acknowledge that I have:

[X] Read the contributing guide
[X] Ran terraform fmt on all modified files
[X] Regenerated the relevant README.md files using tools/tfdoc.py
[X] Made sure all relevant tests pass

Closing it for now, please open an architecture design doc for every change involving this module, as it's core to a lot of other stuff we do in Fabric

Then can you open an issue and provide repro instructions? Then if you propose a change via a PR you link it to the issues, but it gives us the full context on the bug.


Generic artefact URL

Fixes

libarchive issues #187  #167

Makes the resource more generic so people can override the github url with an internal artifact repository.

@damacus unfortunately the LWRPs that the ark cookbook exposes are not idempotent, so it is a non-starter. There is an open PR to improve the libarchive cookbook which should make the cookbook more portable by leveraging FFI instead of straight C extensions.
The other bit of your PR is more than reasonable. I don't see why we can't allow you to specify an internal URL for the binary. Do you want to clean this one up to include just those changes?

Yeah that sounds like a plan. I'll pop some tests with the cookbook to make it a bit easier to test and converge. At the moment I'm wrapping it to do that.

closing in favour of PR #189


TTreeColumnVector should hold one ArrayBuilder

and just call .build(...) in the getFloats(...) etc. methods.

Hmm -- what about for multple leaves in a branch? Each leaf will be exposed as a separate TTreeColumnVector, so do we perhaps need some way to pass in the builder in the constructor so they're shared?

A non-complicated way to do it would be to say that a branch with multiple leaves has Spark's Struct type. One branch == one Spark column, and if the branch has multiple leaves, then the column is a struct.
When the data source supports Prunable, you're promising that one column can be read independently of the others. Leaves of a multi-leaf branch cannot be read independently of each other, so saying one branch == one Spark column is truth in advertising.

I did this some time ago.


Add search by index to issues api

This PR adds issue index field to bleve for indexing and adds option to search issues by index (search by prefix - eg. Issue{Index: 1234} will match ?index=1, 12, 123 or 1234).

Codecov Report

Merging #2606 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #2606      +/-   ##
==========================================
- Coverage   27.32%   27.32%   -0.01%
==========================================
  Files          86       86
  Lines       17143    17144       +1
==========================================
  Hits         4684     4684
- Misses      11781    11782       +1
  Partials      678      678

Impacted Files
Coverage Δ

models/issue_indexer.go
8.33% <0%> (-0.12%)
:arrow_down:

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 339d7de...c940655. Read the comment docs.

@Morlinest What exactly is the intended use case here?

@ethantkoenig It can be used in #2531. Also it can be used inside comments, like github does.

Can't we just use a SQL where condition? Autocomplete ajax calls don't seem like a performance-critical component, and even it if were using the DB might still be faster for medium-sized repos.

@ethantkoenig Sure, if you know good where condition for this. I was asking on discord about this, this is result.

@Morlinest WHERE CAST(index AS STRING) LIKE "123%". I think this is supported by all RDBMS's, but you should double-check.

@ethantkoenig cast(col as string) like '1%' performance in database would be very poor

@lafriks If we introduce an index, I think the performance would be acceptable, since we're only doing prefix searches

Sorry, accidently closed. Index would help yes but it still needs to be verified if cast as text does work on all databases as I think mysql will need convert as text. Sqlite btw also supports functional index for this. But I think doing it in bleve index would be better

@lafriks It's not clear to me that bleve is better here. Suppose there is a repository with 2000 issues. ~1100 of these issues begin with 1, so if I search for "1", the bleve indexer will return to me an array consisting of 1100 issue ids. I then have to include these 1100 issue ids in a very large IN clause, which might be slower than just doing an indexer search in the DB.
I could be convinced otherwise, but if we do decide bleve, we'll need to introduce some sort of indexer migration framework (which should definitely be a separate PR).

@ethantkoenig Do you have idea for migration? I found that only way is to delete index and create new one. But I don't know how to check some kind of version of current bleve index.
If I understand, this PR should be blocked till introduction of bleve index migration.

It think that you can create migration that just drops and recreates that index

I think that for autocomplete only top X must be returned. Doesn't bleve supports that?

@lafriks I haven't found it yet. Still searching.

@lafriks Do you want to use DB version for bleve migration?

Yes, why not it can be used all kind of migrations just like there are migrations to change git gitea hooks

Added migration.

@lafriks @ethantkoenig I've looked again at github solution. It's more simple. They are just returning "suggestions" and I think it's list of 1000 last updated issues. What about using similar approach instead of adding this feature? Now we are limited for max 50 issues by default, but it's enough right now and can be easily changed.

@Morlinest currently if I understand code correctly it will search for all issues not limited in count from bleve and only limit them in sql later

@lafriks Yes<PHONE_NUMBER> is hardcoded limit), I've worked on limiting it but found more problems than it solves. Eg. you can find first 10 ID by Index, but they can be closed, so you have to add isClosed to bleve too. Same if you want to search another page. So for adding limit, you have to add all other conditions to it.

I don't know how advanced queries does bleve support but if it would be possible to already get total item count and issue ids only for single page that would be great performance improvement but that is probably out of scope of this PR

@lafriks We can add isClose but as number. Bleve supports:

Supported field types:
Text, Numeric, Date

Supported query types:
Term, Phrase, Match, Match Phrase, Prefix
Conjunction, Disjunction, Boolean
Numeric Range, Date Range
Simple query syntax for human entry

Also there is SortBy() function, where you can sort by array of field or _id and _score`. Also supports reversed order.

yes but to fully support that we would need to add all fields that need to be sorted by in issues page (created time, updated time, comment count and priority) or filtered by (assigned to user id, author id, label id array, milestone id). And in such case select from issue table would not be even needed.

IMO, adding every column of the issue table to the indexer is not the best approach. I'm afraid we'll end up with a bloated index that will be difficult to keep in the sync with the DB.

@lafriks @ethantkoenig Anyway, I'll close this PR as it's main purpose is doable by other (easier) way. If there will be need for adding fields to indexer, we can reopen/reuse this.


Fix bug for SIGFPE produced in AlphaRowset::split_range

Ensure current_num_rows_per_row_block to be nonzero to avoid SIGFPE produced in AlphaRowset::split_range

#2750

Hi, @caiconghui I think this is a concurrent issue. In you core dump file, you could find the largest_segment_group->current_num_rows_per_row_block() is 1024.  So I think we should fix this  issue by atomic variate.

Hi, @caiconghui I think this is a concurrent issue. In you core dump file, you could find the largest_segment_group->current_num_rows_per_row_block() is 1024. So I think we should fix this issue by atomic variate.

ok, thanks, I will check it.

If you can reproduce this bug, you can use watch command in GDB. This command can used to know the variable modified in which place.

We reproduce this bug and print current_num_rows_per_row_block variable，but it's strange that the variable we print is 0, in coredump, the variable current_num_rows_per_row_block is 1024，i wonder why this thing happen?

The current_num_rows_per_row_block is loaded in olap_index.cpp.
If you can reproduce the bug, you can print the variable
meta.file_header.message().num_rows_per_block() in olap_index.cpp.
I double that the meta in olap_index is wrong upon writer.

The current_num_rows_per_row_block is loaded in olap_index.cpp.
If you can reproduce the bug, you can print the variable
meta.file_header.message().num_rows_per_block() in olap_index.cpp.
I double that the meta in olap_index is wrong upon writer.

OK, I will reproduce the bug and print it to check if there is something wrong.


EnvironmentCallbackContext.Logger doesn't need to be nullable

EnvironmentCallbackContext.Logger is currently nullable, however ResourceLoggerService.GetLogger is nullable.
Since the latter is never null, it seems like there should always be a logger in EnvironmentCallbackContext so it could be made not nullable.

Logger is nullable because it was added after the public API for EnvironmentCallbackContext was locked. We can't make it not nullable without adding it to the constructor (which would be a breaking change). As a result it needs to remain nullable.

I'll close this issue, but if you need to discuss implications further feel free to re-open and we can take another look.

I think we can make the logger a null logger by default

@mitchdenny doesn't look like I have permissions to re-open, can you do that for me?


Update documentation and help screen about invalid config files

As proposed in https://github.com/MichMich/MagicMirror/issues/2426#issuecomment-763027784
Maybe this helps preventing some bug reports :-)

Codecov Report

Merging #2428 (58939bf) into develop (1fd506f) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #2428   +/-   ##
========================================
  Coverage    39.42%   39.42%
========================================
  Files           20       20
  Lines         1608     1608
========================================
  Hits           634      634
  Misses         974      974

Impacted Files
Coverage Δ

js/app.js
70.33% <ø> (ø)

js/defaults.js
100.00% <ø> (ø)

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 1fd506f...58939bf. Read the comment docs.

Codecov Report

Merging #2428 (58939bf) into develop (1fd506f) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #2428   +/-   ##
========================================
  Coverage    39.42%   39.42%
========================================
  Files           20       20
  Lines         1608     1608
========================================
  Hits           634      634
  Misses         974      974

Impacted Files
Coverage Δ

js/app.js
70.33% <ø> (ø)

js/defaults.js
100.00% <ø> (ø)

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 1fd506f...58939bf. Read the comment docs.


Homebrew tap

Hi,
Thanks for cargo watch, I use it every day and find it very useful.
I use Homebrew, and would find it convenient if I could use it to install cargo-watch. I believe that something like the following would work:
# In Formula/cargo-watch.rb
class CargoWatch < Formula
  desc "Watches over your Cargo project's source"
  homepage "https://github.com/passcod/cargo-watch"
  url "https://github.com/passcod/cargo-watch/releases/download/v7.4.1/cargo-watch-v7.4.1-x86_64-apple-darwin.tar.xz"
  sha256 "insert hash here"
  version "7.4.1"

  def install
    bin.install "cargo-watch"
  end
end

You're welcome to do that. However, I do not do packaging. I'm happy to mention an existing packaging on the readme, I'm just not going to create nor make it the project's (i.e. my) responsibility to maintain.


feat(dead-code): Adds dead code script and cleanup 🧹

This PR resolves []
Description

[x] Add dead code script similar to force
[x] cleanup some more dead code

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Adds dead code script and cleanup - gkartalis

Need help with something? Have a look at our docs, or get in touch with us.

This tool is so rad. Thanks for moving the script over here 👍


Workaround for corrupted frames

Workaround for corrupted frames

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


test: include more info on parse failure tests

WIP showing potential option for #2707
What is the previous behavior before this PR?
Previously, tests that check for parsing failure do not include any information about what the failure mode is.
What is the new behavior after this PR?
This attempts to add context to these tests by utilizing Jest snapshots.

Can anyone provide some comments/feedback on this approach for #2707 ?


Error: Property 'focusManager' cannot be accessed on 'WidgetsBinding?' because it is potentially null.

`/D:/flutter/.pub-cache/hosted/pub.dartlang.org/keyboard_dismisser-3.0.0/lib/keyboard_dismisser.dart:418:31: Error: Property 'focusManager' cannot be accessed on 'WidgetsBinding?' because it is potentially null.

'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('/D:/flutter/packages/flutter/lib/src/widgets/binding.dart').
Try accessing using ?. instead.
WidgetsBinding.instance.focusManager.primaryFocus?.unfocus();`

Hi @umairsajid0017 thanks for using the library.
The WidgetsBinding property was optional in Flutter 2, but was made non-optional in Flutter 3. It looks like you are using Flutter 2.x but depending on the version 3.0.0 of this library.
You can either upgrade to Flutter 3 or downgrade your dependency to this library to a version 2.x.x. Otherwise you will get that error when trying to build.
Hope that helps!


"Backup with contact" is not working.

Even after confiring the recovery key, it doesn't appear on the "Security & Privacy" page and instead of the contact name, it still shows "Share recovery key".

Now when we select the contact, the QR code of that contact is not coming, just the loader is seen rotating.

-Verified tis issue on dev app v 1.8.0(321)


no-emphasis-as-heading bug

Originally reported here: https://github.com/sindresorhus/awesome-lint/issues/14
The no-emphasis-as-heading rule doesn't like this:

Awesome npm scripts

Everything awesome related to npm scripts and using npm as a build tool.

You might also like awesome-npm.
Notice: I'm currently too busy to actively expand this list; therefore, I've decided to make this an OPEN Open Source Project. Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit.
Contents
...

https://github.com/RyanZim/awesome-npm-scripts
The emphasis has nothing to do with the heading; it's just a bold notice that happens to come right before the top heading.

Hiya Ryan, thanks for taking the time to write this issue! 👋
First: sort-of unrelated to this issue, but the first part of that readme is pretty funky: there’s a block quote (to emphasise the description), then there italics (to emphasise a similar project), then there’s bold (to emphasise a warning). Why emphasise everything? Doesn’t that kind-off defeat the purpose of emphasis? :)
Second: this rule, no-emphasis-as-heading, checks that no paragraph is completely emphasised. Take this code:
*Foo*

Bar.

__Qux__

Quux.

Those two should probably be headings! What do you propose as a solution, where my example still warns, where yours does not?
Note: there’s also a way to ignore this message: <!--lint disable no-emphasis-as-heading-->
And finally, you could rewrite your emphasis like this: **Related**: You might also like awesome-npm., while still drawing some attention to that paragraph.

As a workaround, I removed the emphasis from "You might also like awesome-npm."


[Go Live][13 Jan 2021]

Docs Build status updates of commit 2508169:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
:white_check_mark:Succeeded
View

msteams-platform/bots/what-are-bots.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


November 2017 Roadmap

Xi was first launched in April 2016, as a promising prototype but not an editor suitable for daily work. Work since then has included essential features and also infrastructure, particularly the CRDT that supports asynchrony from plugins, and a working demo of multi-device editing on Fuchsia. In my experience, it is now close to a good basic editing experience, but not quite there. The main focus of the next few months is to push it over the line.
Performance
Much of the promise of xi is very high performance. It is currently not delivering on that promise, and in fact it has regressed in some ways. A major focus is to fix these performance problems.

[ ] Minimal invalidation - just repaint what's changed, as opposed to the whole screen. This requires changes spanning core and front-end. The current core to front-end update protocol is designed to handle this, just needs better implementation. (#317)
[ ] Flash of content on scrolling. The best fix for this is to reintroduce the synchronous "get_lines" RPC; trying to do it entirely async adds to overall complexity.
[ ] Short timeout for aggregating updates from plugins (particularly syntax highlighting). This will prevent flash of uncolored text.
[ ] Performance measurement infrastructure - will help prevent future regressions.
Out of scope but planned for future: async loading of very large files (especially useful for file viewing use case).

Coding essentials
Raph used xi as his main editor during his sabbatical at Recurse Center and found it mostly usable but with a couple of pain points.

[ ] Auto-indent. TextMate/Sublime syntax definitions include info to drive an auto-indent feature, so ideally syntect would grow the ability to process these. If that will take time, the syntect plugin could use an extremely simple heuristic (same indent level as last line with a delta for { or } as the last character on the line). The plugin interface currently supports the basic functionality for a plugin to edit the text, but will need some refinement (plugin edit in the same undo group as the manual edit, finer granularity in the multi-selection case). (#424)
[ ] Reload on file change. This has been one of my biggest pain points, as doing a git checkout followed by a save clobbers the checkout. (#362)

As xi develops, as much IDE-like functionality as possible will be implemented in plugins. There's a lot of functionality to be exposed (for example, navigating between files, including opening new ones). Over the next few months, I expect to be prototyping some of this, but it's not an immediate goal.
Fuchsia
One of the main use cases for xi is editing general purpose text on Fuchsia (for example, for email composition). Goals for the next few months include:

[ ] Make the Fuchsia front-end more fully featured and performant.
[ ] Word wrap. This will require a solution to measuring the width of text (generally this will not be a monospace font). (#184)
[ ] The beginnings of rich text.

References

Previous roadmap (May 2017): #252

@raphlinus I'm not sure you haven't considered that but making scrolling async is actually very easy. You just need to embrace it and be explicit about it. So you can just do what they do in tweets feed etc where they content could be too large to actually load and show the user - show some spinning thing while loading new content.

@purpleP While that is certainly an option, our goal is to have the async stuff not be explicit; the user should not need to know or understand what's happening behind the scenes, and I think a loading wheel in a text editor would be pretty tough to swallow.

@cmyr Well, if the file is big can loading take perceivably long with algorithms you use or planning to use? And if that's the case showing the wheel is the best option isn't it? You're not planning for the editor just to hang in this case, are you?

@purpleP Async read for large files (#197) is an eventual goal, and in that case some UI indicator that a read is in progress might be useful.
What we're talking about here is the case where we have a document already in memory, and we're just painting lines; and we would like to not miss frames, even when the frontend has to request lines from the backend, which may not have computed style information etc.

Any idea if basic word completion functionality will be added?

@AHL96 autocomplete is not on the immediate roadmap, but would probably make the subsequent one (summer 2018?)

Why is Auto-indent still unimplemented ?

There actually is an implementation of it already, but it's disabled in the default config because it apparently has some problems. An improved version is currently being worked on.


Feature/claim back unused invites

Second PR for this https://github.com/JoinSEEDS/seeds-smart-contracts/pull/347
Unit test fail no issue
ammm well, I didn't know how to test that, because the amount of time it waits is two weeks, but that amount is fixed, so we have to uncomment the line above of that validation for testing
Contracts that need to be tested:

[x] Onboarding
[x] Scheduler
[x] History

Contracts that need to be deployed:

[x] Onboarding
[x] Scheduler

Other considerations:

[x] Permissions need to be updated
[x] Scheduler needs to be updated

Test  due to merge:
Onboarding
Scheduler
History

Deployed


Network encryption extension points

See also #61.
We basically need plugin extension points for the network encryption, based on the version of the connected client.
One idea is to open up different tcp ports (e.g. GameServerEndpoint) for different game client versions. Based on this information we could select appropriate encryption plugins.
We not only need this at the game server, but also at the chat server because they use the same encryption stack.

Solved by #113


Cancel animation frame on componentWillUnmount only if this.afId is set

Fixes unmounting. Currently generates an error because cancelAnimationFrame is being called with undefined value - this.afId is set only when initialIndex property is given.

Actually, I'm going to close this. The problem for me seems to be with PhantomJS, which doesn't support requestAnimationFrame.
Calling it in componentDidMount creates an exception and this.afId is left unset. For some reason this exception didn't fail the tests, but then calling cancelAnimationFrame (undefined) in componentWillUnmount did.
A better solution would be to check for requestAnimationFrame and if it doesn't exist, revert to something else. Or just document that this library depends on requestAnimationFrame - the real deal or a polyfill.


REST channel entities do not correctly implement GetMessagesAsync

Source: https://github.com/RogueException/Discord.Net/blob/dev/src/Discord.Net/Rest/Entities/Channels/DMChannel.cs#L102
The GetMessagesAsync overloads for DMChannel and TextChannel do not correctly implement fromMessageId and dir and will return incorrect values.

Worked fine for me. You do realize that you are citing the top-most level of that request?
The SocketClient GetMessage implementations are not tested, but the RestClient work just fine.

Definitely a bug, we have unused variables in there. Issue is open for whoever wants to PR it.


[Bug]: Certain spec_hw values seem to break HST S3 reduction

FAQ check

[X] Yes, I checked the FAQ and my question has not been addressed.

Instrument
Other (any stage)
What happened?
Something goes wrong in cut_aperture when using certain values for spec_hw.
Using the first five integrations of the demo HD 209458 data, and the demo S3 WFC3 ecf, everything seems to run perfectly fine. The demo ECF comes with spec_hw=5.  However, if I increase spec_hw to large enough values (apparently 31 and up), I get an error, where the data flux array being extracted from the images no longer fits in the aperture data array being returned from cut_aperture.
Error traceback output
Starting Stage 3 Reduction

Input directory: /mnt/c/Users/j670b842/Yoni/Planetary/eureka/eureka_data/hst/HD209458/test/
Output directory: /mnt/c/Users/j670b842/Yoni/Planetary/eureka/eureka_data/hst/HD209458/S3/S3_2023-08-17_wfc3_template_run1/ap31_bg5/
Using ap=31, bg=5, expand=1
Copying S3 control file

Found 6 data file(s) ending in ima.fits
# of files in scan direction 0: 3
# of files in scan direction 1: 2
Adding 0.0, 130.981 pixels to x, y centroid position for integrations related to staring-mode image #0.
Preparing reference frame 2...
Traceback (most recent call last):
  File "/mnt/c/Users/j670b842/Yoni/Planetary/eureka/eureka_data/hst/ecfs/run_eureka_wfc3.py", line 16, in <module>
    s3_spec, s3_meta = s3.reduce(eventlabel, ecf_path=ecf_path)
  File "/mnt/c/Users/j670b842/Yoni/Planetary/eureka/Eureka/src/eureka/S3_data_reduction/s3_reduce.py", line 237, in reduce
    meta, log = inst.preparation_step(meta, log)
  File "/mnt/c/Users/j670b842/Yoni/Planetary/eureka/Eureka/src/eureka/S3_data_reduction/wfc3.py", line 53, in preparation_step
    meta, log = get_reference_frames(meta, log)
  File "/mnt/c/Users/j670b842/Yoni/Planetary/eureka/Eureka/src/eureka/S3_data_reduction/wfc3.py", line 125, in get_reference_frames
    cut_aperture(data, meta, log)
  File "/mnt/c/Users/j670b842/Yoni/Planetary/eureka/Eureka/src/eureka/S3_data_reduction/wfc3.py", line 1004, in cut_aperture
    apdata[n] = data.flux.values[n, ap_y1:ap_y2]
ValueError: could not broadcast input array from shape (0,170) into shape (63,170)

What operating system are you using?
No response
What version of Python are you running?
No response
What Python packages do you have installed?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

My first suggestion is to check whether or not the guess value within cut_aperture is valid.  Try printing guess, ap_y1, and ap_y2 to see if the values take you off of the edge of the detector.

I had been doing this, actually, but somehow didn't look closely the other day. ap_y1 sometimes goes negative, if the spec_hw is larger than the current guess location. When this happens, we try to access the various data arrays as data.___.values[n, -y1:+y2], and this will always give a zero length array, which is impossible to match dimensions to any of the destination arrays.
There's got to be a smart of way of handling this properly, maybe by restricting guess to within ap_y1 of the lower image bound and ap_y2 of the upper image bound?

Changing guess could have other negative implications. I suggest setting ap_y1 to 0 if it goes negative.


(PUP-4210) Add rename to augeas

CLA signed by all contributors.

Hi, this looks pretty sane. Could you please add a test for the rename command? The provider spec has examples already for a basic check of the other commands we support.

@raphink ping? Will you be able to update this with tests?

@raphink have you had a chance to update this with tests?

Sorry, not yet. Thanks for pinging.

Hi @raphink, thanks again for the contribution.  I'm just checking in to see if you've had any chance to update with tests.

Sorry not yet. I'll look into it when I get back from vacation next week.
On Tue, 21 Apr 2015 20:30 Peter Huene<EMAIL_ADDRESS>wrote:

Hi @raphink https://github.com/raphink, thanks again for the
contribution. I'm just checking in to see if you've had any chance to
update with tests.
—
Reply to this email directly or view it on GitHub
https://github.com/puppetlabs/puppet/pull/3719#issuecomment-94897274.

Added a unit test for the rename command.

Rebased on master.

@raphink Thanks for the test and rebase.  This looks good to me.  I need to look into getting these specs run in our CI as I don't think we have augeas installed for it to test.

Although it looks like the new test isn't confined to when augeas is installed, so I'm :+1:

Great.
On Tue, 28 Apr 2015 20:33 Peter Huene<EMAIL_ADDRESS>wrote:

Although it looks like the new test isn't confined to when augeas is
installed, so I'm [image: :+1:]
—
Reply to this email directly or view it on GitHub
https://github.com/puppetlabs/puppet/pull/3719#issuecomment-97164195.

@raphink Thanks again for the contribution!  Your PR has been merged to master and will show up in the next release of Puppet.

Great, thanks
On Tue, 5 May 2015 20:26 Peter Huene<EMAIL_ADDRESS>wrote:

@raphink https://github.com/raphink Thanks again for the contribution!
Your PR has been merged to master and will show up in the next release of
Puppet.
—
Reply to this email directly or view it on GitHub
https://github.com/puppetlabs/puppet/pull/3719#issuecomment-99167401.


Could you add Vietnam support material_localizations.dart

Hi , Flutter team
Just like the https://github.com/flutter/flutter/issues/15192, n ow our app need to support Vietnam, but I found there is no material_vn.arb file in the flutter_localizations folder ,
By the way , could you addVietnam in the flutter/packages/flutter_localizations/lib/src/material_localizations.dart ?
Thank you very much.

I have submitted a request to have Vietnamese added to the list of Flutter's supported locales. The language code is 'vi' not 'vn' though. I'm not aware of a locale whose language code is 'vn'.

Thank you @HansMuller , yeah it should be 'vi' .


Hosts file cleared by PowerToys 0.71.0 upgrade

Microsoft PowerToys version
0.71.0
Installation method
PowerToys auto-update
Running as admin
Yes
Area(s) with issue?
General
Steps to reproduce
Upgrade of the PowerToys to version 0.71.0 cleared my hosts file C:\Windows\System32\drivers\etc\hosts. So, all my earlier edits were destroyed
✔ Expected Behavior
My hosts file to remain intact
❌ Actual Behavior
No response
Other Software
No response

Has this happened again or was it just the one time when your host file got cleared? /needinfo


hcnnetwork get weird when change windows timezone

hcnnetwork get weird when change os's timezone
If the calico Windows container restarts without rebooting after the OS timezone is changed
there is a mismatch between the last boottime used in node-start.ps1 and the stored lasttime, so logic to delete the HNS network is performed.
(https://github.com/projectcalico/calico/blob/master/node/windows-packaging/CalicoWindows/node/node-service.ps1#L76)
In normal cases, Remove-HNSNetwork would not be performed, but the timezone changes, lastboottime changes, and the corresponding logic is performed when calico container restart
Expected Behavior

Current Behavior

Possible Solution

Steps to Reproduce (for bugs)

Context

Your Environment

Calico version
Calico dataplane (iptables, windows etc.)
Orchestrator version (e.g. kubernetes, mesos, rkt):
Operating System and version:
Link to your project (optional):

@thdrnsdk could you give some more detail on the issue you're having? That logic to clean up HNS networks if a reboot is detected only happens on calico-node startup, and things will be restored to a working state in the end. A mis-detection of a reboot is unfortunate, but I fail to see how that's more than an inconvenience. Could you please elaborate your scenario?

when i was changed os timezone (for example from kst to utc), after than not reboot the server.
in that state, if calico pod was restarted then always not equl storedboottime and last boottime
so not after the node is rebooted, but simply restarting the pod, but all hnsnetworks are deleted.
https://github.com/projectcalico/calico/blob/master/node/windows-packaging/CalicoWindows/node/node-service.ps1#L55
for example
2024-10-18T03:01:45.2270501+09:00 stdout F StoredLastBootTime 6/13/2024 4:39:15 PM, CurrentLastBootTime 6/13/2024 7:39:15 AM


fix: CONTINUE_ON_ERROR option usage on errors

Avoid process.exit(1) if CONTINUE_ON_ERROR is setted to true

Thanks, @eptaccio!
Just nit picking, your commit message could've been the same as the PR title. That's because commit messages should emphasise the "what" over the "how".


Unreachable network (<IP_ADDRESS>:80) to request Access Token outside Azure

Describe the bug
Trying to Authenticate Using Active Directory Managed Identity authentication from local machine (or any other environment outside Azure) gives the below exception.
Initially I created this SO issue that lead me to this breaking change/bug.
Exception message: Tried to get token using Managed Identity. Access token could not be acquired. A socket operation was attempted to an unreachable network. (<IP_ADDRESS>:80)

Stack trace:
   at Microsoft.Data.ProviderBase.DbConnectionPool.CheckPoolBlockingPeriod(Exception e)
   at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry, SqlConnectionOverrides overrides)
   at Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides)
   at Microsoft.Data.SqlClient.SqlConnection.Open()
   at NetLatest.Program.<TestConnectionAsync>d__2.MoveNext() in C:\SourceCode\NetLatest\NetLatest\Program.cs:line 43
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()

To reproduce
Executing this whilst logged in with AAD
static async Task TestConnectionAsync(string server, string db)
{
	// Use your own server and database.
	string ConnectionString1 = @$"Server={server}; Database={db}; Authentication=Active Directory Managed Identity";

	using (SqlConnection conn = new SqlConnection(ConnectionString1))
	{
		conn.Open();
	}
}

Expected behavior
Get the token... This should be possible from outside Azure right?
The following works 100% like the original tutorial suggested.
static async Task TestConnectionAsync(string server, string db)
{
	// Use your own server and database.
	var connString = @$"Server={server}; Database={db}";
	var token = await new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net");

	using (SqlConnection conn = new SqlConnection(connString))
	{
		conn.AccessToken = token;
		conn.Open();
	}
}

Further technical details
Microsoft.Data.SqlClient version: 2.1.0
.NET target: 5.0
SQL Server version: Azure SQL
Operating system: Windows 10
Additional context
The environment is fully connected to Azure SQL using AAD, but not running in Azure.

Hi @johan-v-r
Managed Identity based authentication only applies to Azure resources that support Managed Identities. This isn't a breaking change but a newly added support in Microsoft.Data.SqlClient.
AzureServiceTokenProvider on the other hand uses various other token providers under the hood:
https://github.com/Azure/azure-sdk-for-net/blob/2b594335737a65cb8f36543ef817deaba5c43f4b/sdk/mgmtcommon/AppAuthentication/Azure.Services.AppAuthentication/AzureServiceTokenProvider.cs#L104-L111
Managed Identity is one of them: new MsiAccessTokenProvider().
It's not comparable with our driver as we only try Managed Identity when that is requested and don't fallback to others.
Related discussion: https://github.com/dotnet/SqlClient/pull/730#issuecomment-700566412

Thanks @cheenamalhotra - I'll implement as suggested, although still unclear as to why it's only accessible in Azure..?
I get that the managed identity only applies to Azure (like my Azure SQL) resources, but now I can't host my API (running under a Managed Identity) on premise or anywhere other than inside Azure, because it can't hit that IP.
Wouldn't making that endpoint "public" also solve our issues here?

That endpoint is only available in Azure environments, read more: Azure IMDS Service

IMDS is a REST API that's available at a well-known, non-routable IP address (<IP_ADDRESS>). You can only access it from within the VM. Communication between the VM and IMDS never leaves the host. Have your HTTP clients bypass web proxies within the VM when querying IMDS, and treat <IP_ADDRESS> the same as <IP_ADDRESS>.

Well that's unfortunate. So effectively this authentication has a hard dependency on apps being hosted in the Azure network, with the only alternative to implement your own custom auth provider to bypass all your work...
Maybe worth a note in the docs..? Are there any discussions on changing this going forward?
You can close this issue, thanks for the info!

That's actually what this mode was meant to do, support only Managed Identities in Azure. Docs are everywhere (2.1 release notes), we never mentioned it's going to support anything else but Managed Identities in Azure.
What gets confusing is when you somehow associate it to 'AzureServiceTokenProvider' which is actually doing multiple authentication modes at a time. Yes it works with Managed Identity, but that's only one part of the story. It does not change meaning of Managed Identity either.
Why should 'ActiveDirectoryManagedIdentity' ever do everything else, when it's purposely designed to authenticate with Azure's Managed Identities?
Both libraries have different behaviours and so do their APIs. Neither of them tend to mislead, but they're not comparable that way.

Yup you're right. My fundamental understanding of the Azure accounts were wrong.
I was trying to use the same connection string format for all my environments (local dev, build & test, host).
Apologies for the confusion, but I really appreciate this feedback.

What you could try is DefaultAzureCredential with Azure.Identity library that offers exact experience you're looking for, as I mentioned in the alternative above.
We will be adding the same support very soon internally with a new mode so your transition to our new authentication mode will become much easier and you will be able to work seamlessly without changing your environments or connection string in future.


Interface Builder - Failed to load designables from path (null)

Interface Builder - Failed to load designables from path (null)
Using Cocoapods, this error is showing.

Same for me, with and without cocoapods

Hi there, this is a known bug. See here and here.
You can try adding use_frameworks! to your pod file.
Please note that even though you get an error, you can still compile and everything should work as expected.
Thank you for opening this issue!


dwarf-fortress-packages.dwarf-fortress_0_47_02: init

Motivation for this change
Bugfix release for Dwarf Fortress came out. This PR updates the themes.json and games.json (and the update script that updates games.json).
Unfortunately there's no corresponding unfuck release yet, so it's still using the 0.47.01 version of unfuck for 0.47.02 which seems to work fine (as it's a minor bugfix release).
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Hm, I might have missed something with unfuck, but not quite sure what.

Ah looks like unfuck breaks on trying to install the older dwarf-fortress_0_47_01. Hm, my nix-fu is not quite good enough to figure out what's going on, pointers appreciated.

unfortunately, this is does fail without a compatible version of unfuck:
while evaluating the attribute 'dfInit' of the derivation 'dwarf-fortress-0.47.01' at /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/pkgs/games/dwarf-fortress/wrapper/default.nix:84:3:
while evaluating the attribute 'env' of the derivation 'dwarf-fortress-init' at /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/pkgs/games/dwarf-fortress/wrapper/default.nix:87:5:
while evaluating the attribute 'passAsFile' of the derivation 'dwarf-fortress-env-0.47.01' at /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/pkgs/build-support/trivial-builders.nix:7:14:
while evaluating the attribute 'buildCommand' of the derivation 'fixup' at /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/pkgs/build-support/trivial-builders.nix:7:14:
while evaluating the attribute 'installPhase' of the derivation 'dwarf-fortress-0.47.01' at /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/pkgs/games/dwarf-fortress/game.nix:46:3:
while evaluating 'optionalString' at /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/lib/strings.nix:180:5, called from /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/pkgs/games/dwarf-fortress/game.nix:63:8:
while evaluating 'makeSearchPathOutput' at /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/lib/strings.nix:142:5, called from /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/pkgs/games/dwarf-fortress/game.nix:13:13:
while evaluating 'makeSearchPath' at /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/lib/strings.nix:122:5, called from /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/lib/strings.nix:142:11:
while evaluating anonymous function at /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/lib/strings.nix:123:32, called from undefined position:
while evaluating the derivation attribute 'name' at /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/pkgs/games/dwarf-fortress/unfuck.nix:51:3:
attribute 'unfuckRelease' missing, at /home/jon/.cache/nixpkgs-review/pr-79630/nixpkgs/pkgs/games/dwarf-fortress/unfuck.nix:51:35

Yea, as I mentioned too. Works fine for .02 but no longer for .01. Any ideas how to work around this?

Pushed the update, looks better now.

merging once ofborg is done with eval


Disable logging in Release

We have some troubles with SS14 servers ( Our discord ) with DDoS attacks from someone so it will be cool if you accept these changes please

Error logs shouldn't be wrapped in debug tags as then logging becomes entirely useless.

Error logs shouldn't be wrapped in debug tags as then logging becomes entirely useless. Resolve the DDOS attacks as a host.

We can't fix it without editing engine

We can't fix it without editing engine

Engine/lidgren contributions are welcome, and we would appreciate PRs that help improve networking resilience, error handling, or logging performance, but just blanket disabling of error logs in release mode doesn't address whatever the issue was.
If you really want to disable lidgren logging, then at the very least it needs to be configurable, though if the DDoS was just causing a specific error to be logged way too many times, maybe add some rate limit for that error?

What makes you think that disabling logging will solve the DDoS attack? Do you have profile results indicating that this is where the major source of load comes from?

What makes you think that disabling logging will solve the DDoS attack? Do you have profile results indicating that this is where the major source of load comes from?


[N2] Question attempt history

Could extend the existing collab service as opposed to creating another new service.


Feature request: Multiple uploads per post

Would it be possible to allow multiple uploads per post? Would be great if a member could select 10 images at once :)
Cheers! Keep up the great work.

Just to save them clicking the upload icon 10 times... they could instead click it once... select multiple images in the dialog... or select all... hit upload... All done...
There may not be a massive benefit, but I've already had two people asking for it... I know myself I like to open the dialog... sometimes select all and done...
Thanks again :)

I think this requires a slight modification in the payload send and received and a slight edit to the upload input field.

Sounds good! :+1:

@yekenuk this feature is available in dev-multi feel free to update your dependency and give it a test drive. I'll ship the feature with the next feature.

Great! Not being an expert on composer, just run:
composer update flagrow/upload

edit your composer.json where it says flagrow/upload change the value after to dev-multi and then run composer update; please note that composer update is not something you want to do in a production/live environment :smile:

Ah cheers mate...
I'm running flarum in a small production site ha :)
Thanks again! Keep up the great work

Well - between us - you can change the dependency as proposed above, if you encounter issues, change it back and run the command again. Delete any assets/*.js to drop the cache.

Brilliant thanks.


Real-time friends location on world map

Not even sure if this would be possible, but a way for you to open the world map and if your friends have the plugin enabled, show where they are in game if on the same world. Would really add the MMO feel. Maybe even for clans as well.

Yes it would be possible if your friends have the plugin aswell. Sure it’s a fun gimmick but not really something that is worth putting time into in my opinion

This is already a part of the party plugin. I doubt we would want to do similar for just friends, since it would not be very obvious behavior, and be an unwelcome addition for PKers trying to avoid being scouted. Most MMOs don't show your friends on world map, only party members.

As unmoon mentioned, this is already a feature of the discord party plugin.


[Bug][api] The task resource could not be deleted

If a resource in the resource center has been deleted, the deleted resource cannot be deleted from the task, and the entire task can only be deleted without the task being created

@break60 please fix it

Just delete the prohibited attribute

I suggest we should not delete resource in resource center if it has been used in task as it will cause some task schedule error.

There are 2 solutions to this problem:
Method 1: Delete the resource id that does not exist in the resourceList in the database t_ds_process_definition.process_definition_json

Method 2: According to the pr above, change the front-end source code and recompile, replace the ui in the installation directory with the compiled ui


Modification of Date/Time properties doesn't work as expected

Dates are mismatch during VIEW and EDIT modes

Looks to be fixed here: https://github.com/OrienteerBAP/Orienteer/commit/84eaed5a8097497cf11ab85a5bc4e0845c7aae95


Ship many-to-many faceting support

Part of #551

Here's where I removed the faceting code: https://github.com/simonw/datasette/commit/c5542abba564a0b320a1201a8cc85b48c743005d - step one will be reverting that commit back again.

The code for this was getting a little bit gnarly. I need to come up with a rock-solid design for the feature first (solving #495), then carefully build it with comprehensive tests to make sure it all makes sense.


add current process state to the error message

It will aid debugging if a procees delete fails, to figure out whether
it is paused or running.
Signed-off-by: Alakesh Haloi<EMAIL_ADDRESS>

/ok-to-test

/retest

@alakesh The CI issue has been fixed, please rebase. Thanks


2 different BMS types?

Hello, I have 2 questions that only partially concern your driver:
I have a battery pack 16x EVE280Ah. Since the cell capacity differed, I set the total capacity to the lowest value (271Ah). BMS is a DALY 400A.
Now I want to build a 2nd pack with 16x CATL (280Ah) or 16x EVE cells (280Ah) but probably with a JBD-BMS (are probably better than DALY)
Now my questions:

Can your driver handle the two BMS at the same time?
Should I also set the 2nd battery to 271Ah (I had read that the capacity should always be the same when connected in parallel.)

You can have 2 BMS/batteries and you will see both in the Remote Console and in VRM cloud. But they are not yet combined to give you one large battery in the battery display/SOC. You will have to pick one for that.
Subscribe to #8 for when the multi bank feature will land.
To make things simpler it is always suggested to have 2 of the same batteries sets (cells + BMS), but that does not mean it will not work if they are not the same. You just might not get the full capacity of both.
Different BMS will have some differences in how they calculate SOC, or trigger alarms, etc. So having the same BMS in both makes that easier. Also some BMS have settings that others do not have, making setup more limiting.
But having some variations is not critical. Having some differences is cells is nartural. They don't all age the same.
Use the actual value (280Ah) for the new set. It is only for reporting the available capacity and will not change the actual capacity in the battery.
PS. If I hade to choose I would get 2x JBD BMS and not 2x Daly. I would also rather mix (JBD + Daly) than getting a extra Daly. If you want to keep the Daly, concider getting an external balancer.