Publish processing metrics for L1B

📋 Info
Every time processing is run, publish metrics (if not development).
Metrics should include:

number of incoming records
number of outgoing records
processing time
timestamp of data

A good solution is to use https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cloudwatch/client/put_metric_data.html
An alternative is to log the data in a structured way and pick it up in a metric that way.
See also: https://github.com/innosat-mats/level1a/issues/55
🏁 DoD

[ ] Metrics posted from Level1B processing

Any other things needed in the metrics, @Kernl67 and @OleMartinChristensen ?

If the data is processed successfully, but some errors/warnings are raised, is it possible to get a metric about that without having to check the error flags for each image ?

I don't know how many error flags there are and how they work, so take this with a pinch of salt, but I think that should be doable, if you think it worthwhile.


Implement conv1d layer

@glencoe I am done with the implementation of a trainable conv1d module. To finish this issue, I need a vhdl template for a conv1d layer.

I will merge this PR now because we need the Conv1d base module in other projects, but we still need to implement the VHDL side of the conv1d


Evaluation does not follow the episode schedule in point_goal task / goal position not passed.

Hi,
I tried several runs of the same agent (unreal), in the attempt to reproduce the results in Table2 in the paper, namely PoingGoal for Matterport3D small and medium.
However, looking at the logs, filtered by "EPISODE", for the first episode, at test time, the goal is at different coordinates (* * was added manually ):
{
  'sceneId': 'mp3d.2t7WUuJeko7',
  'task': 'point_goal',
  'start': {
    'angle': 1.386,
    'position': [0.672, 0.551, 2.339],
    'cell': {
      'j': 39,
      'isValid': True,
      'i': 80,
      'id': 3707
    }
  },
  'goal': {
    'angle': 1.8403473282415732,

    **'position': [-4.813260249729765, 0.5735506993532181, 1.2931640217578368],**

    'room': 'R5',
    'cell': {
      'j': 29,
      'isValid': True,
      'i': 25,
      'id': 2722
    },
    'radius': 0.25
  },
  'shortestPath': {
    'distance': 7.601219330881972,
    'isValid': True,
    'doors': [],
    'rooms': [1, 5, 6]
  }
}

{
  'start': {
    'position': [0.672, 0.551, 2.339],
    'cell': {
      'id': 3707,
      'j': 39,
      'i': 80,
      'isValid': True
    },
    'angle': 1.386
  },
  'task': 'point_goal',
  'sceneId': 'mp3d.2t7WUuJeko7',
  'goal': {
    'radius': 0.25,

    **'position': [-1.235677195070037, 0.5514386199228466, -0.9918128308026164],**

    'cell': {
      'id': 619,
      'j': 6,
      'i': 61,
      'isValid': True
    },
    'room': 'R0',
    'angle': 0.08224559970336502
  },
  'shortestPath': {
    'distance': 4.262741699796953,
    'doors': [],
    'isValid': True,
    'rooms': [1]
  }
}

The goal coordinates are different for different runs, and also different from what the episode scheduler for test is providing:
{
  "pathNumDoors": 0,
  "pathNumRooms": 3,
  "episode_id": 10714,
  "level": 0,
  "pathDoorIds": "",
  "dist": 5.209,
  "pathDist": 6.36,
  "goal": {
    "position": [-4.473, 0.029, 1.72],
    "id": ""
  },
  "scene_id": "2t7WUuJeko7",
  "room_id": "R5",
  "start": {
    "position": [0.672, 0.551, 2.339],
    "angle": 1.386
  }
}

Looking in RoomSimulator.py, seems the problem is in L96-103
        if 'goal' in ep_settings:
            if self.params['task'] == 'room_goal':
                room_id = ep_settings['room_id']
                config['goal'] = {'roomIds': [room_id]}
            else:
                object_id = ep_settings['goal']['id']
                if object_id:
                    config['goal'] = {'objectIds': [object_id]}

Which doesn't handle the point_goal case.
If I try to set config['goal'] I get the simulator crash with the following stack trace:
 20:36:41,008 INFO b'set active level 0'
 20:36:41,015 ERROR b"Error fetching model-mp3d.2t7WUuJeko7-matterport-glb TypeError: Cannot read property 'position' of undefined"
 20:36:41,016 ERROR b'    at NavScene.getCellId (/research/minos_world_forks/minos/minos/server/node_modules/sstk/client/build/STK-core.bundle.js:101809:42)'
 20:36:41,016 ERROR b'    at /research/minos_world_forks/minos/minos/server/node_modules/sstk/client/build/STK-core.bundle.js:101988:21'
 20:36:41,016 ERROR b'    at arrayMap (/research/minos_world_forks/minos/minos/server/node_modules/sstk/client/build/STK-core.bundle.js:4651:24)'
 20:36:41,016 ERROR b'    at Function.map (/research/minos_world_forks/minos/minos/server/node_modules/sstk/client/build/STK-core.bundle.js:13568:15)'
 20:36:41,016 ERROR b'    at NavScene.computeShortestPath (/research/minos_world_forks/minos/minos/server/node_modules/sstk/client/build/STK-core.bundle.js:101987:24)'
 20:36:41,016 ERROR b'    at NavScene.reset (/research/minos_world_forks/minos/minos/server/node_modules/sstk/client/build/STK-core.bundle.js:101679:31)'
 20:36:41,016 ERROR b'    at SimState.reset (/research/minos_world_forks/minos/minos/server/node_modules/sstk/client/build/STK-core.bundle.js:111700:24)'
 20:36:41,016 ERROR b'    at Simulator.__setSceneState (/research/minos_world_forks/minos/minos/server/node_modules/sstk/client/build/STK-core.bundle.js:110007:15)'
 20:36:41,016 ERROR b'    at /research/minos_world_forks/minos/minos/server/node_modules/sstk/client/build/STK-core.bundle.js:110243:12'
 20:36:41,017 ERROR b'    at wrappedCallback (/research/minos_world_forks/minos/minos/server/node_modules/sstk/client/build/STK-core.bundle.js:30066:10)'
 20:36:41,017 ERROR b"Cannot load: TypeError: Cannot read property 'position' of undefined"

Any hints in how to fix this?
Thank you!

Hi @mcimpoi ,
Thank you for trying out MINOS and for reporting this bug.  We have committed a fix to the master branch which should correctly handle point_goal and make goal specification handling a bit more robust overall.  Please try running with the fix, and let us know if it the issue is resolved.

Thanks for letting us know about this - we have fixed override_args to default to {} in sim_config.py
I'm closing this issue now - please let us know if you encounter other issues.

Thanks for reporting this issue.  This should be now fixed.


It got me a bit at first. The trick is to fetch from the correct origin branch before updating and submitting a pull requests. This will automate most of that for you. https://desktop.github.com/


Tune aquavanjaram942 HHHS NN TN NT batched sizes

Below sizes tuned, overall 11% improvement on the weighted average for the tuned sizes.
GEMM Sizes updated in equality.

HHS NT
[178, 64, 6144, 178]
[64, 178, 6144, 178]
HHS NN
[64, 178, 6144, 178]
[178, 178, 6144, 64]
HHS TN
[64, 178, 6144, 178]

will update the hipBLAS-test results. it is currently running.

hipBLAS-test result
[----------] 1 test from ExtOpTest/ExtOpAMaxWithScaleUnsupportedDatatypeTest
[ RUN      ] ExtOpTest/ExtOpAMaxWithScaleUnsupportedDatatypeTest.amaxWithScaleFailureUnsupportedDatatype/0
[       OK ] ExtOpTest/ExtOpAMaxWithScaleUnsupportedDatatypeTest.amaxWithScaleFailureUnsupportedDatatype/0 (0 ms)
[----------] 1 test from ExtOpTest/ExtOpAMaxWithScaleUnsupportedDatatypeTest (0 ms total)
[----------] Global test environment tear-down
[==========] 48206 tests from 13 test suites ran. (2129186 ms total)
[  PASSED  ] 48206 tests.
hipBLASLt version: 1000
command line: ./hipblaslt-test

Please fix the typo in the title
HHHS -> HHS

Did you try MT192x64 for 178x64 and MT192x192 (or 192x64) for 178x178?

Did you try MT192x64 for 178x64 and MT192x192 (or 192x64) for 178x178?
Thank you, 192x64 worked and improved 10% in total weight time from previous run.


Modernize tests

Pytest keeps deprecating things, and we have a lot of warnings.  We should clean that up.

FTR we pass fine on pytest 4, but migrating to 5 looks like a fair bit of work.  The main sticking point is that they changed how conditional failures are defined / marked at the parameter level.

Punting this up to version 3 because pytest5 does not support python 2.7 or 3.4.

Fixed by #164


Zuhause Presence Lock: Home: false not working

I want to use the Home/Away-Switch in HomeKit but the following error appears every time I use the Switch.

HTTPError: Response code 422 (Unprocessable Entity)     at Request.<anonymous> (/homebridge/node_modules/homebridge-tado-platform/node_modules/got/dist/source/as-promise/index.js:117:42)     at processTicksAndRejections (internal/process/task_queues.js:93:5) {   code: undefined,   timings: {     start: ******,     socket: *****,     lookup: *****,     connect: *****,     secureConnect: *****,     upload: *****,     response: *****,     end: *****,     error: undefined,     abort: undefined,     phases: {       wait: 1,       dns: 1,       tcp: 39,       tls: 43,       request: 0,       firstByte: 5611,       download: 2,       total: 5697     }   } } [4/12/2021, 2:31:56 PM] [TadoPlatform] Zuhause: {}

My fault, setting Presence Lock -> Home to false doesnt work, instead I have to set Presence Lock -> Away to True.


[FEATURE] Use Linear History branch protection rule for release branches (2.x, 3.x, main, etc)

Is your feature request related to a problem?
At the moment release branches like 2.x allow for merge commits. This can lead to confusing history like this one:

the commits from derek-ho are included due to the merge commit but it looks like they were added in-between other features.
What solution would you like?
Enforce squash merges using branch protection rules on GitHub.
GitHub documentation is here.

Thanks for bringing this up! It is very easy to click Squash by mistake and mess up the commit history.
@anirudha Could you check if anything in Github setting for this? I don't have the permission.. I think probably only feature branch with well maintained commit history can be merged without squash.


driver not autostarting any more

Aggregate batteries was suddenly not starting automatically any more. I didn't make a venus updates or something (always 2.92), but now the link in /service didn't work any more, it just disappears. Seems that I got problems with the file system become read only. I found a hint here:
https://github.com/Louisvdw/dbus-serialbattery/issues/38
Seems, that you have to mount the filesystem rw to set the link. As soon I did it, it worked again.
The link command in rc.local is not enough, so I added a install script.
If you like I can add a pull request.

