Record Structs

Is there the possibility to support record structs?

@zacharylayne  v1.3.0 now supports record structs for non-validating base types (simple wrappers). Base types with validations must still be classes.

That's great! Thank you. Would it be helpful to add a blurb to the README to call this out?
Again, appreciations. 😃


Add the german translation of "A byte of Python"

What does this PR do?
This PR adds the book "A byte of Python"
Why is this valuable (or not)?
This is a good book for Python beginners. It is recommended by the opencv community for example.
How do we know it's really free?
Watch license section https://python.swaroopch.com/.

This book is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[x] Not a duplicate
[x] Included author(s) if appropriate
[x] Lists are in alphabetical order
[x] Needed indications added (PDF, access notes, under construction)

It seems to me that https://open.umn.edu/opentextbooks/textbooks/581 might be a better source for the book?

Hi @SethiPandi sure! Thank you!
I got my link by visiting https://python.swaroopch.com/translations.html > scroll to german > click http://cito.github.io/byte_of_python/ > click PDF-Format, but yours looks great and not so "scammy" like sourceforge.

Sorry I completely missed that your source was in English, too :D

Have added the german source again @SethiPandi

I'm a fan of the book.
Thanks, and welcome to free-programming-books!


Seems like something broke with the latest update

Seems to be really red-green heavy, tokens are italicized unnecessarily, etc.

@joshjg Could you shoot me over a example of what you're seeing. I have a highly accurate color monitor and that might be the issue.

Here's an example.

@joshjg You're right - I didn't open up any React or JS files... looks like i removed something I didn't mean too.
I'll have this fix shortly.

@joshjg check for updates and see if that worked for you.

@ginfuru Looks great! Thanks.


Fix crashed state

I'm seeing that the flume db gets stuck with something like:
"since": 327680,
"plugins": {
  "keys": 324776,
  "clock": 324776,
  "backlinks-JiBxmkOf6": 324776,
  "contacts2": 324776,
  "peer-invites": 324776,
  "query": 324776
},
"sync": false

The best way I have found to trigger this is if the the process crashes while it is writing.
I tried looking at the last block written and just walking through the frames and what I see is:
frame {start: 61946, length: 684, offset: 61944}
data {key: "%xSIUb+pnNqx8Hp3amG1sg5kD2n1lhJD5VpxnMHaI/ak=.sha256", value: {…}, timestamp:<PHONE_NUMBER>584}
frame {start: 62634, length: 1641, offset: 62632}
data {key: "%OC0VZ2tSieejXQtM1i/vLkyHkDXVdPueI1FUrXZAAac=.sha256", value: {…}, timestamp:<PHONE_NUMBER>586}
If I do a frame.getLastRecord I get the offset that matches what the views are seeing. This is also what stream will give them. So it seems that if length%block == 0 and we use compat, then since is
set to the total length of the last buffer and not the last frame. So the views get stuck.
I've tried running with this PR, and things starts working again, but I really want another pair of eyes on this to make sure that this actually works properly and to know if there is a better fix.

I pushed another update to the branch which fixes a buggy write. The problem was that before it was draining the queue, but while it was draining it might actually add another write. If that happens we end up in a situation where the write is not persisted. This is also faster.

There is still something fishy here. I'm writing some more tests to fix the original issue.

So the problem seems to be that if one does not call db.close after a write, then the database file is in a wierd half state where after loading it again, you will not the get the last block, even if it is written to the actual physical file.
If you then try to write to the last block again with something else that the first go, you end up with a mix of the first write and the second write. See https://gist.github.com/arj03/03cfdf3e5a09651bc3c5e9550d915f0b for two example files.
I have added a test to show the problem. I'm out of time here, would really like some fresh eyes on this.

Right, so the problem with the new test is actually that the lingering write of the third buffer from the first tests is still around after the first test finishes. And that means that when the second test tries to write, the first test actually write first, which is why we end up in the situation with two writes on top of each other. I'm really trying to reproduce the initial problem but so far I only managed to find the problem with waitingdrain. Not sure if that could have caused the initial problem. I have seen the problem on a lot of different machines and are currently testing with this fix.

Ok this in now ready for review. I managed to reproduce the problem with a test and check that the solution works. So all in all, 3 new tests, 2 bugs fixed :-)

Update on this. Have been running in production for 14 days with no issues. So at least it seems to have solved the original problem.

Pushed another commit to this branch. I spent an great deal of time hunting down this bug (https://github.com/random-access-storage/random-access-chrome-file/commit/03b91a7093917f351f31859f67dc45ad45c153c4). It was a great time, try it sometime :roll_eyes:
Anyway from this I spent quite a lot of time on this library and found a problem where you have multiple writes and streams trying to digest the data, but they will end up trying to read data that has not been written yet. This is actually quite common if you have 5 streams and you get the first write which is very small but then comes a bigger write, the streams will try to process the data not yet written and end up in the wierd setTimeout hack. This last commit changes so instead we add ourselves to the waiting queue that will be executed after the second write comes through.

@dominictarr should we move this repo to the flumedb org? I'm wondering what you think, seems the repo is only used for binary experiments. For me with the changes in this PR it seems to be working pretty well.


Text highlighter POST stub

Wires up preliminary highlighter serialization to non-existent endpoint
Fetches Topics Object from server
Deletes outdated mocks and dependencies
Renames TopicPicker to Topics
Fixes SourceMap debugging issue with webpack dev server

@normangilmore I believe you were doing this just to be helpful, but I am a big proponent of proper git process. In this case, for PR's, one gives feedback or simply a 👍  and then it is up to the developer who opened the PR to merge (unless that dev goes seriously MIA 😄 ). This just keeps everything organized. Thanks.


idea popup doesn't point to the correct location on Chromium

The size of the idea popup is different in Chrome (compared to firefox). Therefore, the offset is wrong and the popup is displayed in the wrong position.

This size issue also arises on other Firefox instances (using windows for example)

set the popup size to a fixed height in the og.css file for now.
solved with commit b6361eef726f567c9258ad497b725c708de28850


gh-actions: use Trusted Publishing, fix warnings, add pypy

For pypi-publish, remove password and rely on Trusted Publishing configured in PyPI, and also add attestations:write permission to go with attestations:true.
Also clean up caching to with.cache:pip and update action versions and installed pip to fix warnings.

Note: still need to confirm that pypy-publish actually works using the new Trusted Publishing mechanism next time I bump a release version, and probably do a little cleanup to delete the token secret if so.


Run on Charades

Hello, the author, thanks for your excellent work！I want to run your code on the Charades dataset(https://prior.allenai.org/projects/charades). How to write the code to make the code run on the Charades? Thank you very much!

@klauscc

Thanks for your interest. I didn't run experiments on Charades. I'd suggest you to use other codebase that already implement the training and inference on Charades. Our core part is the memory-saving backbone and it can be inserted to any action detector. You can check here to see how to do it:
https://github.com/klauscc/TALLFormer/blob/main/AFSD/anet_video_cls/membank/model.py
https://github.com/klauscc/TALLFormer/blob/main/vedatad/models/backbones/chunk_model.py

Hi @klauscc, first of all congratulations on the work you've done, I'm sorry to bother you, but I would like to ask some questions about the memory-saving mechanism you've mentioned because I am interested to try it in other codebase.
If I'm not mistaken, the ChunkVideoSwin (in https://github.com/klauscc/TALLFormer/blob/main/vedatad/models/backbones/chunk_model.py) and the BDNetMemBank (in https://github.com/klauscc/TALLFormer/blob/main/AFSD/anet_video_cls/membank/model.py) are essentially the same thing that manage the memory-bank, but in different ways for Thumos and ActivityNet, respectively.
Thus, for Thumos you employ the MemBankTrainEngine (https://github.com/klauscc/TALLFormer/blob/main/vedatad/engines/train_engine.py) that will update the memory-bank thanks to the MemSingleStageDetector detector (https://github.com/klauscc/TALLFormer/blob/main/vedatad/models/detectors/mem_single_stage_detector.py).
While for ANet it is managed inside the BDNetMemBank.
So my question is: do you have mentioned both ChunkVideoSwin and BDNetMemBank because they are complementary (and so I do not understand correctly how does they work) or maybe because it's up to us which one tho choose in a given context?
And if I'm wrong, could you kindly shed some light on the errors made?
Thanks you so much!

Hi @SimoLoca,
Yes. ChunkVideoSwin and BDNetMemBank are complementary.
ChunkVideoSwin is just a wrapper to the original VideoSwin to make it able to receive chunk first input.  BDNetMemBank will divide the inputs into chunks, and then feed some chunks to the ChunkVideoSwin to extract features for those chunks.

Thanks a lot for the reply.
But for Thumos training/test you did not employ BDNetMemBank, right?
Forgive me for my confusion.

Yes, for THUMOS we use MemSingleStageDetector, which is equivalent to the ** BDNetMemBank** for ActivityNet.
Also MemSingleStageDetector (for THUMOS) is equivalent to membank_dataset.py (load features from membank) and model.py (update membank).
The logic is like this: 1) split input frames into two group; 2) select features of first group from the memory bank; 3) extract features of the second group using the backbone; 4) update the membank using 3)'s features; 5) concat the features and feed to the following layers. Later when I got sometime I may write a general module for these 5 steps that makes it easier to be adapted to different codebases.

Thank you very much for your answer, I couldn't have asked for a better explanation.
All my doubts have been resolved.
Thank you again and I wish you many good things.


