Coder Social home page Coder Social logo

tfthacker / obsidian42-brat Goto Github PK

View Code? Open in Web Editor NEW
506.0 8.0 21.0 1.28 MB

BRAT - Beta Reviewer's Auto-update Tool for Obsidian.

Home Page: https://tfthacker.com/BRAT

License: MIT License

TypeScript 75.35% CSS 0.07% JavaScript 24.58%
obsidian-md obsidian-plugin

obsidian42-brat's Introduction

Beta Reviewers Auto-update Tester

This is a very special plugin designed to make life much easier for developers and beta-testers of plugins and themes.

The Beta Reviewers Auto-update Tool or BRAT for short is a plugin that makes it easier for you to assist other developers with reviewing and testing their plugins and themes.

Simply add the GitHub repository path for the beta Obsidian plugin to the list for testing and now you can just check for updates. Updates are downloaded and the plugin is reloaded. No more having to create folders, download files, copy them to the right place, and so on. This plugin takes care of all that for you.

Learn more about BRAT in the DOCUMENTATION found at: https://tfthacker.com/BRAT or follow me at https://twitter.com/tfthacker for updates.

You might also be interested in a few products I have made for Obsidian:

  • Canvas Candy - The Canvas Candy Vault is a set of tools specially designed for use with the canvas feature of Obsidian. With over 40+ decorations, you can add new dimensions to the cards on your canvas.
  • Cornell Notes Learning Vault - This vault teaches you how to use the Cornell Note-Taking System in your Obsidian vault. It includes learning material, samples, and Obsidian configuration files to enable Cornell Notes in your vault.

obsidian42-brat's People

Contributors

fyears avatar kunicki avatar nocona71 avatar ryotaushio avatar tfthacker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

obsidian42-brat's Issues

Overwrites published plugin

Example: Graph Analysis

BRAT will install an older version of a plugin over the newer version available in community plugins.

Possible solution:

  • diff the version number somehow against the published or local version and only update if the beta is newer.

Theme Files

Hi,

With the release of Obsidian v1.0 theme files now use theme.css instead of the prior obsidian.css. As such, BRAT isn't detecting the new themes in github.

[Question] Would like to add Minimal 7 as a beta theme

Hi! Long time BRAT user for beta plugins, but have never tried with a beta theme before now.