#!/bin/bash
set -x
#credits to https://github.com/Louisvdw/dbus-serialbattery

DRIVERNAME=dbus-aggregate-batteries

#handle read only mounts
sh /opt/victronenergy/swupdate-scripts/remount-rw.sh

#install
rm -rf /opt/victronenergy/service/$DRIVERNAME
rm -rf /opt/victronenergy/$DRIVERNAME
mkdir /opt/victronenergy/$DRIVERNAME
ln -s /data/$DRIVERNAME/service /opt/victronenergy/service/$DRIVERNAME

#restart if running
pkill -f "python .*/$DRIVERNAME.py"

# add install-script to rc.local to be ready for firmware update
filename=/data/rc.local
if [ ! -f $filename ]; then
    echo "#!/bin/bash" >> $filename
    chmod 755 $filename
fi
grep -qxF "sh /data/$DRIVERNAME/install.sh" $filename || echo "sh /data/$DRIVERNAME/install.sh" >> $filename

# also set link directly to get it started by svscan at install time
ln -s /data/$DRIVERNAME/service /service/$DRIVERNAME

I had never such a case. I had 2.92 and now I have 3.00, it starts without any issues. Would you like to try this version?
I'm not experienced with Linux. Louis explained me that /data is persistent some time ago. Thanks for your script. Let's keep it as an option, I would prefer to keep the tool as simple as possible as long as it works in most cases.