Connection error draining more than a few thousand tasks

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/kombu/messaging.py", line 620, in _receive_callback
    return on_m(message) if on_m else self.receive(decoded, message)
  File "/usr/local/lib/python3.8/site-packages/kombu/messaging.py", line 586, in receive
    [callback(body, message) for callback in callbacks]
  File "/usr/local/lib/python3.8/site-packages/kombu/messaging.py", line 586, in <listcomp>
    [callback(body, message) for callback in callbacks]
  File "/home/docker/taskrabbit/operations.py", line 53, in callback
    message.ack()
  File "/usr/local/lib/python3.8/site-packages/kombu/message.py", line 123, in ack
    self.channel.basic_ack(self.delivery_tag, multiple=multiple)
  File "/usr/local/lib/python3.8/site-packages/librabbitmq/__init__.py", line 94, in basic_ack
    return self.connection._basic_ack(
_librabbitmq.ConnectionError: Couldn't revive channel

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/docker/taskrabbit/__main__.py", line 3, in <module>
    main()
  File "/home/docker/taskrabbit/cli.py", line 80, in main
    args.func(args)
  File "/home/docker/taskrabbit/cli.py", line 19, in drain_command
    drain(args.exchange, args.queue, store)
  File "/home/docker/taskrabbit/operations.py", line 60, in drain
    conn.drain_events(timeout=1)
  File "/usr/local/lib/python3.8/site-packages/librabbitmq/__init__.py", line 227, in drain_events
    self._basic_recv(timeout)
SystemError: <method '_basic_recv' of '_librabbitmq.Connection' objects> returned a result with an error set

Perhaps a connection pool will be beneficial.
Also, perhaps related, draining is slow.

Haven't been able to duplicate this recently.


Fixes state admin unable to to switch back to live patients tab from discharged tab

Proposed Changes

Fixes #8491
Regression from recent changes made in #8329

@ohcnetwork/care-fe-code-reviewers
Merge Checklist

[x] Add specs that demonstrate bug / test a new feature.
[x] Ensure that UI text is kept in I18n files.
[x] Prep screenshot or demo video for changelog entry, and attach it to issue.
[x] Request for Peer Reviews
[ ] Completion of QA

LGTM


Wr/package installed list

What does this PR do?
adds package:installed:list command
NUTs only
What issues does this PR fix or reference?
requires: https://github.com/forcedotcom/packaging/pull/14
@W-11542978@

QA notes are on https://github.com/salesforcecli/plugin-packaging/pull/39


[2846] Remove course code mapping, and relax school id validation

Context
CSV fixes for Teach first/HPITT
Changes proposed in this pull request

Remove course code mapping
Relax school id validation, to allow rows without school urns to be created as trainees.

Guidance to review
:shipit:

 Remove course code from HPITT import


Hybrid Scans: Use indexes of partially indexed data, and use original data for unindexed data

Describe the issue
Currently if new additional data gets added to the old data, the indexes on the older part of data become obsolete. Hyperspace doesn't use this stale index at all. Investigate and find if some form of "Hybrid" scanning could be done to utilize the partially created indexes if possible and if it improves performance.
To Reproduce
NA
Expected behavior
If new data is added, indexes from the older data are still usable along with additional work done for the newly arrived data
Environment
NA

Sorry I didn't know this issue already exists. Let's duplicate this with #150 and work with it. Thanks!

Good catch! I will close this issue since it is a duplicate (@apoorvedave1 - Please feel free to reopen if you disagree). Thank you!


new camera management

See #21
This PR adds a different way to manage pbuffer used by the cameras.
This is still WIP.
It requires OSG>=3.6 (to have osgViewer::ViewerBase::setUseConfigureAffinity(bool flag) function), I will probably put this into a #ifdef to make it optional.
Opinions, comments, and ideas are welcome.

@Aneoshun thanks for this.. I will give it a detailed look most probably next week..
Can you resolve the conflicts in the meanwhile?

Sure, I will do.

Hi @costashatz,
Any thought on this? (conflicts are resolved)

Hey @Aneoshun ! Thanks again for this!

Any thought on this? (conflicts are resolved)

I merged with master, formatted and made a few comments. I am still trying to see if there is a better way to do this rather than a global namespace. I will get back to you as soon as possible..

@Aneoshun I do not see any other better way and I do not want to spend too much time on this.. I say that we merge this. I made all the changes that we discussed. Please verify that everything compiles and works in your case and then I will merge..
By the way, I am already working on providing a better (and more customizable) graphics integration using the Magnum library. You can have a look at the magnum branch; although it is still very early! Using Magnum we would not need separate classes and structures for taking off-screen pictures or creating sensors..

@costashatz Thanks a lot for that. Sorry I did not have time to do the changes myself. One of my students tested this branch this morning in his own experiment and it works as expected. So I guess that's ready to merge.


app.bsky.notification.list_notifications method started failing about an hour ago.

Probably related to this change to  bluesky-social / atproto which occurred around the same time:
https://github.com/bluesky-social/atproto/pull/1959
When this was working a bit over an hour ago the "seen_at" parameter was documented as optional but including it always generated the error message: 'The seenAt parameter is unsupported'. Removing this parameter allowed app.bsky.notification.list_notifications() to work.
Now the same call generates the following error:
Traceback (most recent call last):
  File "/home/max/.local/share/virtualenvs/p20_bs-CytYnhbM/lib/python3.10/site-packages/atproto/xrpc_client/models/utils.py", line 87, in _get_or_create
    return model(**model_data)
  File "/home/max/.local/share/virtualenvs/p20_bs-CytYnhbM/lib/python3.10/site-packages/pydantic/main.py", line 164, in __init__
    __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__)
pydantic_core._pydantic_core.ValidationError: 1 validation error for Response
seenAt
  Extra inputs are not permitted [type=extra_forbidden, input_value='2023-12-12T21:40:05.894Z', input_type=str]
    For further information visit https://errors.pydantic.dev/2.5/v/extra_forbidden

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/max/zz_dev/projects/p20_bs/main.py", line 54, in <module>
    example_42_appbskynotification_list_notifications()
  File "/home/max/zz_dev/projects/p20_bs/example.py", line 509, in example_42_appbskynotification_list_notifications
    FEED = client.app.bsky.notification.list_notifications({'limit': limit, 'cursor': cursor})
  File "/home/max/.local/share/virtualenvs/p20_bs-CytYnhbM/lib/python3.10/site-packages/atproto/xrpc_client/namespaces/sync_ns.py", line 970, in list_notifications
    return get_response_model(response, models.AppBskyNotificationListNotifications.Response)
  File "/home/max/.local/share/virtualenvs/p20_bs-CytYnhbM/lib/python3.10/site-packages/atproto/xrpc_client/models/utils.py", line 98, in get_response_model
    return get_or_create(response.content, model)
  File "/home/max/.local/share/virtualenvs/p20_bs-CytYnhbM/lib/python3.10/site-packages/atproto/xrpc_client/models/utils.py", line 64, in get_or_create
    raise e
  File "/home/max/.local/share/virtualenvs/p20_bs-CytYnhbM/lib/python3.10/site-packages/atproto/xrpc_client/models/utils.py", line 57, in get_or_create
    model_instance = _get_or_create(model_data, model, strict=strict)
  File "/home/max/.local/share/virtualenvs/p20_bs-CytYnhbM/lib/python3.10/site-packages/atproto/xrpc_client/models/utils.py", line 89, in _get_or_create
    raise ModelError(str(e)) from e
atproto.exceptions.ModelError: 1 validation error for Response
seenAt
  Extra inputs are not permitted [type=extra_forbidden, input_value='2023-12-12T21:40:05.894Z', input_type=str]
    For further information visit https://errors.pydantic.dev/2.5/v/extra_forbidden

For a temporary fix I added the following to a local version of xrpc_client/models/app/bsky/notification/list_notifications.py
After line 39:
cursor: t.Optional[str] = None  #: Cursor.
Added:
seenAt: t.Optional[str] = None

fixes in v0.0.33 pls upgrade


plugin not working in windows

I followed the instructions, and didn't see an "AI" menu.  there's no troubleshooting options for windows.  what additional info do you need?  thanks

Please check, if you can run "Filters > Render > Spyrogimp". This plugin is also Python based. If this also doesn’t work, there is a general problem with your GIMP installation.

As i didn’t hear from you for several days, I’m closing the issue now.


Polygon line length, square kilometers and configurable precision

Some changes for drawing polygons. All unit tests and documentation have been updated.

The tooltip that follows your mouse when creating a polygon now also has the ability to show the length of the line in addition to the area of the polygon.
Using the options object, you can specify the type of metric units to use (km, ha, m)
Instead of:

metric: true,

you can now also do:
metric: ['ha', 'm'],

To use hectares and meters, and not kilometers.

Using the options object, you can specify the precision to use for the calculated values to display:

precision: {
  km: 2,
  m: 1
}

For display values such as 2.99 km, 3.00 km and 1.5 m and 1.0 m.

Sweet, looks pretty solid.


Denying load of chrome-extension://.../jquery.min.map. Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.

I get a console error when loading any page with the dotjs extension enabled. Disabling the extension makes the error go away.

Denying load of chrome-extension://dlnccnmhpmdidoiecanghgienhoglnim/jquery.min.map. Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.

Googling for this error results in this SO question and answer, which mentions including the jquery map.
Is there a known workaround for this?

The chrome tabs api has functions to inject js and css, so I made a quick attempt to reproduce dotjs functionality using that: https://github.com/diffsky/chromedotfiles


Add support for Evince

As requested in #26. This adds an Evince viewer using the same scripts we use on the Sublime version. This means it requires a python interpreter (2.7 or 3.4+; may work on other versions, I just haven't tested) with the dbus bindings installed. If you are using a Gnome-based desktop, you likely already have this.
In addition, the drop-down to choose a viewer should now be dynamically populated, which means that on Linux (well, anything that isn't OS X / Darwin or Windows), evince will appear. In addition, the default viewers are exposed as an options (okular, sumatra, skim) and any viewer registered with Latextools.addViewer should also appear in the list.

dear @ig0774 , I appreciate your work on the evince support and I daily use it using your forked repository. Could you be so kind to resync your repository with the master one?
Waiting for the merge of this PR... :-(

dear @ig0774, I'm using your recent 0.8.5 version from your forked repository but I receive this exception when try to compile:
Atom Version: 1.11.2
Electron Version: 0.37.8
System: "Arch Linux"
Thrown From: latextools package, v0.8.5
Stack Trace
Uncaught TypeError: Builder is not a constructor
At /home/mario/.atom/packages/latextools/lib/latextools.coffee:520

TypeError: Builder is not a constructor
    at Object.module.exports.Latextools.requireIfNeeded (/home/mario/.atom/packages/latextools/lib/latextools.coffee:520:28)
    at atom-text-editor.subscriptions.add.atom.commands.add.latextools:build (/home/mario/.atom/packages/latextools/lib/latextools.coffee:338:8)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/usr/share/atom/resources/app.asar/src/command-registry.js:260:29)
    at /usr/share/atom/resources/app.asar/src/command-registry.js:3:61
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:580:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:388:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/usr/share/atom/resources/app.asar/src/window-event-handler.js:114:36)
    at HTMLDocument.<anonymous> (/usr/share/atom/resources/app.asar/src/window-event-handler.js:3:61)