I saw kepano is working on a big re-working of Minimal (kepano/obsidian-minimal#581) and was excited to give it a try as the updates are coming fast. Adding this address https://github.com/kepano/obsidian-minimal/tree/7 in BRAT under Add Beta Theme shows me the notice:

There is no theme.css or theme-beta.css in the root path of this repository, so there is no theme to install.

The manifest.json content looks fine, and there's a very recently updated theme.css in there, so I'm not sure what the issue is. Any guidance would be appreciated. Cheers.

Regardless, thanks much for BRAT!

"main.js not found in the Release"

Hi!

When I try to add my beta plugin obsidian-compromise via BRAT, I get this message:
image

It says there is no main.js on the Release, but I do have one on the release.

image

I'm not sure what else could be wrong here

  • I wonder if something else could be wrong with my main.js file?
  • Or is this latest release 1.0.1 not tagged as latest in the right way? (it does say latest!)
  • Could there be some latency (more than minutes, I've waited that long) between updating on github and Obsidian seeing it? Or a caching issue?

I'm happy to help update/clarify the instructions if I missed something :)

[Feature request] Specify branch for beta

Nice plugin, thanks.
I would like to have a possibility to specify a branch for beta releases.
As I understand I have to have actual manifest-beta.json in branch for releases and I have to chose between two options:

  1. Merge beta code with new version with master
  2. Create separate commit to update manifest-beta.json and resolve conflicts lately.

But it will be great to have a file, for example, manifest-beta-brach.json where I can specify branch which have actual manifest-beta.json.

Respect minAppVersion when installing/updating plugins

It would be helpful if BRAT could respect the minAppVersion from manifest.json to avoid installing or updating any plugins that are incompatible with the user's current Obsidian version. There's a number of breaking changes in Obsidian 0.15.x and it's difficult to beta test them via BRAT since non 0.15.x users will get the updates via BRAT even though the minAppVersion is set.

One step further would be to also respect versions.json which lets you know which version of the plugin you should step down to in the case of an incompatibility.

FR: Install BRAT item with tree branch link?

Hello there! Thank you so much for this plugin!! I wanted to ask if it was possible to allow say install a theme (or plugin), but using a different branch of the repo? That would be very helpful!

Feature Request: Savestate Plugin-Enabled-State, then mass-disable all plugins

Hello,

this plugin can be really useful, especially when you have 64 active plugins and 7 inactive installed. (Never noticed it was that many).

Sometimes you encounter bugs that you are unsure where it comes from, and after checking that the sandbox vault doesn't replicate the issue then fun experience of "Let's find the responsible plugin" commences. I would like to propose an additional feature for such instances:

I would like to be able to:

  1. disable all currently active plugins
  2. then enable a set of plugins to narrow down my issue // do whatever testing I need in separation, and then
  3. reset to the state of all plugins before disabling. This means deactivating all plugins which are now active and have not been active before as well as activating all plugins which were active before and are no longer active when the command is executed.

I suppose this principle could be expanded to save plugin-specific settings-snapshots when executing this command, so that the settings of those plugins are preseved as well (in case you need to test any larger set of changes)

Would something like this be possible?

Thank you,
Sincerely
~Gw

one time manual install

From @GitMurf

t seems like there is a use case for users to use BRAT even if the dev isn’t building the repo properly to use BRAT. Also potentially if you want to manually install an old release. The proposal is that instead of putting repo address like GitMurf/plugin-a/ you could instead put the full release URL in and then BRAT would install that specific release. Maybe it is an added command that you run “ad hoc” and it does t save that repo in a list for future updates or anything.

Basically it is a “one time manual install” command and you just point it to the exact release URL and BRAT simply downloads the release files to install that version.
Does that make sense?

Then you can market BRAT as not only for beta testers but also as the new go to method for installing any plugins manually that doesn’t require the plugin dev to even know what BRAT is. This could be great for older plugins that maybe have been abandoned but people still use them… I know there is a few of them out there.

Would be much easier to explain to someone how to manually install a plugin 🙂 1. Install BRAT 2. Run “one time manual install” command 3. Enter the release URL 4. Make sure the plugin is now available and enabled.

[BUG] error in grabManifestJsonFromRepository

Not sure when issue started, but now under Obsidian v0.16.0, the following errors are appearing;

error in grabManifestJsonFromRepository for https://raw.githubusercontent.com/Quorafind/Obsidian-Bionic-Reading/HEAD/manifest-beta.json Error: Request failed, status 404
    at new t (app.js:1:722395)
    at Nw (app.js:1:722587)
    at app.js:1:723264
    at app.js:1:235192
    at Object.next (app.js:1:235297)
    at a (app.js:1:234036)

This is same for any plugins added.

Impact seems to be the -beta in the manifest.json filename - all repos listed as failing have a manifest.json, but none have manifest-beta.json

How to remove a plug-in from the list

Once you add a plug-in to the list it remains there, getting updated, etc.
Is there a way to remove a specific plug-in from the list if e.g. after having tried the plug-in I don't like it anymore?

[Bug] Enabling a plugin does not carry over between sessions

When I enable a plugin it does not stick between sessions, if I close and open obsidian again it will be disabled. I don't think this is intended but if it is I would suggest changing the command to make it clear you are only enabling it for the current session.

Here's my debug info

SYSTEM INFO:
	Obsidian version: v0.13.7
	Installer version: v0.12.19
	Login status: logged in
	Catalyst license: supporter
	Insider build toggle: on
	Base theme: dark
	Community theme: BRAT-Emrie-Candera----Bubble-Space-Theme
	Snippets enabled: 9
	Safe mode: off
	Plugins installed: 133
	Plugins enabled: 50
		1: Better footnote
		2: Advanced Tables
		3: Open vault in VSCode
		4: Dictionary
		5: Spaced Repetition
		6: Auto Link Title
		7: Templater
		8: Add Codemirror matchbrackets.js
		9: QuickAdd
		10: Hotkey Helper
		11: Readwise Official
		12: Pandoc Plugin
		13: Note Refactor
		14: Advanced new file
		15: Commits
		16: Wikipedia
		17: Tag Wrangler
		18: Collapse All
		19: Vault Statistics
		20: Cross-reference Navigation
		21: Gallery
		22: Fullscreen mode plugin
		23: Admonition
		24: Hider
		25: Sliding Panes (Andy's Mode)
		26: RSS Reader
		27: Adjacency Matrix Maker
		28: Emoji Shortcodes
		29: Obsidian Git
		30: Pane Relief
		31: txt as md
		32: Workspaces Plus
		33: Smart Random Note
		34: Activity History
		35: Linter
		36: Snippet Commands
		37: Dataview
		38: CustomJS
		39: Improved VimCursor
		40: Vimrc Support
		41: Obsidian42 - BRAT
		42: Preview Mode Keybinds
		43: Graph Analysis
		44: Better Word Count
		45: MySnippets
		46: Breadcrumbs
		47: MetaEdit
		48: Another Quick Switcher
		49: Various Complements
		50: Frontmatter Tag Suggest

RECOMMENDATIONS:
	Custom theme: for cosmetic issues, please try to make the issue happen in the help vault or disable community theme and snippets.
	Community plugins: for bugs, please try to make the issue happen in the help vault or disable community plugins.

Theme downloads are not tracked

When a theme is normally downloaded via Obsidian's theme browsers, the download is tracked by sending a request to https://releases.obsidian.md/stats/theme/THEME-NAME/download.

Not sure how many people actually download themes via this plugin, but this ensures that those downloads are being tracked too!

Theme support?

Does BRAT have support for themes?

Would be really nice to autoupdate themes that aren't yet published 😄

Command palette option for forcing installation/reinstallation of plugins added to BRAT

Currently, I have a configuration file I was testing locked version plugins with, however I noticed that it would not install them always. Adding them through the GUI does work, of course, but subsequent changes are not detected. For example, removing a plugin manually makes it essentially impossible for it to be automatically reinstalled, likewise does deleting it from the GUI but leaving it within BRAT. Adding entries directly to data.json for BRAT are also not detected. None of these change between Obsidian restarts or simple reloads of Obsidian from the command palette.

An automatic detection for their state is perhaps a tad out of scope, but I think an option that installs/reinstalls all plugins listed in data.json would be very welcome.

[FR] Disable request if no internet

Sometimes, I use Obsidian without internet, and, when started without, there is a lot of notification with error about manifest not found.
It's very inconvenient, mainly on phone-tablette.

So, it will be good to disable request in these case.

Plugin not recognized

I was trying to install limelight via BRAT, but BRAT says that it is no plugin due to a missing manifest.json.
Screenshot 2021-10-16 14 28 41

However, the plugin does have a manifest.json, as can be seen here.

Can BRAT detect if plugins are uninstalled and ask before reinstalling them?

I've noticed a bunch of times within only a few days of using the plugin, that when I would uninstall plugins installed with BRAT, that BRAT would automatically reinstall them to my inconvenience. What if BRAT kept track of plugins it installed (perhaps in a JSON file?) and if it detects that it is no longer installed, ask the user if they want it reinstalled, or forget it?

Toggle plugins on/off from BRAT

It would be proper cool to be able to toggle a plugin on/off with BRAT. Basically a command to enable or disable a plugin via the / or Command Palette? Thus BRAT becomes something like a 'Plugin Manager'; similar to 'Configure Snippets'? A statusbar modal would be lovely.

Option to disable BRAT notifications

On a mobile device, my BRAT update notifications can frequently fill up the entire screen.

Would love an option to disable BRAT notifications for successful plugin updates

Uninstalled plugins not offloading from data.json

After uninstalling plugins loaded with BRAT, I am finding they get loaded again upon triggering the "Check for updates to all beta plugins and UPDATE" command. After looking at the data.json file, I can confirm that after being uninstalled, plugins remain listed in the file.

I am using Obsidian v0.16.2, installer version: v0.15.9. BRAT version: 0.6.35.

BRAT does not update

I have version 0.5.6 installed. When I go to Obsidian settings and click on “Check for updates” it does not find 0.5.7. I thought BRAT could update itself too.

Automatic updating not working anymore

I have this feature enabled, and it was working, but the last couple of days it is not working anymore. Anything going on with the plug-in?
Please advise.

problem installing

the latest version is not installing in my Obs. I uninstalled, and tried re-installing... now I have no BRAT = sad

Could "Switch active theme" have a "Default" option

Thank you for this amazing plugin.

I love "Switch active theme" and have it on my ribbon.

As far as I can see, to turn off all themes I need to go to the main Appearance settings, select Themes > Manage and select Default/Obsidian...

Might it be possible for BRAT to streamline that? Adding it an an extra option to "Switch active theme" sounds to me like a good place, but I don't know the technicalities involved...

Support CSS Snippets

There are many repos that include CSS snippets:

It would be super slick if I could link to a snippet repo in BRAT and have it auto-import/update the snippets. This would be similar to themes because snippets aren't versioned.

This might be tricky for repos like ITS, which are a theme AND include snippets (the ones prefixed with S - )

Option to delay checking for updates

Obsidian can sometimes take a while to startup if I have too many plugins installed and they're all trying to do work in the background at launch.

It would be nice if I could delay BRAT's update checker by an arbitrary amount of time (e.g., 5 min after obsidian has launched)

other option for convenience

Could you please add these features to be available in the command palette, if it's easy to implement :

  • check for update for non-beta plugin
  • update non-beta plugin
  • update non-beta theme
  • access changelog for beta and non-beta plugin

Thank you very much for everything.

Confusing initialization message

When I added the "fantasy calendar" plugin to BRAT's auto updater, the tooltip status thing said "you need to go enable it in community plugins" but since I had already manually installed it earlier, it was already there. I would have expected a message like "it's updated." Since I didn't get that, I assumed I had two folders / plugins and needed to delete one, but when I checked, there was only one.

Console error on missing optional styles.css

styles.css is optional in plugins, isn't it? Console is producing error when it's not found...

error in grabReleaseFileFromRepository https://github.com/codyburleson/litmojo/releases/download/0.0.4/styles.css Error: Request failed, status 404
    at new t (app.js:1:699319)
    at Xb (app.js:1:699511)
    at app.js:1:700188
    at app.js:1:235201
    at Object.next (app.js:1:235306)
    at a (app.js:1:234045)

This is not a big deal because it still seems to work, but maybe you want to know anyway?

Failed to load plugin?

My obsidian is up to date. It won't let me enable the brat plugin from the community plugin page.

Screenshot (377)

Feature suggestion: Add Command to open the GitHub Repo of a beta plugin

While being able to open the GitHub Repo of a plugin might be a nice feature in general, I think it would be even more valuable for BRAT, since BRAT users are basically early testers of plugins needing feedback.

For released plugins, you can use the plugin browser to avoid having to google the plugin, but for beta plugins, this option obviously isn't there. Furthermore, beta plugins are often small/new repos which aren't easy to find via google search, too. In some cases, I really had to go to google → github → search user → look through their repos – an amount of friction that will disincentivize users to provide feedback.

All this could be solved by BRAT providing some method of quickly opening the Github repo of a beta-plugin. Maybe a button in the BRAT settings, or a command which then displays a suggester with all beta-plugins you have added?

Recommended way to include an additional file in a plugin

I maintain a plugin called Obsidian Gitlab Issues. It needs to provide a default Handlebars.js template, which currently is an additional file in the repository.

What is the recommended way of getting this file installed alongside the plugin files?

From what I've read, only the mainfest, JS and CSS files are installed by default.

Thanks

[Feature Request] Gitlab

Hi man, thanks for this.

I'm wondering, BRAT seems to be biased on GitHub atm. Do you have plans to allow publicly hosted repos from gitlab (maybe even self-hosted gitlabs) as well? The use case is that my company wants us to keep everything orderly on our gitlab. We're still going to open source it at some point and then probably move to GitHub, but for the moment, I'd love to test on gitlab.

Wdyt?

Notifications stay too long

I'd love to follow the instruction, but the notifications are big, stay for a long time, and are literally blocking the button I need to press ;)

Nevertheless, great idea to do this plugin, thanks a lot for it.

Screenshot 2021-10-03 23 46 32

A few questions about how this plugin works

Hi,

I'd like to ask about how this plugin works. I read the README.md file, but I still have a few questions in mind:

  • If a plugin does not have a manifest-beta.json file, how does BRAT differ from just installing the same plugin via the normal community plugin installation process? Does it allow installing plugins that are not yet available in the community plugins list? Any other differences?
  • If my plugin has manifest-beta.json, can I mark the beta release in GitHub as a pre-release?
  • Can beta version use aplhanumeric characters in the version name? E.g. if I'm developing version 2.1.0, I might want to release a beta version named 2.1.0-beta1 so that beta testers can easily distinguish later if they have are still using a beta version, or if they have already upgraded to the "real", stable 2.1.0 version.

Thanks! 🙂

P.S. Have you considered opening a Discussions section for this kind of topics?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.