probably some kind of timing/race condition on startup. if rc.local is run before daemontools purges the /service folder, the link is gone, otherwise not. For me, the method with the installer is more universal and safer in a long-time view. (once my battery is fully completed I hopefully wont touch it for years. and my future self won't remeber all these quirks then) .
No problem for me if you want to keep the project simple. just close the issue and keep it as a reference for future users.
Thank you for your work.


Anyway to reverse the animation to reduce rather than increase (i.e. deplete the bar)?

I have seen users say you can set a negative number to change the direction from clockwise to anti-clockwise but that is not what I want. The starting point should still be the default point but I want the value to reduce from 100 to 0.
Is this possible?
It would be nice if you could add the start and end values like this:
from: { color: '#aaa', width: 3, value: 1 },
to: { color: '#333', width: 3, value: 0 },

Never mind, found that I can just do:
bar.set(1)
bar.animate(0);


Fix select form bug (#2)

Aims to resolve issue #33033
Select forms seem to be cutting off text, especially when the text is larger. The height of the select form has been increased, rather than being deleted, as in a previous pull request I made (PR #33075)
I played around with this, and changing the height seems to be the best solution. Padding, line height, font size, etc..., were some other things I tried.

I believe #34161 fixed this for us.


Update minimum Python version to 3.10.

JAX's policy for Python version support is outlined at https://jax.readthedocs.io/en/latest/deprecation.html. Spec-0 recommended dropping Python 3.9 support in October 2023; JAX maintains support for 9 months longer than this, which is July 2024.

We have a lot of from __future__ import annotations imports that are unnecessary after this change – should we remove them as well?

Yes, I have a couple more cleanups for future PRs.


restructure repo to be about training in general

About
It would be nice to have all the training resources compiled in one place, rather than having different repositories for each workshop.
To-do

[ ] put the current materials in a folder named github-intro
[ ] test if the slides still render properly
[ ] find out if the Zenodo-GitHub integration can work on the folder level
[ ] adjust the repo README to reflect the more general purpose
[ ] rename the repository

Stakeholders
Everyone involved in AIM RSF training. EZ is the main person responsible.

it'd be nice to have this done in time for the next Collab Cafe - one potential thing for people to work on is adding training reseources


Update the fix of the error 9013

After change the user name provided in the guest VM credentials to UPN format, we need to restart the service "Microsoft Azure VMWare Discovery service" in the appliance. Then the new discovery will success.

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

ID: 7ae98c62-5ab8-9d1a-5081-7208152799a7
Version Independent ID: 810d3ee7-4256-6add-9319-b964c0b13814
Content: Troubleshoot Azure Migrate appliance deployment and discovery - Azure Migrate
Content Source: articles/migrate/troubleshoot-appliance-discovery.md
Service: azure-migrate
GitHub Login: @musa-57
Microsoft Alias: hamusa

@GraceZhangM, thank you for reaching out. We are looking into this and would get back to you soon on this thread.

@GraceZhangM Thanks again for bringing this to our notice , i have raised a PR to reflect the feedback. Once the PR reviewed and approved through next week the document will be updated accordingly.
At this point it appears that there's no further edits or updates needed to the documentation. We will go ahead and close this issue, however if you have any further feedback please tag us in your reply and will be happy to reopen the thread and continue the conversation. Thank you


Allow moving of felt ops.

This change is

tests/e2e_test_data/libfuncs/felt252 line 47 at r3 (raw file):
Previously, orizi wrote…
this is supposed to check that only the "store" action actually performs the add.

do you want to disable optimizations in SmallE2ETestRunner?

crates/cairo-lang-lowering/src/optimizations/config.rs line 19 at r4 (raw file):
Previously, orizi wrote…
?

it is harder to document and I feel that this change will be reverted in the future.


Task scheduling command is incorrect on dashboard page and in documentation, needs more detail

Affected Version of Concrete CMS
9.x
Description
The documentation and Automation Settings dashboard displays the following command to set as a cron job:
* * * * * concrete/bin/concrete schedule:run >> /dev/null 2>&1
This doesn't appear to be the correct command, it needs to be:
* * * * * concrete/bin/concrete concrete:scheduler:run >> /dev/null 2>&1
But I also think this command is not specific enough, as cron jobs aren't run within the document root, meaning the concrete/bin/concrete path may not make sense.
How to reproduce
Running cron jobs as per the doco does not work.
Possible Solution
I would expect the command to look more like
* * * * *  /serverpathtoyourconcreteinstall/concrete/bin/concrete concrete:scheduler:run >> /dev/null 2>&1
This may also not work correctly on cPanel hosting, where the php binary needs to be specifically used in the command:
/usr/local/bin/php /serverpathtoyourconcreteinstall/concrete/bin/concrete concrete:scheduler:run >> /dev/null 2>&1

I don't think we can really put up documentation for all possible permutations/ways that you could run this command given the various environments. However, I do definitely agree that we should put a stubbed-out public path on the front of the command (and also of course put the proper fixed command in there)


Galrou patch 2 1

contains a readme that explains how to debug with docker in vscode IDE

Is this a dup of https://github.com/hasadna/anyway/pull/1527?


widget iconPath() incorrect (craft3 module)

HI
Craft CMS <IP_ADDRESS> (PRO)
When creating a Craft 3 module with widgets - the iconPath in the widget is missing the prefix 'modules', as the alias is set in /modules/{module_name/src/{module_name}.php  __construct() as:
Craft::setAlias('@modules/restmodule', $this->getBasePath());
The function iconPath() /modules/{module_name}/src/widgets/{widget_name).php is:
 return Craft::getAlias("@{module_name}/assetbundles/fibrewidget/dist/img/{widget_name}-icon.svg");
when it should be:
 return Craft::getAlias("@modules/{module_name}/assetbundles/fibrewidget/dist/img/{widget_name}-icon.svg");

Thanks, I'll get this fixed up.

Same error here in October, but a simple fix - thanks both!

I'm also still having this issue, doing the fix from @anchovy works a treat! 💯

Just had this same issue. Would be nice if this could be fixed in the pluginfactory :)
Thanks for the solution guys!

Fixed in https://github.com/nystudio107/generator-craftplugin/commit/00702811417fa47b7866858ed634480676dd0272


Donation Account: New Features

A user should be able to upload atleast 1 video to their Donation Account.
Should a user also be able to mention where to reach them(Twitter handle, TG ID, email id, Skype id, Whatsapp number) within their Donation Account? And thus correspondingly visible in the webview and the aggregator's webpage(Without the aggregator having to manually put it in?) (@antuz123 to confirm or remove point 2)
The Total donation being raised, by all who are fund raising, should be visible on the aggregator's webpage.
Ability to donate sats using fiat.
@ASN-BitHyve and @akshaytikle to work on sample template

Why do we have this issue if you have already broken them down? @ASN-BitHyve


Wrong stop time in ChuaCircuit

Reported by ottot on 17 Jun 2014 07:16 UTC
The example Modelica.Electrical.Analog.Examples.ChuaCircuit has
experiment(StopTime=1)

according to the documentation a more suitable stop time should be
experiment(StopTime=5e4)

Migrated-From: https://trac.modelica.org/Modelica/ticket/1519

Comment by beutlich on 17 Jun 2014 07:35 UTC
This is a duplicate of #1289.

Comment by majetta on 20 Jun 2014 06:35 UTC
correct StopTime=5e4 and Interval=1 added in 1bc6b06d3fb3d2643bf011ab2ec96ca8fa60d129, a63d48aa87a217c1482355931c3145bb734a6ab2

Modified by beutlich on 20 Jun 2014 06:50 UTC


New world storage: Group Storage

Should track the shared bank that group ironmen have.

https://github.com/runelite/plugin-hub/pull/2950


Template PR for moving MDC components to @angular/material

See the individual commit messages for the steps to take, and how I preformed them. You should be able to run the dev app and tests successfully after each commit.
When PR is ready, squash commits and give an appropriate message (w/ a breaking change clause), e.g. https://github.com/angular/components/pull/25082
To see the local edits needed in g3 to land this PR, see http://cl/457155286

closing since all components have been moved


Implement functions to register passes

Implements registration functions for

Flow
IREE
Shape
VM
VMLA

HAL is missing as the registration functions require additional arguments, e.g. of type ExecutableTargetOptions.


improve testcase stability (#4327)

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

Merged into branches iso4 in d4384d4f2edcfbaaf8af0324bf247150a051b9f0


Deal with null entries

As we have identified from the April and June crawl, there has always been sites with empty entries (No Data). . For the data for these two months, there are around 900+ empty entries.
I have been brainstorming about what to do with these entries that have been present for the past crawls as well.
I was initially thinking of including it in the error page but I'm not sure if that would be the best move, given that the null entries for one site could be caused by a different reason than another site with null entries (ie. it is not a definite and given human check error, Insecure Certificate Error or Web Driver Error).

Right now, I am thinking of just showing these empty results in our data analysis, maybe creating a column for creating figures of the percentage of sites in our data set that give empty entries for the month's crawl?

Right now, I am thinking of just showing these empty results in our data analysis, maybe creating a column for creating figures of the percentage of sites in our data set that give empty entries for the month's crawl?

Yes, that works! We can deal with the null entries at the data analysis step. We do not need to create figures for the null failures, but we should be able to say x% of a given crawl had all null values, just like we are able to say that y% of sites had a certain error.
For both null values as well as any errors, we should not include these sites in any analysis statistics or figures we present as those do not have meaning for the analysis.
Do you have a thought what causes the null entries? If we do a second attempt, would that lead to fewer null entries (i.e., apply the same approach as for errors)?

Yes, that works! We can deal with the null entries at the data analysis step. We do not need to create figures for the null failures, but we should be able to say x% of a given crawl had all null values, just like we are able to say that y% of sites had a certain error.

Got it! I'll be working on creating the code to do the data analytics for the percentage of null error.

Do you have a thought what causes the null entries? If we do a second attempt, would that lead to fewer null entries (i.e., apply the same approach as for errors)?

Based on my manual observation of the list of the sites with null entries, I don't think there's a fixed way to generalize one specific cause for the null entries. However, as discussed in the previous issue, we concluded that yelp.com was a VPN issue (potentially because we have been accessing the site using the same LA VPN IP address) because when I did another crawl after June crawl with the same VPN it still failed but succeeded when I changed to another LA VPN with different IP address.
While this is the case for yelp, we can't say for sure that the cause for null entries is the same for all the other null sites. Nevertheless, looking at the null entries that have been consistently present in the previous crawls, especially some of the big names like meta.com, apple.com, I suspect that the cause for the null entries is something along the same line -- that is they recognize or block the VPN IP address. Although it is curious that they just give a blank page instead of an explicit 'Access Denied' page, as discussed in issue 51
Since I have successfully collected the sites that gave empty entries in June (which is a slightly shorter list compared to the April list), I will also try to do another crawl on just this list of sites that gave null entries as I've only tried for yelp last time to troubleshoot what was causing the change to null entries. Since I tried yelp with a different VPN LA IP address last time to check if my hypothesis was true, I will also be following that methodology for the re-crawl today.

Sounds good!
We do not necessarily need to figure out the reason for the null entries for sure. But it is nice for the paper to say that the VPN IP address blocking is the reason for at least some.
As we discussed, maybe you find that a different LA VPN address for the next crawl results in fewer null entries. We may also update the crawl protocol slightly by doing a second crawl for all null entries (just like we do for other errors) with a different LA VPN.

I finished the re-crawl specifically for the sites that output null values for all and manually looked through the result.
Some important observations:

While doing the crawl, I realized that not all these sites did not necessary give a blank page like yelp.com during the original june crawl (eg. the crawl was able to access and visit apple.com); some sites also gave a login page or even an explicit error page

From this my first conclusion is that: not all of the sites that gave null error in June crawl (and I suspect the same for April crawl) is caused by VPN error as my first hypothesis
After the crawl finished, I manually checked the analysis.json and all of them have the same null values with the exceptions of these 4 sites. However, I'm not sure if these exceptions give meaningful information so I would love to clarify on this.

The only notable output that is certain is just yelp.com (which has been confirmed in previous issue in a crawl just for yelp.com

and also in this re-crawl)
I also manually looked through the error-logging.json and I found something interesting: some of these sites that were previously flagged with errors as just null have their errors explicitly identified (ie.  "WebDriverError: Reached Error Page", "HumanCheckError", "InsecureCertificateError", "TimeoutError"). So, this could give explanation to the previous question of what causing these null entries. It might be the case that in the previous crawl, the site has yet to successfully redirect to an error page, or the login page or humancheck error within the timeout period of the crawler. In other words, the null entries is a good sign of the site to be error; whether the crawl identifies exactly what the error is within the timeout period is arbitrary. This is because (in reference to my second observation), the data itself does not change (ie. they still have null entries), the only difference is just that the exact reason is identified in the new re-crawl.

I doublechecked this conclusion by looking through our result from previous crawls for sites with specific errors identified like HumanCheckError and all of their entries also give null outputs; only the error column is filled with the identified errors.

Yes, that works! We can deal with the null entries at the data analysis step. We do not need to create figures for the null failures, but we should be able to say x% of a given crawl had all null values, just like we are able to say that y% of sites had a certain error.

So, regarding this, I propose that we can just remove all the null entries with the error identified and not identified for the analysis (ie. sites that have null entries throughout and those that have null entries throughout other than the error column being filled with the specific error identified).
For examples, sites that give these kind of outputs are also removed, not just those that have completely null, as their only difference is the error being explicitly identified:

https://highdefdigest.com
6226
added
highdefdigest.com
1
null
null
null
null
null
null
null
null
null
{"firstParty":{},"thirdParty":{"tracking_ad":["bat.bing.com"]}}
null
null
null
null
null
null
None
None
neither
HumanCheckError
None
30139
null
null
null
null
null
null
nan
nan
null

We do not necessarily need to figure out the reason for the null entries for sure. But it is nice for the paper to say that the VPN IP address blocking is the reason for at least some.

I think the cause for the null entries is an amalgamation of possible reasons. For example, yelp.com seems to be an explicit VPN issue because of the experiment that I did a few weeks ago and reconfirmed with this crawl (went from blank page to be able to access it after changing the IP address). There are other forms of such VPN error. For instance, "Access Denied" could also be a problem of VPN IP address being blocked.

However, there are also other causes to the error like "WebDriverError: Reached Error Page", "HumanCheckError", "InsecureCertificateError", "TimeoutError" that were identified for these sites in the re-crawl.

Outcome: We wanted to explicitly identify the sites with only null entries. We noticed that these null entries are present in the previous crawls with roughly similar number of sites.
We found that these null entries is similar to an error. After doing a re-crawl of sites with previously null entries, we found that these null entries indicate a precursor to an error; in the re-crawl, our crawl identified and flagged some of these sites as WebDriverError: Reached Error Page", "HumanCheckError", "InsecureCertificateError", "TimeoutError" that may have caused our ability to access these sites' data and thus returned null entries.
We also found for some of the other sites, it could be the case of VPN error. For instance, after doing the re-crawl with a different VPN IP address, we managed to get data for the previously empty entries for yelp.com. At the same time, we also noticed sites that blocked access because our VPN IP address is blocked.

Well said, @franciscawijaya!
For the future we will:

Use a different VPN LA address than the one that possibly caused yelp to have all null values
Add some code in the Colab to calculate the percentage of sites with all null values
Find for which figures that @katehausladen created, if any, we need to take out all null values and/or error sites

(If any of these warrant more discussion, feel free to open a new issue. But it is also OK to address these points here if the answers are straightforward.)

I have added the code in the Colab to calculate the percentage of sites with all null values and have also made sure the figures for monthly data analysis did not use any of the null values and/or error sites for their calculations. (For June, these null values and/or error sites made up 8.47% of our crawl list of 11708 sites).
A note: in my calculation of the percentage of sites with all null values, I include both the sites with empty entries that we have been discussing (all null values but gpc was sent and status was added) (1) and sites that also have null values due to an explicit error (gpc was not sent from the start and status was 'not added') (2)
Examples for these two different natures of null values for reference:
(1)

Site URL
site_id
status
domain
sent_gpc
uspapi_before_gpc
uspapi_after_gpc
usp_cookies_before_gpc
usp_cookies_after_gpc
OptanonConsent_before_gpc
OptanonConsent_after_gpc
gpp_before_gpc
gpp_after_gpc
urlClassification
OneTrustWPCCPAGoogleOptOut_before_gpc_x
OneTrustWPCCPAGoogleOptOut_after_gpc_x
OTGPPConsent_before_gpc_x
OTGPPConsent_after_gpc_x
usps_before_gpc
usps_after_gpc
decoded_gpp_before_gpc
decoded_gpp_after_gpc
USPS implementation
error
Well-known
Tranco
OneTrustWPCCPAGoogleOptOut_before_gpc_y
OneTrustWPCCPAGoogleOptOut_after_gpc_y
OTGPPConsent_before_gpc_y
OTGPPConsent_after_gpc_y
third_party_count
third_party_urls
unique_ad_networks
num_unique_ad_networks

https://apple.com
18
added
apple.com
1
null
null
null
null
null
null
null
null
{"firstParty":{},"thirdParty":{}}
null
null
null
null
null
null
None
None
neither
null
None
42
null
null
null
null
0
{}
[]
0

(2)

https://sprint.com
84
not added
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
None
None
null
WebDriverError: Reached Error Page, singleTimeoutError
None
152
null
null
null
null
null
nan
nan
null

--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--

I also counted these two types of null values/error sites in my percentage calculation and hence excluded them from the figures.
Next: I'll be working on updating the code for the Crawl_Data_Over_Time (though this might take more time as I'm still struggling to fully grasp the entirety of the Colab).

As we discussed today, at this point this issue is purely one for the data processing after the crawl. @franciscawijaya mentioned that the Crawl_Data_Over_Time still needs to be updated. Both @franciscawijaya and @natelevinson10 will work on adapting this and the other scripts as necessary.

@eakubilo will take the lead on this issue, explore it a bit, more and report findings.


TextField loses caps lock when edited (Android)

On an Android device, while editing text in a TextField, if the text is modified by a Paste or by a TextInputFormatter, the keyboard "resets" and loses the caps lock if it was set.
This doesn't happen on native Android text input.
On iOS, the Flutter TextField doesn't seem to have this issue.
It is particularly problematic with TextInputFormatters expecting a series of uppercase characters and modifying them as they come, the caps lock keeps turning off, forcing the user to put it back regularly.
Steps to Reproduce
Paste text in a TextField while caps lock is on, on an Android device.
Or add a input formatter that modifies the input on a TextField and try to use the caps lock.
class DummyFormatter extends TextInputFormatter {
  @override
  TextEditingValue formatEditUpdate(
      TextEditingValue oldValue, TextEditingValue newValue) {

    int selectionIndexFromTheRight =
        newValue.text.length - newValue.selection.end;
    String newString = "0";

    return newValue.copyWith(
        text: newString,
        selection: TextSelection.collapsed(offset: newString.length - selectionIndexFromTheRight),
        composing: newValue.composing);
  }
}

Logs
flutter doctor
[✓] Flutter (Channel beta, v1.3.8, on Mac OS X 10.14.3 18D109, locale en-JP)
    • Flutter version 1.3.8 at /Users/guillaume/flutter
    • Framework revision e5b1ed7a7f (3 weeks ago), 2019-03-06 14:23:37 -0800
    • Engine revision f4951df193
    • Dart version 2.2.1 (build 2.2.1-dev.0.0 571ea80e11)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/guillaume/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.1, Build version 10B61
    • ios-deploy 1.9.4
    • CocoaPods version 1.6.0

[✓] Android Studio (version 3.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 33.4.1
    • Dart plugin version 182.5215
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[✓] VS Code (version 1.32.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.24.0

[✓] Connected device (2 available)
    • Pixel 3  • 895X05QV9  • android-arm64 • Android 9 (API 28)
    • Moto G 5 • ZY3229B59V • android-arm   • Android 8.1.0 (API 27)

• No issues found!

Did you ever find a resolution for this?
I have the same issue where I'm using a custom TextInputFormatter. Part of the input is regular alphabetic characters but latter part is numeric. The keyboard flops back to the default everything a formatting action takes place.

@haarts no, no solution yet.

Having the Same Issue trying to use a TextInputFormatter on an Iban Form Field. (Like @haarts )
Even if you switch the keyboard style (alphabetic to special characters) as soon as the whitespace is added, the keyboard selection is back to alphabetic.

Hi @haarts
Testing on latest dev channel on Android, caps lock doesn't get lost while using  LengthLimitingTextInputFormatter

Code Sample
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Material App Bar'),
        ),
        body: Container(
          child: TextField(
            inputFormatters: [
              LengthLimitingTextInputFormatter(12),
            ],
          ),
        ),
      ),
    );
  }
}