Commands
     -3:08.2.0 command-palette:toggle (atom-text-editor.editor.is-focused)
     -3:05.1.0 core:confirm (atom-text-editor.editor.mini.is-focused)
     -3:05.1.0 editor:log-cursor-scope (atom-text-editor.editor)
     -3:02.5.0 editor:consolidate-selections (atom-text-editor.editor.is-focused)
     -3:02.5.0 core:cancel (atom-text-editor.editor.is-focused)
  2x -2:42.6.0 latextools:build (atom-text-editor.editor.is-focused)
     -1:48.8.0 editor:move-to-beginning-of-word (atom-text-editor.editor.is-focused)
     -1:47.3.0 latextools:build (atom-text-editor.editor.is-focused)
     -0:45.8.0 core:cancel (a.btn-copy-report.icon.icon-clippy)
     -0:44 settings-view:open (atom-workspace.workspace.scrollbars-visible-always.seti-ui-no-icons.theme-one-dark-syntax.theme-one-dark-ui)
     -0:41 core:select-all (atom-text-editor.editor.mini.is-focused)
     -0:38.8.0 core:confirm (atom-text-editor.editor.mini.is-focused)
     -0:09.2.0 core:close (select#latextools.commandCompletion.form-control)
     -0:07.9.0 pane:show-next-item (atom-text-editor.editor.is-focused)
     -0:02.1.0 fuzzy-finder:toggle-git-status-finder (atom-text-editor.editor.is-focused)
     -0:00.0 latextools:build (atom-text-editor.editor.is-focused)

Config
{
  "core": {
    "autoHideMenuBar": true,
    "disabledPackages": [
      "linter-clang",
      "linter-cppcheck",
      "linter-write-good",
      "autocomplete-clang",
      "latex-autocomplete",
      "latexer",
      "linter-chktex"
    ],
    "packagesWithKeymapsDisabled": [],
    "telemetryConsent": "limited"
  },
  "latextools": {
    "builderSettings": {},
    "citeAutoTrigger": false,
    "refAutoTrigger": false,
    "viewer": "evince"
  }
}

Installed Packages
# User
atom-beautify, v0.29.13 (inactive)
autocomplete-clang, v0.10.0 (inactive)
autocomplete-python, v1.8.7 (active)
build, v0.66.0 (active)
build-make, v0.13.0 (active)
busy, v0.7.0 (active)
docblockr, v0.8.7 (active)
duotone-dark-syntax, v1.0.0 (inactive)
file-icons, v1.7.22 (active)
gtk-dark-theme, v0.1.4 (active)
highlight-selected, v0.11.2 (active)
language-latex, v1.0.0 (active)
latex-autocomplete, v1.0.0 (inactive)
latexer, v0.3.0 (inactive)
latextools, v0.8.5 (active)
linter, v1.11.18 (active)
linter-chktex, v1.3.0 (inactive)
linter-clang, v3.4.4 (inactive)
linter-cppcheck, v0.2.0 (inactive)
linter-gcc, v0.6.15 (active)
minimap, v4.25.6 (active)
minimap-highlight-selected, v4.4.0 (active)
open-recent, v5.0.0 (active)
pdf-view, v0.50.0 (active)
preview-inline, v1.2.0 (active)
project-manager, v3.3.2 (active)
red-wavy-underline, v0.3.0 (active)
symbol-gen, v1.3.1 (active)
typewriter, v0.3.5 (active)
Zen, v0.16.4 (inactive)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.52.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.44.0 (inactive)
base16-tomorrow-dark-theme, v1.2.0 (inactive)
base16-tomorrow-light-theme, v1.2.0 (inactive)
one-dark-ui, v1.6.0 (active)
one-light-ui, v1.6.0 (inactive)
one-dark-syntax, v1.3.0 (active)
one-light-syntax, v1.3.0 (inactive)
solarized-dark-syntax, v1.0.2 (inactive)
solarized-light-syntax, v1.0.2 (inactive)
about, v1.7.0 (active)
archive-view, v0.61.1 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.11.2 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.1 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.1 (active)
bookmarks, v0.42.0 (active)
bracket-matcher, v0.82.1 (active)
command-palette, v0.38.0 (active)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
find-and-replace, v0.201.1 (inactive)
fuzzy-finder, v1.4.0 (active)
git-diff, v1.1.0 (active)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.2 (active)
image-view, v0.59.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.1 (inactive)
markdown-preview, v0.158.0 (active)
notifications, v0.65.1 (active)
open-on-github, v1.2.0 (inactive)
package-generator, v1.0.0 (inactive)
settings-view, v0.242.2-hotfix1 (active)
snippets, v1.0.2 (active)
spell-check, v0.68.2 (active)
status-bar, v1.4.1 (active)
styleguide, v0.47.0 (active)
symbols-view, v0.113.1 (inactive)
tabs, v0.101.0 (active)
timecop, v0.33.2 (active)
tree-view, v0.209.3 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.35.1 (active)
whitespace, v0.33.0 (active)
wrap-guide, v0.38.2 (active)
language-c, v0.52.1 (active)
language-clojure, v0.21.0 (active)
language-coffee-script, v0.47.2 (active)
language-csharp, v0.12.1 (active)
language-css, v0.37.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.42.1 (active)
language-html, v0.45.1 (active)
language-hyperlink, v0.16.0 (active)
language-java, v0.23.0 (active)
language-javascript, v0.119.0 (active)
language-json, v0.18.2 (active)
language-less, v0.29.5 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.35.0 (active)
language-php, v0.37.2 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.0 (active)
language-ruby, v0.69.0 (active)
language-ruby-on-rails, v0.25.0 (active)
language-sass, v0.56.0 (active)
language-shellscript, v0.22.4 (active)
language-source, v0.9.0 (active)
language-sql, v0.23.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.28.0 (active)
language-toml, v0.18.0 (active)
language-xml, v0.34.9 (active)
language-yaml, v0.26.0 (active)

# Dev
No dev packages

@diraimondo: Thanks for pointing that out. Generally, I don't make any guarantees that that fork will work (its primarily there so I can test new features before they get added). Nevertheless, if you update to the latest committed version, it should fix the issue.

@ig0774 : thank you for your efforts.
After a `git pull' I'm still facing (another) error:
Atom Version: 1.11.2
Electron Version: 0.37.8
System: "Arch Linux"
Thrown From: latextools package, v0.8.5
Stack Trace
Uncaught Error: Cannot find module 'key-path-helpers'
At module.js:341

Error: Cannot find module 'key-path-helpers'
    at Module._resolveFilename (module.js:339:15)
    at Function.Module._resolveFilename (/usr/share/atom/resources/app.asar/src/module-cache.js:383:52)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:50:27)
    at Object.<anonymous> (/home/mario/.atom/packages/latextools/lib/project.coffee:2:23)
    at Object.<anonymous> (/home/mario/.atom/packages/latextools/lib/project.coffee:1:1)
    at Module._compile (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:103:30)
    at Object.defineProperty.value [as .coffee] (/usr/share/atom/resources/app.asar/src/compile-cache.js:208:21)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:50:27)
    at Object.<anonymous> (/home/mario/.atom/packages/latextools/lib/project-manager.coffee:2:13)
    at Object.<anonymous> (/home/mario/.atom/packages/latextools/lib/project-manager.coffee:1:1)
    at Module._compile (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:103:30)
    at Object.defineProperty.value [as .coffee] (/usr/share/atom/resources/app.asar/src/compile-cache.js:208:21)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:50:27)
    at Object.module.exports.Latextools.requireIfNeeded (/home/mario/.atom/packages/latextools/lib/latextools.coffee:530:29)
    at Object.module.exports.Latextools.getTeXRoot (/home/mario/.atom/packages/latextools/lib/latextools.coffee:461:8)
    at Builder.module.exports.Builder.build (/home/mario/.atom/packages/latextools/lib/builder.coffee:33:14)
    at atom-text-editor.subscriptions.add.atom.commands.add.latextools:build (/home/mario/.atom/packages/latextools/lib/latextools.coffee:342:16)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/usr/share/atom/resources/app.asar/src/command-registry.js:260:29)
    at /usr/share/atom/resources/app.asar/src/command-registry.js:3:61
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:580:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:388:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/usr/share/atom/resources/app.asar/src/window-event-handler.js:114:36)
    at HTMLDocument.<anonymous> (/usr/share/atom/resources/app.asar/src/window-event-handler.js:3:61)

Commands
     -0:00.2.0 latextools:build (atom-text-editor.editor.is-focused)

Config
{
  "core": {
    "autoHideMenuBar": true,
    "disabledPackages": [
      "linter-clang",
      "linter-cppcheck",
      "linter-write-good",
      "autocomplete-clang",
      "latex-autocomplete",
      "latexer",
      "linter-chktex"
    ],
    "packagesWithKeymapsDisabled": [],
    "telemetryConsent": "limited"
  },
  "latextools": {
    "builderSettings": {},
    "citeAutoTrigger": false,
    "refAutoTrigger": false,
    "viewer": "evince"
  }
}

Installed Packages
# User
atom-beautify, v0.29.13 (inactive)
autocomplete-clang, v0.10.0 (inactive)
autocomplete-python, v1.8.7 (active)
build, v0.66.0 (active)
build-make, v0.13.0 (active)
busy, v0.7.0 (active)
docblockr, v0.8.7 (active)
duotone-dark-syntax, v1.0.0 (inactive)
file-icons, v1.7.22 (active)
gtk-dark-theme, v0.1.4 (active)
highlight-selected, v0.11.2 (active)
language-latex, v1.0.0 (active)
latex-autocomplete, v1.0.0 (inactive)
latexer, v0.3.0 (inactive)
latextools, v0.8.5 (active)
linter, v1.11.18 (active)
linter-chktex, v1.3.0 (inactive)
linter-clang, v3.4.4 (inactive)
linter-cppcheck, v0.2.0 (inactive)
linter-gcc, v0.6.15 (active)
minimap, v4.25.6 (active)
minimap-highlight-selected, v4.4.0 (active)
open-recent, v5.0.0 (active)
pdf-view, v0.50.0 (active)
preview-inline, v1.2.0 (active)
project-manager, v3.3.2 (active)
red-wavy-underline, v0.3.0 (active)
symbol-gen, v1.3.1 (active)
typewriter, v0.3.5 (active)
Zen, v0.16.4 (inactive)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.52.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.44.0 (inactive)
base16-tomorrow-dark-theme, v1.2.0 (inactive)
base16-tomorrow-light-theme, v1.2.0 (inactive)
one-dark-ui, v1.6.0 (active)
one-light-ui, v1.6.0 (inactive)
one-dark-syntax, v1.3.0 (active)
one-light-syntax, v1.3.0 (inactive)
solarized-dark-syntax, v1.0.2 (inactive)
solarized-light-syntax, v1.0.2 (inactive)
about, v1.7.0 (active)
archive-view, v0.61.1 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.11.2 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.1 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.1 (active)
bookmarks, v0.42.0 (active)
bracket-matcher, v0.82.1 (active)
command-palette, v0.38.0 (inactive)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
find-and-replace, v0.201.1 (inactive)
fuzzy-finder, v1.4.0 (active)
git-diff, v1.1.0 (active)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.2 (active)
image-view, v0.59.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.1 (inactive)
markdown-preview, v0.158.0 (active)
notifications, v0.65.1 (active)
open-on-github, v1.2.0 (inactive)
package-generator, v1.0.0 (inactive)
settings-view, v0.242.2-hotfix1 (active)
snippets, v1.0.2 (active)
spell-check, v0.68.2 (active)
status-bar, v1.4.1 (active)
styleguide, v0.47.0 (active)
symbols-view, v0.113.1 (inactive)
tabs, v0.101.0 (active)
timecop, v0.33.2 (active)
tree-view, v0.209.3 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.35.1 (active)
whitespace, v0.33.0 (active)
wrap-guide, v0.38.2 (active)
language-c, v0.52.1 (active)
language-clojure, v0.21.0 (active)
language-coffee-script, v0.47.2 (active)
language-csharp, v0.12.1 (active)
language-css, v0.37.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.42.1 (active)
language-html, v0.45.1 (active)
language-hyperlink, v0.16.0 (active)
language-java, v0.23.0 (active)
language-javascript, v0.119.0 (active)
language-json, v0.18.2 (active)
language-less, v0.29.5 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.35.0 (active)
language-php, v0.37.2 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.0 (active)
language-ruby, v0.69.0 (active)
language-ruby-on-rails, v0.25.0 (active)
language-sass, v0.56.0 (active)
language-shellscript, v0.22.4 (active)
language-source, v0.9.0 (active)
language-sql, v0.23.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.28.0 (active)
language-toml, v0.18.0 (active)
language-xml, v0.34.9 (active)
language-yaml, v0.26.0 (active)

# Dev
No dev packages

You probably have to run apm install in the directory ~/.atom/packages/LaTeXTools and restart Atom.

Ok, it worked. Sorry for the noise...


Issue on cannot access view chapter

After activate adblock, videos that support view chapter cannot be click and show at the side. Must be disable only able to click view chapter.

Should be fixed in the latest version (2.6)


How to compare two images?

How to compare two images?

I have two face pictures. How can I compare the similarity between the two pictures?

I have the same quetion.


[BUG] Not showing description of the subcategory

Description
When clicking on the i button right to subcategory name, its not showing any description in the popup, its showing the category name.
Screenshots

Any additional information?
No response
What browser are you seeing the problem on?
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[ ] I am willing to work on this issue (optional)

Hey @rupali-codes  I would love to work on this issue

@rupali-codes The thing has been working fine in local. The issue is in deployment

@rupali-codes The thing has been working fine in local. The issue is in deployment

The issue is in local development as well, You can see on screenshot.

@rupali-codes can i try?

@rupali-codes can i try?

Yeah sure!

if you tell i will do it


do not create new files if there are no new samples or columns in extend

Codecov Report

Merging #2847 into dev will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##              dev    #2847      +/-   ##
==========================================
+ Coverage   95.36%   95.36%   +<.01%
==========================================
  Files          73       73
  Lines       13796    13801       +5
==========================================
+ Hits        13156    13161       +5
  Misses        640      640

Impacted Files
Coverage Δ

...ita_db/metadata_template/base_metadata_template.py
96.14% <100%> (ø)
:arrow_up:

..._db/metadata_template/test/test_sample_template.py
99.85% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fa4153f...1931197. Read the comment docs.


Feat: Logos (Favicon & Navbar)

Added the Logo to the Navbar, and also made it the favicon as well

Also works with dark mode

@Connor200024 any idea why i18n broke deployments?

Nvm, found it.

Question, about the Layout.js in components, is it needed? As its doing what the theme config is doing?

Sigh, What did it do this time

Is this ok now? If not then I won't push it yet.

nope

ill fix it rn

Ok let me know once done, I'll then fight with Vercel. :)

Scroll to top breaks it

Idfk why.

@Connor200024 ight, this is ready to go


[ZEPPELIN-1629] Enable renaming folder from the main page

What is this PR for?
This PR will enable renaming folder from the main page.
I wrote some codes. Hope this PR is the start of folder-based features. (e.g folder authorization, folder focused view)
Please check when you have some time!
Thanks 😄
What type of PR is it?
[Feature]
Todos

[x] - Fix ConcurrentModificationException of FolderView

What is the Jira issue?
ZEPPELIN-1629
How should this be tested?
Change folder names!
Screenshots (if appropriate)

Questions:

Does the licenses files need update? no
Is there breaking changes for older versions? no
Does this needs documentation? no

Fixed error and CI is green!
Ready for review! 😄

Awesome. Let me test this. Will ping you again :)

@tae-jun Sorry for my late response.
I tested but can't edit the dir name in root dir level. The folder name can be modified only in below level. Please see the below attached gif img.

@AhyoungRyu Thanks for review 😄 Don't need to hurry! I will check and ping you :)

@AhyoungRyu ping ping~ I tested!

But it just works fine with me. I tested both running ZeppelinServer from IntelliJ and binary built from mvn clean package -DskipTests
I use macOS 10.12.1 and Chrome. Could you please share your test environment? 😄

@tae-jun Build it again and tested, but It works well as you intended. It was my bad.
I tested two cases: \w & \wt Shiro. Both are works well.
Probably it's a nitpick,

when I try to rename the folder name at home screen, the above msg is shown up. Could you change renameFolder Notebook to rename folder? (I know renameFolder comes from op and notebook is hardcoded, but sounds a bit awkward ㅜ_ㅜ)

@AhyoungRyu Thanks for your kind review. I appreciate it.
Actually, I didn't test with Shiro ^^; and didn't know what op parameter means. So thanks very much.
I changed renameFolder to rename folder of you addressed and also renameNote to rename.
Now it looks like this:

I also included note name which needs permission 😄
What do you think?

@tae-jun It works well when I tried to rename folder name. And I think It's good idea to let user know which notes that he don't have permission exactly. Thanks :)
But currently CI is failed with below compilation error. Could you take a look again?
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/travis/build/apache/zeppelin/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java:[774,5] cannot find symbol
  symbol:   class Folder
  location: class org.apache.zeppelin.socket.NotebookServer
[INFO] 1 error

@tae-jun And one more thing, it would be better to keep consistency between Note and Notebook(combination of several notes). I pushed one commit to your branch, could you please take a look https://github.com/tae-jun/zeppelin/pull/1?
It will be shown when user rename the folder(I removed notebook):

And then user rename the note:

And also when user create a note, I changed Example: NoteDir1/Notebook1 -> NoteDir1/Note1

@AhyoungRyu Thanks! I also think notebook is a little bit weird :) I merged your PR thanks.
This change will affect other insufficient privileges error messages as well:

Insufficient privileges to read notebook
Insufficient privileges to update notebook
Insufficient privileges to remove notebook
Insufficient privileges to write notebook
Insufficient privileges to clear output notebook

I prefer removing notebook. What do you think guys? If anyone has a concern about this, please tell.
And about CI, I suffered from that error when I tried to compile only one project (e.g. zeppelin-server). Since zeppelin-server depends on zeppelin-interpreter and zeppelin-zengine, I had to build two dependencies and install them on local maven repo, which can be done with mvn clean package install -DskipTests. If not, when it tries to compile zeppelin-server, it cannot find symbols of zeppelin-zengine and goes to fail.
However, I'm not sure that CI only recompiles changed files. I will look into it, and tell you if I get some more information.
(CI was green before 😭)

@AhyoungRyu I fixed what you mentioned 😄 Please review.

I guess CI fails because it only recompiles changed files. (since build time is too short)

It should be about 30min.
Is there any way to compile the whole project again? I ran CI on my own repository. It failed on some profiles because of Ignite interpreter. (what is relevance between Ignite interpreter and my PR? 😭) But it passed on other profiles whereas every profile failed on this repository.

@AhyoungRyu Yeah!!! Finally!!!
CI is green!!! It was my fault! I didn't import Folder at zeppelin-server.
(Why was it green before...?)
Please take a look!

@AhyoungRyu Fixed what you mentioned :) Always thanks for the review 😄

@tae-jun Thanks for your prompt update. Appreciated your continues work. Tested again and checked the root folder naming issue is gone now. But when I create over 3 depth folder structure, then the root folder name can't be modified again. Here are the reproducing steps.

Create note with /a/b/c
Try to edit root folder a with d -> click Rename btn
It's not changed to d. Still remained as a

Could you check again? We're almost done I think!

@AhyoungRyu Sorry for my late response! But it's due to tests :)
I reproduced the error you mentioned and you were right!
Furthermore, chasing a reason of the error, I notice that there are more possibilities of error. So I wrote more codes and added more test cases.
Folder merging test

Renaming a high depth folder test

I thought this new feature is simple to implement... but now I don't think so...^^; I tested a lot of times, but maybe there are more bugs. So please test this when you have some time.
Thanks 😄

CI failure is because of me. I will fix it :)

@tae-jun Great work! Take your time and feel free to ping me again when you're ready.

@AhyoungRyu Yeah! CI is green 😄  Please review! Thanks

@tae-jun This is Cool! and It works well!
So, I suggest one thing. I think it would be nice to appear popup which is whether user will merge the folders or not before merging folders. In my case, It is familiar to me :)
What do you think?

@soralee Thanks for the review! 😄 That's a great idea! I will give some effect on the front-end and ping you again. Thanks :)

@soralee Hi! I added the feature you suggested. What do you think? Is title or content of warning message appropriate? Thanks for the cool suggestion!

@soralee What a nice suggestion! @tae-jun I think it's cool!!

@AhyoungRyu Always thanks for the review 😄

@tae-jun It is very AWESOME 👍 and thanks you for the accept my suggestion.
Let me check again after CI is green 😄

@AhyoungRyu @soralee Yeah! CI is green!

Tested and working really nicely. Looks awesome to me!
Thanks @tae-jun for the great contribution!

Thanks @Leemoonsoo! I appreciate your review 😄

I've tested more and it was fine most times. But occasionally it doesn't work well. I think it should be tested more! I don't know why for now but I will figure it out and ping when it's ready :)

I found out bugs by adding loggers and fixed them!
CI is green and it seems to work perfectly. I think it's good to go now 😄
Please when you have some time. Thanks!

Great work @tae-jun. LGTM!

Merge to master if there're no more comments

Tested and it's working nicely! LGTM 👍


Neo4j Syntax Error

The question marks generated for parameters in the templating engine are causing issues when using the neo4j jdbc driver. Is there a way to control the text generated in the template in order to get around this?

Please ask questions in the user mail list. If you found an error, please fill an issue with detailed info!


Smaller typos

Simon applied them directly.

Thanks for reporting! They're already fixed in the internal version and the fixes will be replicated here soon.
General note: PRs can be made here, but the proposals need to be backported to the internal version first.


Change SimpleIterableStreamWrapper to work with multiple workers allowing shuffling

Is your feature request related to a problem? Please describe.
Overall goal would be to align caikit streams with torch / transformers data loader
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context about the feature request here.

Might need a follow-up story for sharding data.


Update composer.json

Renaming the package is out of question. I don't understand why you opened such PR.

Sorry, I made some mistake. I wanted to update nothing.


minor/setup_kind_cluster.sh: actually write the my-config.yaml

minor change: we may want to actually write the registration file

I print it because I usually build the ISO outside of the management cluster VM, on my host.
If you want to write it directly there's no problem, but I'd still like to have it printed so I can easily copy/paste it :P

I print it because I usually build the ISO outside of the management cluster VM, on my host.
If you want to write it directly there's no problem, but I'd still like to have it printed so I can easily copy/paste it :P

Just added because the following message referenced a iso/config/my-config.yaml file that was not there... but  it is enough to print out the command to create the file too. After all, the script execution doesn't make assumptions from where the script is run, we only do in the printed out message... let's leave the assumption in the message only 😅


Fixed typo successfull > successful

Fixed a typo of successful, previously had an extra 'l' in it.

Thanks!


ncdu: pie for darwin builds

Fix broken darwin compilation. The issue started after the 2.2.2 -> 2.3 update (0b6d39590921).
ncdu defaults pie to false while zig requires it to be true for darwin.
Description of changes
Add option for ncdu to set pie in the zig build and default it to true if stdenv.isDarwin.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 249722 run on aarch64-darwin 1

1 package built:

ncdu

Result of nixpkgs-review pr 249722 run on x86_64-darwin 1

1 package built:

ncdu

Would be nice to see this merged.

Hello, @pSub  and @rodrgz. You guys were added as required reviewers to this PR of mine, fixing ncdu compilation for Darwin targets.
I'm new to the Nixpkgs reviewing process (and to Nix/NixOs), so I wonder if you were supposed to be here as required reviewers...

while zig requires it to be true for darwin.

@AndersonTorres would it make sense to include this into zig.hook? I could imagine that this eventually affects other packages as well, that default to pie=false. If you agree, then we could remove this argument from this package.

I'm not an expert on zig but I think the pie build option is specific to ncdu. It's defined in the ncdu build file, and at least minizign fails to build with -Dpie=true: error: Invalid option: -Dpie

That being said, this expression should not expose pie as option.
Indeed I believe much of these things will be solved only after 1.0.


Fix issue with Draw Support

In some cases folium generates an id for the draw control that ends in a different digit. Not sure when or why.
This change uses a regex to rename drawnItems_ to drawnItems in javascript, so it can handle both cases.
Closes issue #203

Thanks @hansthen! @blackary made a fix, which makes the tests pass here.


Custom Syntax Formatting: Hiccup

My goal is to format my project's hiccup like this:
;; before
[:div {:a "a"} [:p "hello"]]

;; after
[:button
  {:on-click (fn [] ...)}
  [:p "hello"]]

I've been able to achieve this with my own style-map config for hiccup (see below for the config).  The issue I'm running into is that if I have a multi arity function, the arg signatures is mistaken for hiccup and they will be formatted as well.  For example:
;; the original multi arity fn with formatting we like
(defn my-fn
  ([a] (my-fn a {})
  ([a {:keys [b c]}]
   (do-stuff a b c))

;; the multi-arity fn when confused for hiccup formatting
(defn my-fn
  ([a] (my-fn a {})
  ([a                 ;; <---mistaken for hiccup
     {:keys [b c]}]   ;; <---mistaken for hiccup
   (do-stuff a b c))

I'm curious if we have a way to get around this? 🤔

hiccup style-map config
;; style-map config
{:vector-fn {:indent-arg 2}
              :vector
              {:wrap? false
               :option-fn
               (fn
                 ([] "hiccup-w-option-fn")
                 ([opts n exprs]
                  (let [hiccup? (and (>= n 2)
                                     (or (keyword? (first exprs))
                                         (symbol? (first exprs)))
                                     (map? (second exprs)))]
                    (cond (and hiccup? (not (:fn-format (:vector opts))))
                          {:vector {:fn-format :flow}}

                          (and (not hiccup?) (:fn-format (:vector opts)))
                          {:vector {:fn-format nil}}

                          :else nil))))}}

To make sure this is just a copy-paste error, is it supposed to be defn my-fn?

To make sure this is just a copy-paste error, is it supposed to be defn my-fn?

Yep!  Thanks @NoahTheDuke 🙇

Thanks for asking.  I am assuming that the def should have been defn, as @NoahTheDuke pointed out.
I think the problem you are encountering is because the second arity of the function has an argument vector that starts with a symbol and is followed by a map.  The hiccup style is detecting that as a hiccup vector, since that appears to be a legal form of hiccup vector.
There are two ways that I can try to get the hiccup support to leave argument vectors alone.  One way is positional, within a defn, and I'll work on that.
Another way is by finding a way to disambiguate hiccup vectors from argument vectors.  I'm not a big hiccup user, so I don't have a lot of experience in that regard.  If I look at the hiccup definition, it seems like there isn't any clear way to determine whether a vector is a hiccup vector or an argument vector.  Since you have a lot more experience with hiccup than I do -- do you see a way to determine whether a vector is a hiccup vector or an argument vector simply by looking at the contents of the vector?  If so, we can easily fix the option-fn to be more discerning about what it formats as hiccup.
If not, then we will have to fall back on something more complex where we look at the position of the vector within the overall defn, and ignore some vectors as hiccup vectors.  Which I will work on figuring out how to make happen -- but it would be nice to have a simpler way to accomplish the goal.
Thanks!

I believe that I have answered my own question to you.  I think one way to disambiguate an argument vector from a hiccup vector is to look at the map which must be the second thing in the vector (to even be considered a possible hiccup vector).  If that map has any keys that are :keys, :strs, :syms, :as, :or, then it must be a destructuring map, not a hiccup map.  I have a bit more testing to do, but I expect I will be able to offer you a better :option-fn soon, which will not require a different version of zprint to execute.

You might want to give this a try.  I think it will do what you want.  I tried it on some random hiccup I had, and it seems to do what you want for the formatting of the hiccup -- and doesn't mess up the argument vector.
{:vector {:option-fn (fn
                       ([] "hiccup-w-option-fn")
                       ([opts n exprs]
                        (let [hiccup? (and (>= n 2)
                                           (or (keyword? (first exprs))
                                               (symbol? (first exprs)))
                                           (map? (second exprs))
                                           (not (some #{:keys :syms :strs :as
                                                        :or}
                                                      (keys (second exprs)))))]
                          (cond (and hiccup? (not (:fn-format (:vector opts))))
                                  {:vector {:fn-format :flow}}
                                (and (not hiccup?) (:fn-format (:vector opts)))
                                  {:vector {:fn-format nil}}
                                :else nil)))),
          :wrap? false},
 :vector-fn {:indent-arg 2}}

Let me know how this works for you.
Thanks

Sorry it took a min to get back to this.  Took a while to test all the edge cases and see how the above performs.
The config in https://github.com/kkinnear/zprint/issues/294#issuecomment-1494810359 almost works all the time.  I had to make the following updates to it to get it to perform a little better as well.

hiccup style-map config
;; style-map config
{:vector {:wrap? false
                       :option-fn
                       (fn
                         ([] "hiccup-w-option-fn")
                         ([opts n exprs]
                          (let [arg-1             (first exprs)
                                arg-2             (second exprs)
                                invalid-prop-keys #{:keys
                                                    :syms
                                                    :strs
                                                    :as
                                                    :or
                                                    :actions/keys
                                                    :preview-csv/keys
                                                    :action/keys}
                                ;; @note second position can be a vector or a
                                ;; map.  When it's a vector, it should begin
                                ;; with a keyword or symbol and it could also
                                ;; just be a string
                                hiccup? (and (>= n 2)
                                             (and
                                               (or (keyword? arg-1)
                                                   (symbol? arg-1))
                                               ;; @note specific to this
                                               ;; codebase, guards against
                                               ;; [_ {}] being mistaken for
                                               ;; hiccup                                               ;; hiccup when it cannot be.  This is found
                                               (not (= '_ arg-1)))
                                             (or
                                               (string? arg-2)
                                               ;; @note arg-2 could be a vector
                                               ;; (more hiccup) and so we want
                                               ;; to treat it as such
                                               (and
                                                 (and
                                                   (vector? arg-2)
                                                   (>= (count arg-2) 2))
                                                 (or
                                                   (keyword? (first arg-2))
                                                   (symbol? (first arg-2))))
                                               (and
                                                 (map? arg-2)
                                                 (->> (keys arg-2)
                                                      (some invalid-prop-keys)
                                                      (not)))))]
                            (cond (and hiccup? (not (:fn-format (:vector opts))))
                                  {:vector {:fn-format :flow}}

                                  (and (not hiccup?) (:fn-format (:vector opts)))
                                  {:vector {:fn-format nil}}

                                  :else nil))))}}

My feeling is that this is fine until we get a better :option-fn.
For future reference, here is an example scenario we would ideally want it to work for but it doesn't quite
[hi
  {}
  [:p
    {}
    "hello"]]

;; what it does
[:div [icon/bloop]
 [:p
   "hello"]]

;; what we want
[:div
   [icon/bloop]
   [:p
     "hello"]]

Nice option-fn!   That said, I'm pretty confused here.  It looks to me like your option-fn does what you want -- at least it does for me:
; I defined your option fn as a style called :i294d ...
(print i294ud)
{:style-map {:i294d
               {:vector
                  {:option-fn
                     (fn
                       ([] "hiccup-w-option-fn")
                       ([opts n exprs]
                        (let [arg-1 (first exprs)
                              arg-2 (second exprs)
                              invalid-prop-keys #{:keys :syms :strs :as :or}
                              ;; @note second position can be a vector or a
                              ;; map.  When it's a vector, it should begin
                              ;; with a keyword or symbol and it could also
                              ;; just be a string
                              hiccup?
                                (and (>= n 2)
                                     (and (or (keyword? arg-1) (symbol? arg-1))
                                          ;; @note specific to this
                                          ;; codebase, guards against
                                          ;; [_ {}] being mistaken for
                                          ;; hiccup
                                          ;;                  ;; hiccup when it
                                          ;; cannot be.  This is found
                                          (not (= '_ arg-1)))
                                     (or (string? arg-2)
                                         ;; @note arg-2 could be a vector
                                         ;; (more hiccup) and so we want
                                         ;; to treat it as such
                                         (and (and (vector? arg-2)
                                                   (>= (count arg-2) 2))
                                              (or (keyword? (first arg-2))
                                                  (symbol? (first arg-2))))
                                         (and (map? arg-2)
                                              (->> (keys arg-2)
                                                   (some invalid-prop-keys)
                                                   (not)))))]
                          (cond (and hiccup? (not (:fn-format (:vector opts))))
                                  {:vector {:fn-format :flow}}
                                (and (not hiccup?) (:fn-format (:vector opts)))
                                  {:vector {:fn-format nil}}
                                :else nil)))),
                   :wrap? false}}}}

; Now, actually define it locally (new feature, set-options! will accept a string)
(set-options! i294ud)

(print i294d)
[:div [hi] [:p "hello"]]

; I had to up the vector indent to 2 in order to get what you want, but it does seem to do it fine.

(czprint i294d {:parse-string? true :style :i294d :vector {:indent 2}})
[:div
  [hi]
  [:p
    "hello"]]

So, I get the feeling that I'm missing something.   This is the current version under development, but I get the same results with 1.2.5.
That is my principal confusion: Why does what you show as the result not reproduce for me?  Perhaps you have some additional configuration option map that interacts with it that I don't have?

The other confusion is that I'm not sure what you mean by "getting a better option-fn".  I think that yours looks pretty good.  Is there some underlying feature that is missing to allow you (or me) to create a better option-fn?    How would I know that it was better (presumably because it would process the example you gave into your desired output -- but that is what I get already...).
I'm more than willing to create a better option-fn if I can figure out how to determine if it works or not.  I'm also perfectly willing to add fundamental features to make creating such an option-fn possible, if I know what they are.
Thanks much for clearing this up for me!

Thanks for getting back to me!  I'm glad things are working for you now.
For what it is worth,  I still can't replicate the problem that you showed above, that is:
;; what it does
[:div [hi]
 [:p
   "hello"]]

I tried adding {:map {:force-nl? true}} to things, and I still can't make the style that you wrote and that I demonstrated above produce this output.  Which leaves me a bit unsettled.
However, if you are happy with how it works now, then we don't need to continue to spend time getting me to replicate a problem that you don't have anymore.  We both have plenty of other things to do.
Please know, however, that if it isn't working the way you want, that I am more than willing to figure out why and do my best to make it work for you.
Thanks!

I have released 1.2.6, which has an updated :style :hiccup, with some the corrections that you needed (but without some other things that you have in your custom style).  I would suggest that you continue to use your custom style going forward.
Thanks for bringing this up!


Update lfe_io_pretty handling of (map ...) forms

Add clause to lfe_io_pretty:term/4 to handle (map ...) forms as maps,
abstracting away F in map/4 to map/5 for maximum code reuse.
Fixes #183.

There are two problems with your solution:

the (map ...) form is a constructor not a literal so it should print as (map ...) not as #M(...)
as it is "hand-written" it could wrongly contain an odd number of elements which must be printed

Otherwise yes.

Ah, right. Will revise.

Updated. I've also handled the indentation properly now.

Assume the following helper function for these examples:
> (defun println (x) (lfe_io:format "~p\n" `[,x]))
println

#m(...) example:
> (println '#m(#"silly" #"example" #"with" #"lots" #"of" #"keys"
               #"and" #"values" #"to" #"test" #"changes" #"to"
               #"lfe_io_pretty" #"wrt" #"map literal" #"forms"
               #"and" #"also" #"(map ...)" #"forms"))
#M(#"(map ...)" #"forms" #"and" #"also" #"changes" #"to"
   #"lfe_io_pretty" #"wrt" #"map literal" #"forms" #"of" #"keys"
   #"silly" #"example" #"to" #"test" #"with" #"lots")
ok

(map ...) example:
> (println '(map #"silly" #"example" #"with" #"lots" #"of" #"keys"
                 #"and" #"values" #"to" #"test" #"changes" #"to"
                 #"lfe_io_pretty" #"wrt" #"map literal" #"forms"
                 #"and" #"also" #"(map ...)" #"forms"))
(map #"silly" #"example" #"with" #"lots" #"of" #"keys"
     #"and" #"values" #"to" #"test" #"changes" #"to"
     #"lfe_io_pretty" #"wrt" #"map literal" #"forms" #"and" #"also"
     #"(map ...)" #"forms")
ok

The #m(...) behaviour is unchanged, but previously (map ...) forms used to look like this:
(map
 #"silly"
 #"example"
 #"with"
 #"lots"
 #"of"
 #"keys"
 #"and"
 #"values"
 #"to"
 #"test"
 #"changes"
 #"to"
 #"lfe_io_pretty"
 #"wrt"
 #"map literal"
 #"forms"
 #"and"
 #"also"
 #"(map ...)"
 #"forms")

Only one more problem: what happens if (map ...) is not given a sequence of key/value element pairs, i.e. an odd number of elements? Now it seems like the extra element is thrown away which must not be done as this is a valid list even if it is an illegal call.
Just to be difficult. :-)

You're quite right. It currently throws away the extra term. I'll have to add a special case and append the extra term when present.

Updated again, namely adding:
    case length(Map) rem 2 of                   %Odd number of elements
        0 -> [P,Body,$)];
        1 -> [P,Body,$\s,term(lists:last(Map), D, I, L),$)]
    end.

such that
> (println '(map #"an" #"odd" #"number" #"of" #"fields"))
(map #"an" #"odd" #"number" #"of" #"fields")
ok

Oops. That breaks #m(...) handling...

These things are sent to try us. :-)

:hurtrealbad: This latest hack does everything correctly, but ignores line wrapping for the odd element.
$ lfe -eval '(lfe_io:format "~p\n" \'[(map #"an" #"odd" #"number" #"of" #"fields")])'
(map #"an" #"odd" #"number" #"of" #"fields")

$ lfe -eval '(lfe_io:format "~p\n" \'[#M(#"an" #"odd" #"number" #"of" #"fields")])'
lfe:1: bad map

$ lfe -eval '(lfe_io:format "~p\n" \'[#M(#"even" #"number" #"of" #"fields")])'
#M(#"even" #"number" #"of" #"fields")

Could you just rebase this and I will pull it?

Will do when back to keyboard.


chore: use type aliases instead of interfaces

Just like I did in #7363, #7366, #7367, #7368, #7369 & #7370
These are all internal types, so we can just merge it as-is

Closing per https://github.com/remix-run/remix/pull/7362#issuecomment-1711703874


Windows 10 + MinGW64 make compilation fails

Traying to compile repo by make using makefile:
CC = gcc
#Using -Ofast instead of -O3 might result in faster code, but is supported only by newer GCC versions
CFLAGS = -lm -pthread -O3 -march=native -Wall -funroll-loops -Wno-unused-result

all: word2vec word2phrase distance word-analogy compute-accuracy

word2vec : word2vec.c
	$(CC) word2vec.c -o word2vec $(CFLAGS)
word2phrase : word2phrase.c
	$(CC) word2phrase.c -o word2phrase $(CFLAGS)
distance : distance.c
	$(CC) distance.c -o distance $(CFLAGS)
word-analogy : word-analogy.c
	$(CC) word-analogy.c -o word-analogy $(CFLAGS)
compute-accuracy : compute-accuracy.c
	$(CC) compute-accuracy.c -o compute-accuracy $(CFLAGS)
	chmod +x *.sh

clean:
	rm -rf word2vec word2phrase distance word-analogy compute-accuracy

got the next error output:
┌──(AlexisTercero㉿AlexisTercero)-[E:/source/word2vec]-[8-code-review-of-mikolovs-code-for-word2vec]                      7s  ⨯
└─$ make
gcc word2vec.c -o word2vec -lm -pthread -O3 -march=native -Wall -funroll-loops -Wno-unused-result
word2vec.c: In function 'InitNet':
word2vec.c:341:7: warning: implicit declaration of function 'posix_memalign' [-Wimplicit-function-declaration]
  341 |   a = posix_memalign((void **)&syn0, 128, (long long)vocab_size * layer1_size * sizeof(real));
      |       ^~~~~~~~~~~~~~
word2vec.c:341:38: warning: 'posix_memalign' argument 2 type is 'int' where 'long long unsigned int' is expected in a call to built-in function declared without prototype [-Wbuiltin-declaration-mismatch]
  341 |   a = posix_memalign((void **)&syn0, 128, (long long)vocab_size * layer1_size * sizeof(real));
      |                                      ^~~
<built-in>: note: built-in 'posix_memalign' declared here
word2vec.c:344:40: warning: 'posix_memalign' argument 2 type is 'int' where 'long long unsigned int' is expected in a call to built-in function declared without prototype [-Wbuiltin-declaration-mismatch]
  344 |     a = posix_memalign((void **)&syn1, 128, (long long)vocab_size * layer1_size * sizeof(real));
      |                                        ^~~
<built-in>: note: built-in 'posix_memalign' declared here
word2vec.c:350:43: warning: 'posix_memalign' argument 2 type is 'int' where 'long long unsigned int' is expected in a call to built-in function declared without prototype [-Wbuiltin-declaration-mismatch]
  350 |     a = posix_memalign((void **)&syn1neg, 128, (long long)vocab_size * layer1_size * sizeof(real));
      |                                           ^~~
<built-in>: note: built-in 'posix_memalign' declared here
word2vec.c: In function 'TrainModel':
word2vec.c:556:84: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  556 |   for (a = 0; a < num_threads; a++) pthread_create(&pt[a], NULL, TrainModelThread, (void *)a);
      |                                                                                ^
word2vec.c: In function 'TrainModelThread':
word2vec.c:542:1: warning: control reaches end of non-void function [-Wreturn-type]
  542 | }
      | ^
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\user\AppData\Local\Temp\ccdg73RN.o:word2vec.c:(.text+0x6877): undefined reference to `posix_memalign'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\user\AppData\Local\Temp\ccdg73RN.o:word2vec.c:(.text+0x6ab1): undefined reference to `posix_memalign'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\user\AppData\Local\Temp\ccdg73RN.o:word2vec.c:(.text+0x6c73): undefined reference to `posix_memalign'
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:8: word2vec] Error 1

Due the error undefined reference to 'posix_memalign'
See Whats the correct replacement for posix_memalign in Windows?
a posible solution is an user define function as an alternative representation taking into account the next comment

Whereas malloc gives you a chunk of memory that could have any alignment (the only requirement is that it must be aligned for the largest primitive type that the implementation supports), posix_memalign gives you a chunk of memory that is guaranteed to have the requested alignment.
So the result of e.g. posix_memalign(&p, 32, 128) will be a 128-byte chunk of memory whose start address is guaranteed to be a multiple of 32.
This is useful for various low-level operations (such as using SSE instructions, or DMA), that require memory that obeys a particular alignment.(Charlesworth@Stackoverflow 2011)

Error break points due undefined reference to 'posix_memalign'
https://github.com/AlexisTercero55/word2vec_TMB/blob/deacffb8f7604923b54641643019fc2fa4b15d40/word2vec.c#L341
https://github.com/AlexisTercero55/word2vec_TMB/blob/deacffb8f7604923b54641643019fc2fa4b15d40/word2vec.c#L344
https://github.com/AlexisTercero55/word2vec_TMB/blob/deacffb8f7604923b54641643019fc2fa4b15d40/word2vec.c#L350

Solution
A header file posix_memalign.h wit the function declaration and a posix_memalign.c file with the implementation.
workaround
#include "posix_memalign.h"

int posix_memalign(void **memptr, size_t alignment, size_t size) {
    *memptr = malloc(size);
    return (*memptr == NULL) ? -1 : 0;
}

ZFTurbo proposal
Contains some memory issues https://stackoverflow.com/a/33696225/16848624 and https://stackoverflow.com/a/38291021/16848624
#ifdef _WIN32
static int check_align(size_t align)
{
    for (size_t i = sizeof(void *); i != 0; i *= 2)
    if (align == i)
        return 0;
    return EINVAL;
}

int posix_memalign(void **ptr, size_t align, size_t size)
{
    if (check_align(align))
        return EINVAL;

    int saved_errno = errno;
    void *p = _aligned_malloc(size, align);
    if (p == NULL)
    {
        errno = saved_errno;
        return ENOMEM;
    }

    *ptr = p;
    return 0;
}
#endif

From https://git.musl-libc.org/cgit/musl/tree/src/malloc/posix_memalign.c
musl - an implementation of the standard library for Linux-based systems
 #include <stdlib.h>
#include <errno.h>

int posix_memalign(void **res, size_t align, size_t len)
{
	if (align < sizeof(void *)) return EINVAL;
	void *mem = aligned_alloc(align, len);
	if (!mem) return errno;
	*res = mem;
	return 0;
}

Conclusions
The build was successful.

[ ] Some warnings was raised.
[ ] posix_memalign doesn't meet requirements at all.

https://github.com/AlexisTercero55/word2vec_TMB/blob/bbc2b749a540d57d754d3f4c0c650a1777a1a822/posix_memalign.c#L3
https://github.com/AlexisTercero55/word2vec_TMB/blob/bbc2b749a540d57d754d3f4c0c650a1777a1a822/posix_memalign.h#L6
https://github.com/AlexisTercero55/word2vec_TMB/blob/bbc2b749a540d57d754d3f4c0c650a1777a1a822/word2vec.c#L20
https://github.com/AlexisTercero55/word2vec_TMB/blob/bbc2b749a540d57d754d3f4c0c650a1777a1a822/makefile#L8

https://github.com/AlexisTercero55/AI-Research/issues/8


feat: locally Lipschitz maps

Define locally Lipschitz maps and show their basic properties.
In particular, they are continuous and stable under composition and products.
As an application, we conclude that C¹ maps are locally Lipschitz.

Left for the future:

continuous functions are locally bounded, hence so are locally Lipschitz functions
sum and scalar multiples of a real-valued locally Lipschitz function is locally Lipschitz
(hence, locally Lipschitz functions form a submodule of the ring of continuous functions)
locally Lipschitz maps are a submonoid of $\text{End}(\alpha)$

I've gone through the entire file; with the points below, all API for Lipschitz maps (where this makes sense) has a counterpart for locally Lipschitz maps.

For the proof of composition, I'm stuck on two sorries related to coercions of subsets. Minimized code:
import Mathlib.Topology.EMetricSpace.Basic
open Topology
lemma minimized {X Y Z: Type*} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z]
    {f : Y → Z} {g : X → Y} {t: Set X} {u: Set Y}
    {x : X} (ht: t ∈ 𝓝 x) (hu: u ∈ 𝓝 (g x)) : True /- dummy statement -/ := by
  -- idea: shrink u to g(t); more precisely:
  -- restrict g to t' := t ∩ g⁻¹(u); the preimage of u under g':=g∣t.
  let g' := t.restrict g
  let t' : Set X := ↑(g' ⁻¹' u)
  -- The following is mathematically easy; I'm wrestling with filling the sorries.
  have h₁ : t' = t ∩ g ⁻¹' u := by
    apply Iff.mpr (Set.Subset.antisymm_iff)
    constructor
    · intro x hx
      constructor
      · exact Set.coe_subset hx
      · -- goal: x ∈ g ⁻¹' u
        -- informal argument: as x ∈ t', we can apply g' (and land in u by definition), so g'(x)=g(x) ∈ u
        sorry
    · intro x hx
      rcases hx with ⟨ht, hgu⟩
      -- goal: x ∈ t'
      -- as x ∈ t, we can write g(x)=g'(x); the rhs lies in u, so x ∈ g⁻¹(u) also
      sorry
  sorry -- omitted (have proven this)