class DummyFormatter extends TextInputFormatter {
  @override
  TextEditingValue formatEditUpdate(
      TextEditingValue oldValue, TextEditingValue newValue) {
    int selectionIndexFromTheRight =
        newValue.text.length - newValue.selection.end;
    String newString = "0";

    return newValue.copyWith(
        text: newString,
        selection: TextSelection.collapsed(
            offset: newString.length - selectionIndexFromTheRight),
        composing: newValue.composing);
  }
}

flutter doctor -v
[✓] Flutter (Channel dev, v1.18.0-8.0.pre, on Mac OS X 10.15.4 19E287, locale
    en-GB)
    • Flutter version 1.18.0-8.0.pre at /Users/taha/Code/flutter_dev
    • Framework revision e0c63cd35e (12 days ago), 2020-04-23 22:29:01 -0400
    • Engine revision d2ec21221e
    • Dart version 2.9.0 (build 2.9.0-3.0.dev b0d35855d8)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/taha/Code/sdk
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/taha/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.4.1, Build version 11E503a
    • CocoaPods version 1.9.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build
      1.8.0_212-release-1586-b4-5784211)

[✓] VS Code (version 1.44.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.10.1

[✓] Connected device (5 available)
    • SM M305F      • 32003c30dc19668f          • android-arm64  • Android 10
      (API 29)
    • Taha’s iPhone • 00008020-001059882212002E • ios            • iOS 13.4.1
    • macOS         • macOS                     • darwin-x64     • Mac OS X
      10.15.4 19E287
    • Web Server    • web-server                • web-javascript • Flutter Tools
    • Chrome        • chrome                    • web-javascript • Google Chrome
      81.0.4044.129

• No issues found!

if you're still experiencing this problem, please create a new issue and provide the information
required in the template.
Thank you

I can confirm that this is fixed, thx.


Frequency?

Hello, thanks for making a buttsbot for Discord! Ever since it got banned on Twitch, several communities I mod in have been missing the butts.
Just one question: in the Discord it really doesn't seem to go off close to ever. Is there a way we can tweak the frequency of it ourselves once it's been added? If not, could there be a fork of it that has a more frequently active buttsbot?
Thank you again!

Yep c:
You should be able to use @buttsbot frequency [number] in the same way it was used on Twitch

If you use @buttsbot help it should give you a list of commands to customize buttsbot for your server

Thank you!
I did try @buttsbot help initially but it didn’t reply. I found out you have to do it with the full Discord username, not just @buttsbot. (@buttsbot#xxxx)
That said, I tried @buttsbot frequency [number] and am unsure if it worked. I tried it with and without the square brackets, but neither gave any sort of confirmation. Maybe that’s intended, but I’m not sure if it worked.
Thanks again!

You didn't get one of these?

That was it, I'm a mod in the server but I had to get the admin to do it directly. Thank you!


Django 1.9: missing template source on SQL panel

How it looks with  Django 1.8:

With Django 1.9 template source is missing:

Both 1.9.a1 and 1.9.b1 affected.

The debug toolbar does some rather awful things with Django's internals, which changed in Django 1.9. Perhaps @prestontimmons could point us in the right direction?

The error is in debug_toolbar.utils.get_template_info(). It finds the template instance in the stack frame, then calls get_template_context(). This fails since it uses the old origin.reload() API.
Can get_template_info() access the exception instead, maybe with sys.exc_info()? The exception should be annotated with the necessary debug information:
https://docs.djangoproject.com/en/dev/topics/templates/#contextual-line-information
The failing call happens in debug_toolbar.panels.sql.tracking. It looks like debug_toolbar.panels.cache has the same problem, also.

Ok, prepared PR. @aaugustin do we need backward compatibility with Django < 1.9 ?

The toolbar must work with any supported version of Django, currently this starts at 1.8.

@aaugustin ok, updated PR. Please take a look.

@aaugustin I already updated PR - please take a look.

Thanks for your contribution.
I'm not maintaining the toolbar anymore. It's unlikely that I will review or commit non-trivial patches in the foreseeable future.
PS: perhaps https://github.com/django/django/pull/5984 is related?

I'm not maintaining the toolbar anymore. It's unlikely that I will review or commit non-trivial patches in the foreseeable future.

Could you please let me know about active project maintainers?

PS: perhaps django/django#5984 is related?

Yes, but I need to re-check if this patch completely fixes the issue.
Thanks for the feedback.

Unfortunately, I don't have an answer to that question.

I'm having this exact issue.  New to GIT and django-debug-toolbar.  Is there a way to get the toolbar with this commit/patch so the template inspection works?

This commit is in the latest version of DDT on pip. It was included in v1.4. Try updating your version in your virtual environment.

Yep, that was it. Thanks!


Let the rule 'invalid-char-in-name' define allowed characters

When writing keywords in one particular project, one usually wants to use only one natural language for their names. (At least Indo-European) languages are written using just a few dozens characters each. One usually wants to allow keyword names to contain digits and several non-alphanumerical characters (space, underscore, hyphen....) as well -- and that's all. In other words, from thousands of possible characters, only several dozens are usually allowed to be used.
This is why I suggest adding one more option to the rule 'invalid-char-in-name'. Then a set of allowed characters would be listed in the rule. For brevity, I suggest implementing notation known from regexps where possible values of a character (given in brackets) could be given just as the first and the last item of a lists separated by hyphen. Example for Polish: :D one could probably have something like this line in their .robocop file:
-c invalid-char-in-name:allowed_chars:A-Za-z0-9ĄąĆćĘęŁłŃńÓóŚśŹźŻż _-
I have no idea how should be solved when defines both invalid and allowed chars for the rule. (Probably the same way how the situation is solved now when someone sets the same option of a rule twice with different values.)

It can be certainly implemented. If both invalid and allowed chars are defined then only allowed chars would be used. We could use both but it would create confusion and invalid chars are not needed when using allowed.
Configuring space would be problematic from cli but one could use \s or octal value of space.

@MoreFamed I still can't find the scenario when it would be useful. Can you give us some possible cases that you think of? In my opinion, invalid characters is enough, no need to have both invalid and allowed, because they will be used interchangeably.

Sorry for the delay. I want keyword names in our files to contain only these characters:
a-zA-Z0-9ÁáÉéĚěÍíÓóÚúÝýŮůŘřŤťŠšĎďŽžČčŇň _-, so I'd like to have some way in Robocop to check this.
@mnojek, how could I configure the current rule invalid-char-in-name to do this using list of invalid chars? (Even if we consider just chars that can be typed on Czech keyboard in a direct way, there is no less than 150 of them.)

I see now. That can be achieved. We need to decide if these parameters for the rule should be mutually excluded or not because we don't have such feature now. We'll get to you after we discuss it.


Add more translations to the website

Just add a language to locales/languages.json, run npm run locale and a new file locales/{language}.po will be created. Translate the file with an editor like POEdit and submit a pull request.

[x] es (#218)
[x] fr (#218)
[x] it (#226)
[x] zh-CN (#235)
[x] zh-HK (#239)
[x] zh-TW (#239)
[x] pt (#260)
[x] jp (#271)
[ ] ru
[ ] de
[ ] ...

Would love to contribute but I have a few issues I quickly mention here (I can open an issue if that is wanted).
The POEditor is reporting duplicate Strings it removed as it violates the PO format or something...
Next, was there a <language>.mo file created by the POEditor.
Finally is there this huge error I receive with GitHub Desktop, when I try to push my changes on a new branch to the remote repository: https://hastebin.com/feyalavile.js
Is ther actually any particular reason why POEdit is used and not a system with a site such as Crowdin?

The POEditor is reporting duplicate Strings it removed as it violates the PO format or something...

We could update the template to what POEditor expected. PRs welcome.

Next, was there a <language>.mo file created by the POEditor.

Please check your editor settings before use.

Finally is there this huge error I receive with GitHub Desktop, when I try to push my changes on a new branch to the remote repository: hastebin.com/feyalavile.js

Looks like this error is not related to our project.

Is there actually any particular reason why POEdit is used and not a system with a site such as Crowdin?

We have very few contents that require translation. The Gettext PO Files is enough to use. The Crowdin might not be necessary.

Looks like this error is not related to our project.

Weirdly enough does it only happen with this particular project. :/

@Andre601 See https://github.com/desktop/desktop/issues/12562.
I'm not going to discuss this error here due to is not related to our project.

Closing as have been added more translations.


pagination

Does anyone knows how to paginate results from a loop ? Example: when having a lot of blog posts.
I'm surprised no one asked about this before.
I guess it would mean passing page number through url but I couldn't find any way to do it.

Are you using Stacey 2.3 or 3?

Stacey 3


[PE-D][Tester E] Missing proposed feature in DG

Missing explanation for proposed feature in DG  on page 10.

Labels: severity.Low type.DocumentationBug
original: verakohh/ped#11

Tweak DG


Implement pandas lookup for detailed, human-readable name family info

Mostly done. Should also include a human-readable representation of name families as a column.

Implementation of query_namefam_table() completes this.


[Technical] Rationalised test code to created fake NuGet packages

No product changes.
Created a new RemoteRepoBuilder helper class to consolidate the unit test code that creates dummy NuGet packages.

LGTM


RFE: Seamless track transition

Would it possible to (optionally) eliminate the tiny gap between subsequent tracks? This would be especially nice for classical music and concept albums that are meant to be listened to without pauses between tracks.

Gapless playback should be possible with rodio's Sink type, as the next source can be appended in advance. The accounting to keep track of what's currently playing will be a little more complex, but I agree that this should be implemented in youtui

This will be added to the roadmap as part of #151

I have partially implemented this in #151. Songs will be queued up on the player ahead of time, which should significantly reduce the gap, but not eliminate it in all cases. I believe complete gapless playback is now blocked, as symphonia does not support gapless for AAC format (which is what we get from YTM). https://docs.rs/symphonia/latest/symphonia/


Add CloudApp v4.2.1

If there’s a checkbox you can’t complete for any reason, that's okay, just explain in detail why you weren’t able to do so.
After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if adding a new cask:

[x] Named the cask according to the token reference.
[x] brew cask install {{cask_file}} worked successfully.
[x] brew cask uninstall {{cask_file}} worked successfully.
[x] Checked there are no open pull requests for the same cask.
[x] Checked the cask was not already refused in closed issues.
[x] Checked the cask is submitted to the correct repo.

When you download from https://www.getcloudapp.com you get version 4.2.1.
However, as soon as you install you're prompted to update to 4.2.2 – even so, because it's the officially downloadable version I believe this belongs in stable.

Already available.

Sorry about that. It's cause I did brew cask search cloudapp and got nothing – we should probably have an alias or rename the recipe to cloudapp? 🙃

we should probably have an alias or rename the recipe to cloudapp?

No. Token reference.

You misunderstand – the name of the product (and the company) is literally
CloudApp – not Cloud. I don't think the intention of that part of the Token
reference is to remove App from CloudApp (or WhatsApp for that matter), but
rather remove app from generic names like "Wireless Transfer App.app" or
superfluous usage like "PomoDoneApp.app"
On Thu, Apr 20, 2017 at 2:37 PM, Vítor Galvão<EMAIL_ADDRESS>wrote:

we should probably have an alias or rename the recipe to cloudapp?
No. Token reference
https://github.com/caskroom/homebrew-cask/blob/master/doc/cask_language_reference/token_reference.md
.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/caskroom/homebrew-cask/pull/32674#issuecomment-295721063,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAllYPqaVQopqcCF1zaCsFv9j3L5SMe_ks5rx1FzgaJpZM4NC6bX
.

You misunderstand – the name of the product (and the company) is literally CloudApp – not Cloud.

Yes, I know. I’m familiar with the app.

I don't think the intention of that part of the Token reference

I wrote most of the token reference, and the parts I didn’t write had my input, so I’m pretty sure I know its intentions.
However, having said that, I do concede this one has already caused an inordinate amount of confusion, so I proposed we make it an exception. Will do so shortly, with a note.

Sorry for being a bit stubborn – just trying to make it easier for the next "homebrewer" stumbling on the same problem 😊  Would it make sense to expand the brew cask search to also search the name of the recipe? (I would be happy to make a PR)
Thank you @vitorgalvao!

Ok, I can see that there's already some work done on that (#17323) – ignore that.
Once again – thank you for the great work! 👍

Would it make sense to expand the brew cask search to also search the name of the recipe? (I would be happy to make a PR)

It’s an actively desirable feature. Please do!

Ok, I can see that there's already some work done on that (#17323)

That work is from 2014. Much/most of it is no longer applicable with the current codebase. Feel free to work on it.


added a question on variables undefined and null

@viswanathamsantosh  good question. thanks! I will merge on October 1 so that you get credit for 'hacktoberfest' - if you make 4 pull request you can get a shirt and other things.


update all placeholder links to working links

This covers index.html and 41framework.md and includes links to the glossary, MAP, etc. [Add caveat text for glossary that indicates it's a working draft]

Resolved by commit 2acece30cde09e7de9794c213ffb5c1b49cb3def


Remove backslash conversion from asset manager paths

Removes the asset backslash replacement for more predictable asset paths (see #6554 for discussion and rationale).

While Windows uses backslashes for paths, I don't think I've run into a situation on Windows where forward slashes instead of backslashes did not work. I just always use forward slash and it works on Windows and other OSes. When reading files on Windows backslashes are given by default and sometimes need replacing.
For AssetManager I think it makes sense that the path you specify when loading an asset is also the path that finds that loaded asset. The current replacing of backslashes with forward slashes prevents that. I haven't personally had a problem with that since I either don't get my asset paths from the filesystem or I replace backslash with forward slash in app code.
Also AssetManager shouldn't assume that the "path" is a file path, rather it is more like an "asset ID" which happens to often be a file path.
Given those reasons I think removing the backslash-to-forward-slash replacement in AssetManager makes sense. Once it no longer has such surprising behavior, I don't even think we need to document it: you load an asset with a path and you use the same path to find it later. Any existing app code that relies on the replace will break. Hopefully that breakage would be pretty obvious.
Let's give some time to see if anyone is against merging.

@NathanSweet still keen to get this in for the sake of clarity; it has been a while with no objections.


Bot is not working as expected.

I am developing one chat bot using Microsoft Bot Framework in NodeJs. Most of the time it works perfectly as expected. But sometimes when I am communicating with the bot, I'm not getting the response immediately. After entering the second question it is responding both the questions continuously. Help me to fix this issue. Should I do something on the server side?

Hi @rehtinavelmoorthy, which channel are you using?

If you're using web chat, we have an open bug that should be fixed sometime in the upcoming week.

Yes. I am using web chat and thanks for the info.

Kindly update once the issue has been fixed.
Thanks!

Is this issue got any updates for fixes?

Yes, the fix was pushed out yesterday. Please force-reload the control and try again -- can you let me know if you still see the issue?

Fix should be out, closing this issue. If you're still experiencing the problem, please reopen. Thanks!


tests don't work when run without git repository

When packaging software for Fedora, we run tests in an unpacked archive without initialized git repository for the codebase because we are testing the installed version. Would it make sense to make the tests compatible with this way of running them?
Maybe the tests can initialize their own repositories in a tmpdir or something like that.
The current log I have is:
python -m pytest
===================================== test session starts =====================================
platform linux -- Python 3.10.7, pytest-7.1.3, pluggy-1.0.0
rootdir: /home/lbalhar/Software/databooks
collected 118 items

tests/test_affirm.py ......................                                             [ 18%]
tests/test_cli.py ..........FF.FFF.F.F.FF                                               [ 38%]
tests/test_common.py ..                                                                 [ 39%]
tests/test_conflicts.py .........                                                       [ 47%]
tests/test_git_utils.py F.                                                              [ 49%]
tests/test_metadata.py ..........                                                       [ 57%]
tests/test_recipes.py ...............                                                   [ 70%]
tests/test_tui.py ..................                                                    [ 85%]
tests/test_data_models/test_base.py .                                                   [ 86%]
tests/test_data_models/test_notebook.py ................                                [100%]

========================================== FAILURES ===========================================
__________________________________________ test_meta __________________________________________

tmpdir = local('/tmp/pytest-of-lbalhar/pytest-1/test_meta0')

    def test_meta(tmpdir: LocalPath) -> None:
        """Remove notebook metadata."""
        read_path = tmpdir.mkdir("notebooks") / "test_meta_nb.ipynb"  # type: ignore
        TestJupyterNotebook().jupyter_notebook.write(read_path)

        nb_read = JupyterNotebook.parse_file(path=read_path)
        result = runner.invoke(app, ["meta", str(read_path), "--yes"])
        nb_write = JupyterNotebook.parse_file(path=read_path)

>       assert result.exit_code == 0
E       assert 1 == 0
E        +  where 1 = <Result InvalidGitRepositoryError()>.exit_code

tests/test_cli.py:50: AssertionError
______________________________________ test_meta__check _______________________________________

tmpdir = local('/tmp/pytest-of-lbalhar/pytest-1/test_meta__check0')
caplog = <_pytest.logging.LogCaptureFixture object at 0x7fca4a63baf0>

    def test_meta__check(tmpdir: LocalPath, caplog: LogCaptureFixture) -> None:
        """Report on existing notebook metadata (both when it is and isn't present)."""
        caplog.set_level(logging.INFO)

        read_path = tmpdir.mkdir("notebooks") / "test_meta_nb.ipynb"  # type: ignore
        TestJupyterNotebook().jupyter_notebook.write(read_path)

        nb_read = JupyterNotebook.parse_file(path=read_path)
        result = runner.invoke(app, ["meta", str(read_path), "--check"])
        nb_write = JupyterNotebook.parse_file(path=read_path)

        logs = list(caplog.records)
        assert result.exit_code == 1
>       assert len(logs) == 1
E       assert 0 == 1
E        +  where 0 = len([])

tests/test_cli.py:83: AssertionError
______________________________________ test_meta__script ______________________________________

tmpdir = local('/tmp/pytest-of-lbalhar/pytest-1/test_meta__script0')

    def test_meta__script(tmpdir: LocalPath) -> None:
        """Raise `typer.BadParameter` when passing a script instead of a notebook."""
        py_path = tmpdir.mkdir("files") / "a_script.py"  # type: ignore
        py_path.write_text("# some python code", encoding="utf-8")

        result = runner.invoke(app, ["meta", str(py_path)])
>       assert result.exit_code == 2
E       assert 1 == 2
E        +  where 1 = <Result InvalidGitRepositoryError()>.exit_code

tests/test_cli.py:139: AssertionError
____________________________________ test_meta__no_confirm ____________________________________

tmpdir = local('/tmp/pytest-of-lbalhar/pytest-1/test_meta__no_confirm0')

    def test_meta__no_confirm(tmpdir: LocalPath) -> None:
        """Don't make any changes without confirmation to overwrite files (prompt)."""
        nb_path = tmpdir.mkdir("notebooks") / "test_meta_nb.ipynb"  # type: ignore
        TestJupyterNotebook().jupyter_notebook.write(nb_path)

        result = runner.invoke(app, ["meta", str(nb_path)])

        assert result.exit_code == 1
        assert JupyterNotebook.parse_file(nb_path) == TestJupyterNotebook().jupyter_notebook
>       assert result.output == (
            "1 files will be overwritten (no prefix nor suffix was passed)."
            " Continue? [y/n]: \nAborted!\n"
        )
E       AssertionError: assert '' == '1 files will... \nAborted!\n'
E         - 1 files will be overwritten (no prefix nor suffix was passed). Continue? [y/n]:
E         - Aborted!

tests/test_cli.py:155: AssertionError
_____________________________________ test_meta__confirm ______________________________________

tmpdir = local('/tmp/pytest-of-lbalhar/pytest-1/test_meta__confirm0')

    def test_meta__confirm(tmpdir: LocalPath) -> None:
        """Make changes when confirming overwrite via the prompt."""
        nb_path = tmpdir.mkdir("notebooks") / "test_meta_nb.ipynb"  # type: ignore
        TestJupyterNotebook().jupyter_notebook.write(nb_path)

        result = runner.invoke(app, ["meta", str(nb_path)], input="y")

>       assert result.exit_code == 0
E       assert 1 == 0
E        +  where 1 = <Result InvalidGitRepositoryError()>.exit_code

tests/test_cli.py:168: AssertionError
_________________________________________ test_assert _________________________________________

caplog = <_pytest.logging.LogCaptureFixture object at 0x7fca4a66dff0>

    def test_assert(caplog: LogCaptureFixture) -> None:
        """Assert that notebook has sequential and increasing cell execution."""
        caplog.set_level(logging.INFO)

        exprs = (
            "[c.execution_count for c in exec_cells] == list(range(1, len(exec_cells) + 1))"
        )
        recipe = "seq-increase"
        with resources.path("tests.files", "demo.ipynb") as nb_path:
            result = runner.invoke(
                app, ["assert", str(nb_path), "--expr", exprs, "--recipe", recipe]
            )

        logs = list(caplog.records)
>       assert result.exit_code == 0
E       assert 1 == 0
E        +  where 1 = <Result InvalidGitRepositoryError()>.exit_code

tests/test_cli.py:203: AssertionError
__________________________________________ test_fix ___________________________________________

tmpdir = local('/tmp/pytest-of-lbalhar/pytest-1/test_fix0')

    def test_fix(tmpdir: LocalPath) -> None:
        """Fix notebook conflicts."""

FAILED tests/test_cli.py::test_meta__confirm - assert 1 == 0
FAILED tests/test_cli.py::test_assert - assert 1 == 0
FAILED tests/test_cli.py::test_fix - json.decoder.JSONDecodeError: Expecting value: line 1 c...
FAILED tests/test_cli.py::test_show - assert 1 == 0
FAILED tests/test_cli.py::test_show_no_multiple - assert 1 == 0
FAILED tests/test_git_utils.py::test_get_repo - git.exc.InvalidGitRepositoryError
=============================== 10 failed, 108 passed in 0.60s ================================

I think we should discuss this. For operations like meta, there is no need to look for git repository. If I run databooks meta something.ipynb without a git repository, I get:
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/lbalhar/Software/databooks/databooks/__main__.py", line 4, in <module>
    app(prog_name="databooks")
  File "/home/lbalhar/.virtualenvs/databooks/lib/python3.11/site-packages/typer/main.py", line 214, in __call__
    return get_command(self)(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lbalhar/.virtualenvs/databooks/lib/python3.11/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lbalhar/.virtualenvs/databooks/lib/python3.11/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/lbalhar/.virtualenvs/databooks/lib/python3.11/site-packages/click/core.py", line 1655, in invoke
    sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lbalhar/.virtualenvs/databooks/lib/python3.11/site-packages/click/core.py", line 920, in make_context
    self.parse_args(ctx, args)
  File "/home/lbalhar/.virtualenvs/databooks/lib/python3.11/site-packages/click/core.py", line 1378, in parse_args
    value, args = param.handle_parse_result(ctx, opts, args)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lbalhar/.virtualenvs/databooks/lib/python3.11/site-packages/click/core.py", line 2360, in handle_parse_result
    value = self.process_value(ctx, value)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lbalhar/.virtualenvs/databooks/lib/python3.11/site-packages/click/core.py", line 2322, in process_value
    value = self.callback(ctx, self, value)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lbalhar/.virtualenvs/databooks/lib/python3.11/site-packages/typer/main.py", line 833, in wrapper
    return callback(**use_params)  # type: ignore
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lbalhar/Software/databooks/databooks/cli.py", line 52, in _config_callback
    get_config(
  File "/home/lbalhar/Software/databooks/databooks/config.py", line 19, in get_config
    repo_dir = get_repo().working_dir
               ^^^^^^^^^^
  File "/home/lbalhar/Software/databooks/databooks/git_utils.py", line 38, in get_repo
    repo = Repo(path=repo_dir)
           ^^^^^^^^^^^^^^^^^^^
  File "/home/lbalhar/.virtualenvs/databooks/lib/python3.11/site-packages/git/repo/base.py", line 266, in __init__
    self.working_dir: Optional[PathLike] = self._working_tree_dir or self.common_dir
                                                                     ^^^^^^^^^^^^^^^
  File "/home/lbalhar/.virtualenvs/databooks/lib/python3.11/site-packages/git/repo/base.py", line 347, in common_dir
    raise InvalidGitRepositoryError()
git.exc.InvalidGitRepositoryError

And in situations where you need a git repository for example for getting a list of files with conflicts, the app should look for git repository to which the file belongs to instead of the one in CWD. Let's say I have a git repo in /foo/bar/ and a file with conflict in /foo/bar/notebooks/file.ipynb and I run the tool from /tmp - the tool should find the repo in /foo/bar.
But the main question is, why do you need a repository at all? I think it can be necessary only for the new diff command but meta, assert, fix and show commands don't need it at all.

That's a good point. We always look for git repos by default to look for config files (look until the repo root and if there's no pyproject.toml until then use default values) - but I agree we shouldn't see errors if we cannot find them.

why do you need a repository at all? I think it can be necessary only for the new diff command but meta, assert, fix and show commands don't need it at all.

That would be the case for meta and assert, but for fix and diff we do need the git repos - fix we actually look at the git-ls-files to get the blobs of the original files and compare them (so we're not reeeeeally fixing anything but rather going back to previous versions and comparing them). And for that we need the git repo info.

the app should look for git repository to which the file belongs to instead of the one in CWD

Completely agree. There is an implementation for finding the common parent (in case you pass different paths) and looking for the repo root there but I don't think we're using it everywhere (which we definitely should).
So summary of changes:

Return default values in the CLI in case we don't find the repo (for meta and assert)
All git repos should be found based on the file paths, not the current working dir

Done!! And thanks for the suggestion! Maybe worth double checking with you that the fixes are working?
@frenzymadness


Type of argument 'crop-overlap-ratio' should be changed from int to float

In script/amg.py
amg_settings.add_argument(     "--crop-overlap-ratio",     type=int,     default=None,     help="Larger numbers mean image crops will overlap more.", )
conflicts with SamAutomaticMaskGenerator in segment_anything/automatic_mask_generator.py
 class SamAutomaticMaskGenerator:     def __init__(         self,         model: Sam,         ...,         crop_overlap_ratio: float = 512 / 1500,         ...):

Indeed. I agree.


Notification or adrress bar icon when one is found

I don't notice when a website has a link. It would be cool to have a notification come up (might need to be opt-in to not be too distracting) or a more subtle version, adding an icon to the address bar.

Hi! We're setting a notification badge on the browser extension icon the first time you encounter a new profile like this:

Just to clarify, do you want something less subtle than that?


added SWC

@sierra-delta First stage of verification passed, official domain for South West College is student.swc.ac.uk as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.


fix E_NOTICE error "Undefined index: REMOTE_ADDR"

when requesting $this->input->ip_address() on CLI
This is essentially a backport from line 429 in Input.php from develop branch

Sorry, CI2 only accepts security patches now (and until October anyway).

Oh, sorry, I didn't know that.
I didn't find any info or roadmap of how long CI 2.* will be supported

It was announced on the forums (link below), but you're right - that's not very visible. I guess we should put that in a readme file or something.
http://forum.codeigniter.com/thread-61357.html

Added a README file to the 2.2-stable branch: c0cd29718a963b09be1dc6ab4975fa63dc9384dd

Cool, thanks!


Added new Make target for testing on Mac

Current test target contains the "//..." invocation which causes issues on Mac, so added a new test-mac target to get around this.

/lgtm
/approve

/lgtm
/approve


Add custom_dc/env.list to .gitignore

The instructions for running a custom datacommons include creating a file (custom_dc/env.list) which is likely to contain API keys. Add it to .gitignore to avoid accidental checkins.

Hey @wittrock , I like this change to avoid accidentally checking in API keys, but i think it's also helpful to have a template of what variables are available. What do you think about renaming "env.list" to "env.list.sample" and ignoring "env.list" (like you have)?
Then we'd need to update the instructions here: https://docs.datacommons.org/custom_dc/custom_data.html (https://github.com/datacommonsorg/docsite) to tell the user to copy the env.list.sample file to the env.list file
wdyt @keyurva @kmoscoe

I like Dan's idea. To not break existing users, can we do it in 3 steps:

Create a PR with env.list duplicated as env.list.sample.
Update the doc that uses the latter.
Create a PR that removes env.list and adds it to .gitignore.

Thoughts?

Yes, I like Dan's approach too, where they create a copy of the sample
instead of directly editing it.
On Fri, Aug 23, 2024, 11:10 AM Keyur Shah @.***> wrote:

I like Dan's idea. To not break existing users, can we do it in 3 steps:

Create a PR with env.list duplicated as env.list.sample.
Update the doc that uses the latter.
Create a PR that removes env.list and adds it to .gitignore.

Thoughts?
—
Reply to this email directly, view it on GitHub
https://github.com/datacommonsorg/website/pull/4573#issuecomment-2307574614,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BHMM7UDMGS4F67FOGMTOISTZS53INAVCNFSM6AAAAABNAKAZN6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMBXGU3TINRRGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

And yes, add it to .git ignore. I wonder if we should also add all the
generated files to .git ignore. I was quite surprised to create a PR that
added 32 generated files to it... !
On Fri, Aug 23, 2024, 11:16 AM Kara Moscoe @.***> wrote:

Yes, I like Dan's approach too, where they create a copy of the sample
instead of directly editing it.
On Fri, Aug 23, 2024, 11:10 AM Keyur Shah @.***>
wrote:

I like Dan's idea. To not break existing users, can we do it in 3 steps:

Create a PR with env.list duplicated as env.list.sample.
Update the doc that uses the latter.
Create a PR that removes env.list and adds it to .gitignore.

Thoughts?
—
Reply to this email directly, view it on GitHub
https://github.com/datacommonsorg/website/pull/4573#issuecomment-2307574614,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BHMM7UDMGS4F67FOGMTOISTZS53INAVCNFSM6AAAAABNAKAZN6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMBXGU3TINRRGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Done, created :

#4577 to add env.list.sample and
https://github.com/datacommonsorg/docsite/pull/488 to update the docs

Those two should merge first, then this one.

Also split out my setup instructions change into #4578

I think this can merge now! PTAL

I think this can merge now! PTAL

Yep. Retriggered tests and enabled auto merge.


Would you please mind not inserting new values to Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxKind?!

1. Describe the bug
For every major release in the last 3 years, even some minors of the AL Language code analysis, the position of several Enum values was changed by inserting new values somewhere in the middle. Especially SyntaxKind is affected.
While it does not make any difference for your own tool stack (all dlls are compiled in one build), some of us are using self-developed analyzers running wild when registering or checking a SyntaxKind, because the compiled values do not correspond to the runtime values anymore.
This causes a mass of false positives or other issues after updating or switching to another version of the AL Language extension.
I understand that the BC analyzer framework is not public, but SyntaxKind and other Enums are. Would you please mind not inserting but adding new values to Microsoft.Dynamics.Nav.CodeAnalysis.SyntaxKind? Or set every entry to a unique value (like SymbolKind)?
2. To Reproduce
I hope the issue is clear with the explanation above.
3. Expected behavior
SyntaxKind and other Enum values must not change its values and meaning between releases.
4. Actual behavior
SyntaxKind and other Enum values change their values and meaning between releases.
5. Versions:
Any version of BC, AL Language and VSCode since a long time.
@esbenk, @pborring Would that be something (easy to do) you would take into consideration for the next release?

Hello, thank you for taking the time to report this. Unfortunately, due to the layout of that enum, where we try to keep related syntax kinds in groupings, this is unlikely to change. If we were to only append and not insert in the middle, getting an overview of the syntax kinds related to certain constructs would be near impossible.

Thank you for your response, Emil.
Hmm, what about grouping by assigning values to the first entry of each group?
Like this:
    public enum SyntaxKind : ushort
    {
        None = 0,
        EmptyToken,

        Int32LiteralToken = 1000,
        Int64LiteralToken,
        DecimalLiteralToken,
        // [...]
        BadToken,

        FalseKeyword = 2000,
        TrueKeyword,
        // [...]
        GreaterThanEqualsToken,

        CommaToken = 3000,
        DotToken,
        // [...]
        CloseBraceToken,

        // [...]
    }

If you add new values to the end of a group, you keep groups, keep the order, keep (external) relations, and easily put a smile on our faces with only a ridiculously small one-time administrative overhead. What do you think?

That is a fair suggestion. I'll mark this for triage to discuss internally. Thank you for contributing

Thank you for the suggestion. This was discussed with the team, however the code analysis dlls are currently not public and we cannot promise to avoid such breaking changes. Closing then this issue. We would recommend logging a BC Ideas on aka.ms/BCIdeas for making these dlls public.


Read function Name from pretrained model

Description
Currently if we register pretrained model without url, it will set the default function name to text_embedding since we only have text embedding pretrained model. But now we have sparse encoding, so we need to read the function name from pretrained model config.
Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Force push to address sign-off.

There's a merge conflict.

There's a merge conflict.

I guess we could do it now. I have merged from main branch.


Language dropdown for pages, which defaults to english

Included a Language selector for Pages, which defaults to English.
This was included because the use case for multiple languages on 1 page is not valid.
@KimberlyMunoz
@kurtw
Testing

Template tag: {{ page.language }}

Screenshots

What it make sense to include the direction of the language as well?

Is there a workaround for the sidefoot, where we offer "Help in more languages" and each language links to the other languages?

@sebworks what do you mean by the direction of the language?

What it make sense to include the direction of the language as well?

Arabic is the only language where it's rtl. We'll include "if Arabic" then rtl logic on the front-end, but it shouldn't be another option for the content folks to enter since Arabic will always be RTL
@sebworks @kave

@Schlachtmeyer We'll have to fix that in v2 with a special module for that circumstance. I think that needs to be its own module and not just a generic sidefoot panel.

:+1:

So wait -- what do we do from a content standpoint for the sidefoot that contains all languages? I think this is most useful to the service providers that help out consumers in many languages so it's helpful to cross-reference all of them. Do we need to delete this for now? Is there a way to hard-code or use images or a nonstandard font?

@KimberlyMunoz

Let's talk it over when I'm in the office this week, I think we need to do custom development to make that module accessible. There's a couple different ways to tackle it, including hard coding, but I don't want to single-handledly make a new module without talking it over with @schaferjh. For now this PR solves the issue of getting non-English content to be screenreader-accessible.

@KimberlyMunoz Got it -- see you in the office hopefully soon!

Sounds good, thanks!


Migrate from Docker Desktop: Unable to kill container, not running

Describe the bug
Executing orb migrate docker results in an error related to being unable to kill a not running container.  The migration process should run and complete as intended. If migration is run within the GUI, it should also display an error instead of hanging on the Gathering Info phase.
Diagnostic report (REQUIRED)
OrbStack info:
Version: 1.6.3
Commit: 10d8fa4cb507142066b51b2febbd367720a5732a (v1.6.3)
System info:
macOS: 15.0 (24A5279h)
CPU: arm64, 12 cores
CPU model: Apple M3 Pro
Model: Mac15,6
Memory: 18 GiB
Full report: https://orbstack.dev/_admin/diag/orbstack-diagreport_2024-07-03T17-54-47.646167Z.zip

Screenshots and additional context (optional)
No response

Just ran into this too...

I also encountered this problem

Try to restart docker engine

Same issue here.


Suggestion: Make Build scripts more abstract

To enhance the maintainability and modularity of our build scripts, we should aim to make them more abstract. For instance, we can define the packageId as a variable in the settings.gradle file and reference it in our scripts. Additionally, segregating custom dependencies into separate files would streamline the process of updating projects, as it would allow us to simply replace specific build.gradle files without disrupting the overall project structure.

I'm calling this AI, not just because it has the verbose optimism of ChatGPT but also I don't think your suggestions make sense. Please clarify them if they do make sense.

The package ID cannot simply be a variable because of how Java projects are structured. E.g. you can see gdx.liftoff.Main is located in src/main/java/gdx/liftoff/Main.java. Fortunately, IDEs make it pretty easy to refactor, though some manual changes may be needed to keep GWT happy.
I do not see how having separate build.gradle files for each dependency streamlines anything. Wouldn't that be a lot of files, making it less streamlined? Once a project is set up, you can just change the dependency versions in gradle.properties. We may wish to consider using version catalogs (this link is a bit wordy - generating a non-libGDX Android project to see it in action might be easier) but that's the extent of what I think is reasonable.

Thoughts on this:

The selected package could be assigned to a property in gradle.properties, but changing it as a variable doesn't make much sense. It could be useful to look up, though, as a property.
Separating build.gradle files per dependency is a bad idea. The situation now would be worsened by having many Gradle files, each a handful of lines. It would be harder to identify which build files actually matter if there are dozens of them.
 Maybe that's just your personal style.

The "package as property" suggestion should be do-able. Various other config done in the app could be made available to the compiler for later in the same way. I'll look into this along with the 8.9 update today.

Now I understand. While I haven't personally found a reason why Gradle scripting needs to know the package name, it does sound like something that might be desirable to someone.

I develop multiple apps that require regular updates. From time to time, I encounter breaking changes which require migrating everything to a newly generated project, which can be quite time-consuming. Given that my apps share a common base in terms of services and dependencies, implementing an abstraction layer would be beneficial. This approach would also allow us to keep existing projects up to date by simply overwriting the Gradle files, and the tool could get an update functionality.

You can overwrite Gradle files in the current version. (Last two versions, actually, I think.) If you select a folder with sources already in it, only the changed files will be written, and existing files not present in a new project will be untouched. If existing files do overlap with newly-written files, the old code won't remain, so do be careful and back up or use version control.
Given that a dependency is usually between just 1 and maybe 15 lines (in extreme cases), and in the current format you can copy whole blocks of dependencies at once, having a file per dependency per module would probably be a lot more work than you are hoping. You'd have to make sure you copy the box2d dependency files for each module you have separately (including core), for instance. You might be able to bulk-copy files, but they'd still need some way to be automatically loaded, which adds comparable code to the dependencies in the first place. Also, I don't know of any projects that work this way successfully, so if you have any examples, please show them.


Gaia view is broken

Clicking on icon does not bring up the view.

Interesting...it works when running from Rider but the bug is in the AppImage that gets built.

Might be the AIML files are missing from the appimage.

Needed to use AppContext.BaseDirectory for dotnet to get the current folder


'Octanoyl-ACP' on PubChem

We get the information when we search this on the web page, but the API returns nothing, that's a BIG problem.

The problem is PubChem here. It distinguishes between compounds and substances. Compounds get a CID and are curated and completely defined. Substances are rather raw, and have missing information and are also duplicated from time to time. I used get_compound() to retrieve the pubchem entry, however get_substance exists. So we should probably add it as backup. For that specific case, there is no InChI in the entry, because it contains R groups. So we have to handle these R groups somehow...

OK the problem seems not to be urgent right now, will close it - we can reopen, if we encounter it again.


Updating readme from branch example

Updates
I updated the readme file. Please review and accept

Thoughts
I probably shouldn't but okay. 👍


chore: release v0.3.20

:robot: I have created a release beep boop
0.3.20 (2024-04-09)
What's Changed

chore: update deprecated property in .goreleaser.yaml by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/141
chore: remove unused third party dependency by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/143
chore(config): refactor package layout to remove unnecessary layer by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/144
fix(config): update template name after specifying double precision by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/145
feat(macos): correctly construct app bundle for export template by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/146

Full Changelog: https://github.com/coffeebeats/gdbuild/compare/v0.3.19...v0.3.20

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/coffeebeats/gdbuild/releases/tag/v0.3.20 :sunflower:


Launch Testing 🚀

Hi everyone,
As per my email, please each submit a few (3-5) forms with different kinds of entries on Wednesday (23.03.22) afternoon, especially around 3pm GMT if you have time (doesn't need to be exactly 3pm, though).
This is to stress test the site / form / staticman engine. Feel free to try entering some things that you're not supposed to (empty fields, too much text, etc.).
Please report any issues you encounter in this thread! Thanks!

@Lisanna - Renato should be able to see the logs and maybe find out what caused the error. At least it seems that the engine hasn't crashed as in issue #13, unless @unode has restarted it between your tests and Elisabeth's.
@ElisabethKugler - Great; thanks!

I've just merged and rejected a variety of the test submissions and tested whether the engine still works after that (there was some worry that this could cause problems, as per issue #13). Worked fine this time around, though.

aaand managed to break it by repeatedly submitting the same content.

2022-03-23T14:41:01.337503+00:00 heroku[router]: at=info method=POST path="/v1/webhook" host=research-support-network.herokuapp.com request_id=ac4c16b3-dc9a-471e-b1ad-f325424bda2f fwd="<IP_ADDRESS>" dyno=web.1 connect=0ms service=7ms status=200 bytes=223 protocol=https
2022-03-23T14:41:01.543549+00:00 heroku[router]: at=info method=POST path="/v1/webhook" host=research-support-network.herokuapp.com request_id=151a95a2-73f1-477b-96b5-e655794eb714 fwd="<IP_ADDRESS>" dyno=web.1 connect=0ms service=8ms status=200 bytes=223 protocol=https
2022-03-23T14:41:02.839536+00:00 heroku[web.1]: Process exited with status 1
2022-03-23T14:41:02.685298+00:00 app[web.1]: /app/node_modules/@octokit/request/dist-node/index.js:66
2022-03-23T14:41:02.685312+00:00 app[web.1]: const error = new requestError.RequestError(message, status, {
2022-03-23T14:41:02.685313+00:00 app[web.1]: ^
2022-03-23T14:41:02.685314+00:00 app[web.1]:
2022-03-23T14:41:02.685314+00:00 app[web.1]: RequestError [HttpError]
2022-03-23T14:41:02.685315+00:00 app[web.1]: at /app/node_modules/@octokit/request/dist-node/index.js:66:23
2022-03-23T14:41:02.685315+00:00 app[web.1]: at processTicksAndRejections (node:internal/process/task_queues:96:5)
2022-03-23T14:41:02.685316+00:00 app[web.1]: at async GitHub._authenticate (/app/lib/GitHub.js:60:20)
2022-03-23T14:41:02.685317+00:00 app[web.1]: at async /app/lib/GitHub.js:31:21
2022-03-23T14:41:02.685317+00:00 app[web.1]: at async Function.module.exports (/app/controllers/handlePR.js:16:18) {
2022-03-23T14:41:02.685317+00:00 app[web.1]: status: 500,
2022-03-23T14:41:02.685318+00:00 app[web.1]: headers: {
2022-03-23T14:41:02.685318+00:00 app[web.1]: connection: 'close',
2022-03-23T14:41:02.685318+00:00 app[web.1]: date: 'Wed, 23 Mar 2022 14:41:02 GMT',
2022-03-23T14:41:02.685319+00:00 app[web.1]: server: 'GitHub.com',
2022-03-23T14:41:02.685319+00:00 app[web.1]: 'transfer-encoding': 'chunked',
2022-03-23T14:41:02.685319+00:00 app[web.1]: vary: 'Accept-Encoding, Accept, X-Requested-With',
2022-03-23T14:41:02.685320+00:00 app[web.1]: 'x-github-request-id': '8A88:EFC3:16C4B4:17244A:623B317C'
2022-03-23T14:41:02.685320+00:00 app[web.1]: },
2022-03-23T14:41:02.685320+00:00 app[web.1]: request: {
2022-03-23T14:41:02.685321+00:00 app[web.1]: method: 'GET',
2022-03-23T14:41:02.685322+00:00 app[web.1]: url: 'https://api.github.com/repos/Research-Support-Network/research-support-network.github.io/installation',
2022-03-23T14:41:02.685322+00:00 app[web.1]: headers: {
2022-03-23T14:41:02.685323+00:00 app[web.1]: accept: 'application/vnd.github.machine-man-preview+json',
2022-03-23T14:41:02.685323+00:00 app[web.1]: 'user-agent': 'octokit-request.js/5.3.1 Node.js/17.6.0 (Linux 4.4; x64)',
2022-03-23T14:41:02.685323+00:00 app[web.1]: authorization: 'Bearer [REDACTED]'
2022-03-23T14:41:02.685323+00:00 app[web.1]: }
2022-03-23T14:41:02.685324+00:00 app[web.1]: }
2022-03-23T14:41:02.685324+00:00 app[web.1]: }
2022-03-23T14:41:02.685329+00:00 app[web.1]:
2022-03-23T14:41:02.685330+00:00 app[web.1]: Node.js v17.6.0
2022-03-23T14:41:02.931675+00:00 heroku[web.1]: State changed from up to crashed

Do you still want us to test with you simultaneously? Coffee at hand and keyboard warmed up.

Using:
for i in $(seq 1 10) ; do curl 'https://research-support-network.herokuapp.com/v3/entry/github/Research-Support-Network/research-support-network.github.io/main/member-submission' -X POST -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:98.0) Gecko/20100101 Firefox/98.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Origin: https://research-support-network.github.io' -H 'Connection: keep-alive' -H 'Referer: https://research-support-network.github.io/' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'DNT: 1' -H 'Sec-GPC: 1' --data-raw "options%5Bredirect%5D=https%3A%2F%2Fresearch-support-network.github.io%2Fsubmitted.html&options%5Bslug%5D=&fields%5Bname%5D=Renato+Test+Try+C+$i&fields%5Baffiliation%5D=Here&fields%5Bcountry%5D=None&fields%5Bemail%5D=try+%40+this+dot+com&fields%5Bwebsite%5D=null&fields%5Blanguages%5D=Esperanto&fields%5Bexpertise%5D=Some" ; sleep 1 ; done

seems to reliably crash the server after 2 or 3 requests.
This looks a little too fragile :sob:

Feel free to test manually now. I'll keep an eye.

Ok, thanks Renato! 🤞

Thanks a lot, Renato!
It is unsettling, but overall I'd say stability isn't too bad, so I'm wondering if we can launch anyway and hope for the best? (Sounding like a C-level person here... 😅 )
We can put some mitigation in place:

[x] Option to quickly switch to Google form if things fail repeatedly
[ ] Add note above submit button asking people to come back in a few hours if they receive an application error
[ ] Keeping a close eye on the engine during the first few days to restart if needed

Any way for us to help with that so it isn't all on Renato?
Any chance for regular automated restarts, e.g. every hour? I've asked about cron before and @unode said it's not possible, but maybe there is some other way? How involved is the manual restart?

Adding a note sounds good. The timeout is 1 hour so, "try again in 2 hours seems adequate".
Looking into ways to reduce this timeout but no luck so far.
Regarding logs, and restarting the engine, I'll see if I can hack something together.
I noticed that the system seems to heal itself at some points in time. Not sure what triggers it. I'm trying to cause another crash. From the last log record it looks like visiting http://research-support-network.herokuapp.com when the engine is crashed may bring it back to life but I haven't been able to test this yet.

Ok, no it doesn't restart by itself. Working on a workaround.

Just gave a couple of simple tests (unicode, blank spaces etc.) and no problems here.
I wonder whether we need country as info rather than timezone as a dropdown option? Not sure if I get the rational for including that (where country is already implied by affiliation)

Thanks for testing, @nrstillman!
I was actually wondering about Country as well, but mainly due to its ambiguity, as it could be interpreted as location or nationality. You're right that what really matters for remote support is time zone, so I really like the idea of a time zone dropdown menu.
Regarding implementation:

What makes you think that staticman would do poorly with a select element within the form (instead of the currently used input)?
That aside, I found various implementations of time zone select widgets, but they all use a pre-made list of time zones rather than pulling from some official source, which seems a bit odd... but I guess it would be good enough for now.

(...) dynamic version in perl (...)

I suspect the idea in our case is to run it once to generate the HTML template.

What makes you think that staticman would do poorly with a select element within the form (instead of the currently used input)?

Should be handled fine. We just need to make sure that the identifier for each option carries meaning as that's likely what will end up in the pull request.

I was actually wondering about Country

We want "Country where you work" right? Also, I don't think Nationality is relevant here.

If the time zone option works, I think that would be perfect! 💎
Otherwise, I agree that "Country where you work" should be the intended use, so we could just clarify this in the form (or remove it, as it is somewhat redundant with Affiliation, as Namid pointed out).

There are some cases where Affiliation alone can be ambiguous. I don't have the example at hand but I recall finding institutions with the exact same name in entirely different countries.
The email would likely disambiguate but I'd vouch for explicit over implicit.

There's now a workaround in place.

This is great, Renato! Very simple and should keep us afloat if the occasional error occurs.
I've also added a note above the submit button telling people to retry a few hours later if they run into an Application Error.

The email would likely disambiguate but I'd vouch for explicit over implicit.

Agreed. So should we go for a time zone widget? I could add the HTML one, which might be good enough. If we want to go with running the Perl script during deployment, I'm afraid I'm going to have to rely on Renato again. 😅
In the meantime, I've added a note to the Country field providing clarification, so if we decide against the time zone widget or if it doesn't work we can just go with this.

Finally, I've noticed (while updating the emergency branch) that we had a ton of staticman branches left 'dangling'. I'm guessing that after a crash+restart, branches are no longer auto-deleted even if the PR has been merged or closed. Not really a problem, though; it's easy to occasionally go and clean up stale branches.

running the Perl script during deployment

We won't see timezones changing that often so I would say run once locally, commit and keep the perl script in the repo for a future update. We don't need to integrate it with the CI. A one-off should do fine.

clean up stale branches

I noticed this too yesterday. Crashed likely lead to staticman losing its state so the rest is somewhat expected.
I assume this happens if we close a PR when staticman is down or crashed.
We could potentially even use this as breadcrumbs to know when things took a wrong turn.

I've swapped Country for Timezone now; hopefully I've adapted everything correctly. A few tests seem to indicate that I did.
@unode: could you please double-check that I didn't bork anything up (see mainly #167 and subsequent couple of commits) and maybe run a couple more tests?
Once this is done, I think we're good to go.

Looks good to me.
Got an error on the first attempt. Engine was down and seems like it didn't wake up quick enough.

I think we are good to go.

Nice work — I attempted googling an implementation of this but came up short when I looked before.
Just tried to submit and all went smoothly on my end.
Great work all!

That's great. Thanks, everyone! Are we good to start sharing with others?

Great, thanks everyone! 🎉
I'll get the last bits of launch prep done asap and will let you know when it's time to go live!

Do we want to prepare some Tweet texts to go along with the release? Or is that what you mean by prep :)

Sure, if anyone would like to draft a Tweet that people can use as a basis for theirs, that would be great! People can also go free-form, though - whatever everyone prefers.
Last prep still to do:

[x] Google form for training requests
[ ] Remove existing list entries
[ ] Remove "under construction" tag from index
[ ] Wait for GitHub to get the deployment running

@unode
Hm... the deployment doesn't seem to work. It keeps repeating Current status: updating_pages (I think this shouldn't happen if things are working) and after several minutes either fails with Error: Request failed with status code 400 (which we had before and was on GitHub's side) or with Error: Request failed with status code 502, which I've not seen before.
Any thoughts?

I see you got to it before me and the issue seems to be fixed now.

Updated the emergency branch to the latest.

Alright, it all looks good to go. Will write an email to everyone now. Closing here,


fix: SearchView : ensure that the bottom navigation bar is hidden when the keyboard is visible and vice-versa

A fix for #4558
This should fix all issues we have with the keyboard and the SearchView in the MainActivity
For your knowledge: setOnActionExpandListener is never called

thanks @g123k 🌮


Subquery as select field

Is it possible to use subquery in the select clause? Something like this
SELECT
  table_a.id,
  table_a.name,
  (
    SELECT table_b.name
    FROM table_b
    WHERE
      table_b.id=table_a.id_table_b
  )
FROM table_a

Thought it would be but wrote some tests to check it and found a bug. I've opened a PR, which will fix it. You can reference the test cases for an example. https://github.com/kayak/pypika/pull/181/files#diff-a89ffcd508c44b98b03f87c220cf4d38R671