@eric-wieser Thanks for the quick comments. I've made the requested changes.
I'm on the fence about the second: it enables more golfing; in general, I find these golfed proofs somewhat readable in VS Code, but not on github.  I don't know if the latter is aimed for; your call as a maintainer.

Fixed the last sorry - courtesy of Alex J. Best on zulip. Thanks!
(There's also an aesop-free version, if you'd prefer me to avoid such a heavy hammer.)

bors d+
Thanks!

bors r+


Exec format error on arm64 and arm/v7

I start the container with the following docker-compose.yml:
version: "3"

services:
  mailforward:
    image: zixia/simple-mail-forwarder
    container_name: mailforward
    environment:
      - SMF_CONFIG=joe<EMAIL_ADDRESS>      - SMF_DOMAIN=yyy.net
      - TZ=Europe/Berlin
#    volumes:
#      - ./certs:/etc/postfix/cert/
    ports:
      - "25:25"
    restart: unless-stopped

This leads to the following startup log:
>> Chdir to /app...
 ____  _                 _         __  __       _ _
/ ___|(_)_ __ ___  _ __ | | ___   |  \/  | __ _(_) |
\___ \| | '_ ` _ \| '_ \| |/ _ \  | |\/| |/ _` | | |
 ___) | | | | | | | |_) | |  __/  | |  | | (_| | | |
|____/|_|_| |_| |_| .__/|_|\___|  |_|  |_|\__,_|_|_|
                  |_|
  _____                                _
 |  ___|__  _ ____      ____ _ _ __ __| | ___ _ __
 | |_ / _ \| '__\ \ /\ / / _` | '__/ _` |/ _ \ '__|
 |  _| (_) | |   \ V  V / (_| | | | (_| |  __/ |
 |_|  \___/|_|    \_/\_/ \__,_|_|  \__,_|\___|_|

v1.4.6
Source#c3b5b30 Tue Jul  6 06:54:15 2021 +0000 * master
Built on Tue Jul  6 06:54:37 UTC 2021 by buildkitsandbox

>> END SMF_DOMAIN found. value:[yyy.net]
>> ENV SMF_CONFIG found. value:[joe<EMAIL_ADDRESS>>> ARGV arguments found. value:[start]
Generating a RSA private key
............+++++
......+++++
writing new private key to 'smtp.key'
-----
Generating an EC private key
writing new private key to 'smtp.ec.key'
-----
/entrypoint.sh: line 47: [: =: unary operator expected
>> SMF_CONFIG found in ENV. use this settings for forward maps.
>> Setting password[dx1h0cq6] for user<EMAIL_ADDRESS>...
>> Set hostname to yyy.net
Postfix logging configuration
Postfix will use the default logging configuration: /dev/stdout
OpenDKIM: Keys for yyy.net not found, generating...
opendkim-genkey: generating private key
opendkim-genkey: private key written to default.private
opendkim-genkey: extracting public key
opendkim-genkey: DNS TXT record written to default.txt
Inserting yyy.net data to /etc/opendkim/{KeyTable, SigningTable, TrustedHosts}
OpenDKIM: this TXT record for yyy.net should be present:
default._domainkey        IN      TXT     ( "v=DKIM1; k=rsa; "
    "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6TtNNXK4m8gFiQdpw52GzA0OViDfkxi/qI4f+T5sheT4CmYZb7jZRm03TQV6RhebuILcBJz5IZwF7eduIWAgDVHfpvaLdbAlwh4bVvzokzF3U7+MHKI213RSwffWzSaToJoQWEGMS2NlGk2O0dUJeC6540nDMEUjrxsafsY6TXTM7SlODhawtMclv1IJW8KDxkBZeu7yWr3uv6"
    "VUAgj/TukQ3kVRMzBnm2Fh6/0ojqOTeCx0XBN45/bG6wTz1mg7gc9Nuuj+HiNzdBWRHg19owPFGeUze7odZG1KpoIbVVv+GSIRQEXz+UKUeEqlYQiRNtZiCBy+2EUtkfFmFzKZOQIDAQAB" )  ; ----- DKIM key default for yyy.net
Configuring DKIM key settings in /etc/opendkim/opendkim.conf
Postfix main.cf custom entries from SMF_POSTFIXMAIN_
Postfix master.cf custom entries from SMF_POSTFIXMASTER_
Editing /etc/postfix/master.cf, adding missing entry for postlog unix-domain datagram service
>> Start self-testing...
1..24
ok 1 SMF_CONFIG exist
ok 2 SMF_DOMAIN exist
ok 3 virtual maping source is set
ok 4 virtual maping data is set
ok 5 virtual maping db is set
ok 6 system hostname FQDN resolvable
ok 7 postfix myhostname FQDN & resolvable
ok 8 check other hostname setting
ok 9 confirm postfix is running
ok 10 confirm port 25 is open
ok 11 crond is running # skip skip this for 0.3.0 -> 0.4.0
ok 12 ESMTP STATTLS supported
ok 13 ESMTP AUTH supported
ok 14 ESMTP STARTTLS connect ok
ok 15 create user<EMAIL_ADDRESS>by password test
ok 16 ESMTP AUTH by<EMAIL_ADDRESS>ok 17 ESMTP TLS AUTH by<EMAIL_ADDRESS>ok 18 deleting test user<EMAIL_ADDRESS>not ok 19 test DKIM keys
# (in test file test/simple-mail-forwarder.bats, line 182)
#   `opendkim-testkey -d ${domain:13:-1} -s default -vvv' failed with status 69
# Validating DKIM for yyy.net
# opendkim-testkey: using default configfile /etc/opendkim/opendkim.conf
# opendkim-testkey: checking key 'default._domainkey.yyy.net'
# opendkim-testkey: 'default._domainkey.yyy.net' record not found
ok 20 test custom main.cf entries
ok 21 test custom master.cf entries
ok 22 test default postfix logging configuration
ok 23 test custom postfix logging configuration with an error
ok 24 test custom postfix logging configuration
>> Test FAILED!
>> !!!!!!!!!!!!!!!!!!!! SYSTEM ERROR !!!!!!!!!!!!!!!!!!!!
>> !!!!!!!!!!!!!!!!!!!! SYSTEM ERROR !!!!!!!!!!!!!!!!!!!!
>> !!!!!!!!!!!!!!!!!!!! SYSTEM ERROR !!!!!!!!!!!!!!!!!!!!
>> !!!!!!!!!!!!!!!!!!!! SYSTEM ERROR !!!!!!!!!!!!!!!!!!!!
>> !!!!!!!!!!!!!!!!!!!! SYSTEM ERROR !!!!!!!!!!!!!!!!!!!!
>> !!!!!!!!!!!!!!!!!!!! SYSTEM ERROR !!!!!!!!!!!!!!!!!!!!
>> !!!!!!!!!!!!!!!!!!!! SYSTEM ERROR !!!!!!!!!!!!!!!!!!!!
>> But I'll pretend to run... good luck! :P

>> CONGRATULATIONS! System is UP and You are SET!
>> Powered by SMF - a Simple Mail Forwarder
>> View in DockerHub: https://hub.docker.com/r/zixia/simple-mail-forwarder

>> Init System for Servicing...
/init: line 11: /bin/importas: cannot execute binary file: Exec format error
/init: line 12: export: `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin': not a valid identifier
/etc/s6/init/init-stage1: line 26: syntax error near unexpected token `}'
/etc/s6/init/init-stage1: line 26: `}'

It seems to be related to >>this<< issue but i tried this on two independent rasperry pis - one with arch linux 32 bit and one with arch linux 64 bit. On both the error occurs.

v. 1.4.7.
Same problem.
Bump up...

+bump

fuck the document.
this is bump, because your DNS TXT record for DKIM is not set correct!!!
see the log tips "not ok 19 test DKIM keys", and the TXT record value, you need remediate it manually!!! remove this char (), ", \n
good luck for you, guys!
$ cat run/email_forward/xxx.cn/default.txt
default._domainkey      IN      TXT     ( "v=DKIM1; k=rsa; "
          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmFAWqaWCzjR0A6dwLPXSGjRmVI+p0x4vveBZPxFBNguLsOYBn+7+GtKJJcibK1piA0fptsF8MQKkarO64uTDJbOx0afvqLG/8EFMP7gC/9ODDPCfZwAP56ZMrs/MaqFfy+iSzQdeoaj5ogKxp6xdjHmWUntJlU6mlw6sHW/iEhkvrgxa/kzkotl"
          "NZNkyZIW6A0etFiRNRg9WNJQ5Ekj5miA9tzhCDdWyoy3ytqEnr5MY8E/OoqU92ESX49inrme9Pl0Qv3VXwwUPzZF8obgkeiPU8MuYaF2gDOJyAoUVbcCrbNRjQIDAQAB" )  ; ----- DKIM key default for xxx.cn

I'm still facing this issue with aarch64

Same here. Doesn't run unfortunately on a Raspberry Pi 4

I had the same problem and discovered three issues:

the install-s6-overlays.sh script always loads the amd version (its not using the $URL variable built in the previous line)
the -C option on the tar line is set to '' (line continuation) and should be '/'
version 2 of s6 only provides a binary for 'arm'

Correcting the script and always loading the 'arm' architetcure for all arm variants worked for me.
Modified script below:
#!/usr/bin/env bash
set -eo pipefail
if [[ -n "$1" ]]; then
S6_VERSION=$1; shift
else
echo "arg 1 should be the s6 version"
exit 1
fi
case $(uname -m) in
armv6l)
;& # fall through
armv7l)
ARCH=arm
;;
armv8l)
ARCH=arm
;;
aarch64)
ARCH=arm
;;
i386)
ARCH=x86
;;
x86_64)
ARCH=amd64
;;
*)
echo "ARCH not supported: $ARCH"
exit 1
;;
esac
URL="https://github.com/just-containers/s6-overlay/releases/download/v${S6_VERSION}/s6-overlay-${ARCH}.tar.gz"
curl -L -s "$URL" | tar xpzf - -C /

I'm still getting this error - is anyone interested in forking this project if its not being fixed here?

https://github.com/huan/docker-simple-mail-forwarder/pull/131

bump … still not working on a new Rasberry Pi


Feature: Cheatcodes for VM state checkpointing to facilitate differential tests

Motivation
Sometimes it is necessary to test implementation logic between a refactor and existing code, or an optimized, low-level assembly implementation versus a human-readable "reference" implementation.
When testing against two different implementations of the same logic, it would be very useful to be able to roll back VM state between runs of test logic against different implementations. In practice, this would would function similarly to how VM state is rolled back to the state after calling setUp() between individual tests.
Solution

Implement a vm.checkpoint cheatcode to create a state that can be revisited (possibly with tagging to allow multiple checkpoints - though certainly not a requirement)
Implement a vm.rollback cheatcode to roll back to a previous state (possibly taking a tag as a parameter to roll back to)

Duplicate of #1162


Cannot read property 'indexOf' of null

Getting this error: Cannot read property 'indexOf' of null
in this part of pixi:
i.prototype.removeChild = function(t) {
                var e = arguments.length;
                if (e > 1)
                    for (var r = 0; r < e; r++)
                        this.removeChild(arguments[r]);
                else {
                    var i = this.children.indexOf(t);
                    if (i === -1)
                        return;
                    t.parent = null ,
                    n.removeItems(this.children, i, 1),
                    this.onChildrenChange(i),
                    t.emit("removed", this)
                }
                return t
            }

after calling sprite.destroy();
this.texture is null when this happens, so I'm guessing that the problem is that the parent sprite was destroyed before the child sprite. But I shouldn't have to worry about this, a destroy call should work regardless.

So it seems that we have a new bug after we patched "removeChild" and "destroy()" methods

Should be as simple as adding a if(!this.children){return;} ?


Add option to get all comics and zip them up.

This might actually be a bad idea unless you have a lot of space. 😅

This is a bad idea. Until someone asks for it, I'm not implementing it.  I also need someone to estimate the amount of space it'd take.


Adds Actions to automatically add/remove S-ready from PRs

I get the last one being Build-out-of-date, but what is this one?

The previous one has some flaws so we will move to this one instead.

I've been preliminarily looking at how IPC sockets work, and it looks like it's a looooot of code.

From the looks of it, sys_connect binds IPC sockets to a filesystem path.

I think socket protocols and address families could (theoretically) be generalized in a nice way, roughly like this. Hopefully we get to do this one day.

Actually more like this:

It is likely needed to be a trait object so the trait needs to be object safe. BTW better to create a discussion instead of hooking into a random issue/PR so we can easily find it.


Apple ID is locked after signing in: Unable to Sign In

Describe the bug
I am unable to sign into my apple id. My apple ID has 2FA and when i go to sign into Xcodes with my password, I get the proper popups for the 2FA code but then Xcodes seems to fail to login. This worked before.
To Reproduce

Login with an account with 2FA.
Observe error

Expected behavior
Successful log in
Screenshots

Version

OS: 13.2.1
Xcodes: 1.9.0

Hi @wvabrinskas
That url in the error gives - https://support.apple.com/en-ca/HT212522 which says If you see this message after attempting to sign in with a new device or web browser, wait for at least 24 hours, then try to sign in again.
I'm guessing your Apple ID is locked for a bit? If it doesn't work on Xcodes, another way to test is to log into developer.apple.com and make sure it works there.
Thanks

Ah I did reset my password. What was weird was Xcodes is what triggered the lock actually... so weird

I got my account locked by something else, but I'm also experiencing this issue. I changed my password and while I can log in on the developer page, I can't log in to Xcodes nor the thing that got me locked in the first place. Both show me this error but I still get the 2FA code prompt on my devices anyway.

I am experiencing the same issue, but it seems that signing in through Xcodes caused the account to be locked. I tried with two separate Apple IDs (personal and work) and both were locked after trying to sign in this way.
Worth noting that I was trying to sign in through a build server in a cloud data centre, which could also be a reason why the account was locked. Just sharing my experience here in case it helps narrow things down.

Yeah it seems however Xcodes is authenticating is causing accounts to be locked. At least that's what happened with me, and it seems a few others

Thanks everybody.. it happens to me too. I'll see what i can find. Hopefully it's just a temporary thing.

Update: After getting locked out of the Apple ID, via my Mac, I was forced to reset my Apple ID password (via my phone). Xcodes seems to be working as it should and I can now download normally.
Is this what everyone else is seeing?

Update: After getting locked out of the Apple ID, via my Mac, I was forced to reset my Apple ID password (via my phone). Xcodes seems to be working as it should and I can now download normally.
Is this what everyone else is seeing?

Will try again. I'm almost afraid to get locked out again. I have so many devices 😆

Will try again. I'm almost afraid to get locked out again. I have so many devices 😆

Yeah I hear you!
The password I had for my Apple ID I had been using for a really long time. (I probably shouldn't say that). Wondering if that had anything to do with it? Perhaps Apple cracking down?

It's not just Xcodes - Fastlane is having similar issues! https://github.com/fastlane/fastlane/issues/21071

Via the fastlane issue above, users are also getting locked out of their accounts using Xcode archiver!
Happy Thursday!

Nice find, happy Thursday indeed :)

I used 3 different apple accounts and all were locked out the moment I attempted to sign into Xcodes.

Okay so then I won't be trying lol

It's not just Xcodes - Fastlane is having similar issues! fastlane/fastlane#21071

Woah wild. I wonder what's going on...

Spent my afternoon digging through this, here's notes on the new hashcash addition: https://github.com/fastlane/fastlane/issues/21071#issuecomment-1442442083

@dhinakg I saw that - thanks for all your work! I'm looking at implementing it.
Do you happen to have some of those values so that I can write a proper test? I was trying to follow it through on the website, but I'm not seeing any header with the final x-apple-hc header value

X-Apple-HC-Bits: 10
X-Apple-HC-Challenge: bb63edf88d2f9c39f23eb4d6f0281158

With this case, if you set the timestamp to<PHONE_NUMBER>1754, you'd construct 1:10:20230224001754:bb63edf88d2f9c39f23eb4d6f0281158::COUNTER, and if you start from 0 you should end up at the counter being 866, so you'd set X-APPLE-HC to 1:10:20230224001754:bb63edf88d2f9c39f23eb4d6f0281158::866
X-APPLE-HC is set on the request to https://idmsa.apple.com/appleauth/auth/signin?isRememberMeEnabled=true in a browser:

@dhinakg I'll prefix with I think I'm doing something wrong but I tried to implement the hashcash algorithm with your inputs and I'm not getting the same counter as what you have.
https://github.com/RobotsAndPencils/XcodesApp/pull/361
So I'm getting 1:10:20230224001754:bb63edf88d2f9c39f23eb4d6f0281158::1092 instead of 866. If you have some time to perhaps see what is wrong with my code?

@MattKiazyk There is logic for this in this fastlane PR 👉  https://github.com/fastlane/fastlane/pull/21073
Appfigures was nice enough to share the spec with us 😊

I was locked out of my Apple account yesterday when using "login with apple" on a random site, never happened before. I'm guessing something went live to cause that across all platforms and integrations.

Thanks @joshdholtz and Appfigures!
Work has me busy today but I hope to get the PR up this weekend!

I was locked out of my Apple account yesterday when using "login with apple" on a random website, never happened before. I'm guessing something went live to cause that across all platforms and integrations.

that's wild

Same thing happened to me - but I have a sense that the issue isn’t over.
I wound up needing to reset my phone to factory settings this morning, because my PIN code stopped working.
On attempting to restore my phone from backup, though? iCloud Backups are not loading, and aren’t visible on my other devices. Also, can’t login to “iMessage in the Cloud”.
Could somebody else here check if they’re able to view their iCloud Backups in Settings.app? I’m concerned that there’s a larger issue with my AppleID as a result of all of this…

Hey Everybody
Implemented the fix in  https://github.com/RobotsAndPencils/XcodesApp/pull/361
If somebody would be so kind as to download that PR and see if that works?
Note: If your account is locked already this doesn't FIX your account. You must unlock your account and from that point forward the Xcodes login won't lock your account. 🤞

@MattKiazyk trying now

@MattKiazyk  worked a treat!! Thank you so much

Thanks for the great improvements! Does this need to be addressed for the CLI tool as well? https://github.com/RobotsAndPencils/Xcodes


Graduate ElasticIndexedJob to GA

Tracking issue: https://github.com/kubernetes/enhancements/issues/3715

Holding this PR for now, as the corresponding upstream PR hasn’t been merged yet.
kubernetes/kubernetes#125751
/hold
(remove the hold label once the upstream changes are merged)

/lgtm

/approve
Unhold when ready!


Activity 1 of Space in Skillmap

[ ] Add images
[ ] Fix tutorial text

The mods in projects.md are a side effect in the build; but i think it's fine to check them in.

Would be nice to move those files into tutorial folder.

Is there a missing commit for "Fix tutorial text" mentioned above?

@ganicke   The md is in a different repository than the images.  Just made a PR for that:
https://github.com/microsoft/pxt-skillmap-sample/pull/15