|
SageTV Github Development Discussion related to SageTV Open Source Development. Use this forum for development topics about the Open Source versions of SageTV, hosted on Github. |
|
Thread Tools | Search this Thread | Display Modes |
#1
|
|||
|
|||
Philosophy for core vs plugins
I am new to community built OSS, but how do decisions like this get made?
Personally I think that a lot of the functionality that was added in plugins should be part of the core SageTV code. For example SageAlert which allows you to get notifications via email, growl, etc for system messages or other events. When something goes wrong with my Sage server I want to find out about it immediately on my phone so that I can try to fix it. I can't see how almost any Sage user wouldn't want this functionality. There also could be gray areas that are easier to do in OSS than in commercial software as Sage was in the past. Where should these types of discussions take place?
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server |
#2
|
||||
|
||||
This seems like a good place for discussions like that.
I've always liked the philosophy of separation with code where possible. So if a plugin can work just fine as a plugin...then it should be left that way. We always tried to do the same thing with Studio/UI...if it can be done in the Studio, then don't try to change the SageTV core to do it instead (unless there's performance reasons for it).
__________________
Jeffrey Kardatzke Founder of SageTV |
#3
|
|||
|
|||
Ok Jeff, but then why is encoding part of the core functionality? Surely that is something that could have been done in a plugin? But I guess SageTVdidn't really support Plugins fully until V7.
I would think stuff like supporting comskip for playback should be part of the core. (This is one of those things that it is harder to support in a commercial product). And also supporting comskip processing post recordings would be great too - I can't see why someone wouldn't want that, other than the TV networks. IMHO Web UI should also be core and I like the idea of doing configuration via the web UI rather than using the SageTV UI - I think this is how BeyondTV worked. You can see a lot more info on the screen at once in a 2 ft UI rather than a 10 ft UI. This may not be possible but it would be great if it was possible to do more configuration work while clients are connected. In our house it is rare to find a time when at least one of the 9 extenders is not connected and watching something, or a show is being recorded.
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server |
#4
|
||||
|
||||
I have given this some thought and I like keeping things as plugins unless there is a good reason not to.
What I think is missing is a way to define which plugins should be installed automatically. It would be nice to have some way to tell Sage to load a group of plugins. That way we can "package" different flavors of Sage simply by specifying a different set of plugins that should be installed.
__________________
Sage Server: 8th gen Intel based system w/32GB RAM running Ubuntu Linux, HDHomeRun Prime with cable card for recording. Runs headless. Accessed via RD when necessary. Four HD-300 Extenders. |
#5
|
|||
|
|||
That is a good way to do things - it would also be nice to be able to "clone" an install so that all plugins and UI settings can be can be migrated to a new install. Gemstone allows some of this and I use it to propagate UI changes to all of my extenders.
I run my "production" Sage on a Win7 PC and run a "dev" version on my WHS 2011 box. But it is a pain to keep them looking the same which increases WAF if the production server happens to be down for some reason.
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server |
#6
|
|||
|
|||
Quote:
__________________
"Keep your goals away from the trolls" |
#7
|
|||
|
|||
I'm not a code kind of guy, but I build websites, mostly using Drupal. They use Profiles to create an install with a given set of modules (plugins) and theme. Just run the install and pick that profile. Drupal profiles need to have all of the modules packaged together with the core, but Sage wouldn't need that since it can already download plugins as needed.
|
#8
|
||||
|
||||
Quote:
Or, if you are talking about recording, that already has the capability to be done external with the software, via 'Network Encoders', which really should be the preferred method going forward (I believe Jeff said that's actually how Google Fiber does it's recording).
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#9
|
||||
|
||||
Frankly, ministry could likely be expanded to take over more than just transcoding, but any per-file queue/processing jobs. comskip, for instance, could likely be launched as a 'transcode-job'.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#10
|
||||
|
||||
I do like the concept of 'profiles' which have a set of default plugins to install. Maybe the first time someone runs it, they are prompted about doing this...or just make certain plugins there by default and the user could just uninstall them if they don't want them anymore.
There's also a concept of 'export plugins' in SageTV...which I may never have made public. But now it is! These are run after every recording is complete so they can do post processing on them if desired (it was used to export things to iTunes and for something we did with Roxio way back when)
__________________
Jeffrey Kardatzke Founder of SageTV |
#11
|
||||
|
||||
From the perspective of user, one of the most confusing things is entering the plugin area to find a very long list of things that I don't recognize. Due to the many dependencies, uninstalling a particular plugin to troubleshoot any given issue can be quite a task. So from my perspective, the more you bury in the installer, the better. Just give us the options to tweak it, and turn it on and off.
|
#12
|
|||
|
|||
Quote:
But why shouldn't Comskip playback be built into the core? Surely that is a feature that everyone would want - it is far more important than intelligent recordings, which I have never used, or TV Show Editorials (am I assuming that these are part of the core of SageTV unless they were added by Gemstone).
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server |
#13
|
|||
|
|||
Quote:
|
#14
|
||||
|
||||
Unfortunately, there's no tracking of plugin popularity, otherwise, that would be a great way to sort the list to put the key stuff at the top.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#15
|
||||
|
||||
I think I'm kind of with Jeff on this one, anything that can be a plugin is better to be a plugin. It will keep the core code more compact/manageable, and will help 'discourage' feature creep and unreliability from working itself into the core.
Kind of like Kodi, there's the basic functionality, but then there's a million things that are plugins. Quote:
There is one complication with transcoding: Could a plugin handle transcoding to placeshifter? If not, then that's a clear reason it would have to be in the core. Quote:
We should be very careful trying to "improve" the Sage core, and we should try to limit our mucking around in it to bug fixes and improvements to support more/better plugins. For example we don't want to have to spin off a new core release for some tweak to the WebUI, or whenever there's an update to comskip. Now that said, I think what you're really getting at is you'd like to see some "basic" plugins installed automatically. I don't really like the idea of just bundling plugins, that makes it hard to impossible to get to a vanilla SageTV install (maximum stability). But what I think would be a great idea, is to either add the option to the installer (check the popular plugins you want automatically installed) or add a few steps to the setup wizard in the stock STV to ask the user which plugins they want to install in the beginning. Quote:
Quote:
Likewise I think SJQ is just too complicated to be in the core. (Though there may be some features/ideas of SJQ, I think as it stands, with having to manually configure it, it's "too much" today). The key thing to remember is that anything that's part of the core needs a core release to get updated. Just look at Android, Google is pulling all sorts of "plugins" out of the core OS and releasing them separately, which allows those components to be updated more frequently without needing a whole OS release, which is rather rare. The same thing happens with Kodi, the "core" Kodi only gets major feature changes once per year, but plugins can be updated whenever, and plugins can be added whenever. I don't think we want to get in the habit of rolling a core release every time there some minor tweak to something that could have been, or used to be a plugin. |
#16
|
|||
|
|||
Quote:
To do a new install and get it looking like my old install would take quite a while as I don't even remember all of the plugins that I have. And as someone mentioned - going into the Installed Plugins is a dog's breakfast as you didn't explicitly install a lot of the stuff listed there - it was installed as a dependency and who know whether you still need it. Hopefully I will be able to run my Sage V9 server in parallel with my existing V7 server, but if my V7 server were to die and not be easy to get back up and running then it would be tricky to figure out how to get everything back to how it is today which would make the family happy.
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server |
#17
|
|||
|
|||
I agree with the general idea that, as stanger put it, "anything that can be a plugin is better to be a plugin."
There is some notion of core functionality, but despite the popularity of commercial skipping and the web interface I'm not convinced those really belong as core. I don't even think I'd want those plugins installed by default. Out of curiosity, where does Schedules Direct support fall? EPG data is very much a core feature of a DVR, so on that basis it makes sense as part of the core. At the same time, it might be best to think of any EPG source as a plugin. If something changes with one of those sources you don't want to have to put out a whole new release. |
#18
|
|||
|
|||
So this leads us to the point of defining what is core functionality. It sounds like I am in the minority wanting more functions included as part of the core.
So what should be in the core? TV recording functionality. Video playback. Live TV playback. Music playback. Photo viewing. EPG. Intelligent recording? What about emerging TV recording - stuff like recording IPTV or Playlater? What about Online playback? Youtube has been in the core but it breaks on pretty much a monthly basis. Netflix, Hulu, BBC iPlayer, etc would also be useful to some/many. Core or plugin? Weather?
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server |
#19
|
|||
|
|||
Quote:
Certainly EPG support needs to be part of core, but the actual implementation of EPG sources *might* make sense as plugins. There's no reason to pull out the Sage source for previous customers, though. And it might make sense to put Schedules Direct in if its likely to be very stable. Quote:
In general, I tend to think streaming media support in Sage is a lost cause. I just don't think support is going to be good enough for any of those to be worth using. I played around with PlayOn years ago and was MUCH happier after just buying some Rokus and Harmony remotes. It might be possible to get things working reasonably well by getting Sage to launch external apps on Windows clients, but I'm skeptical about now worthwhile that is. Just jump back out to the start screen and select the Netflix app. I think a much better option would be to port the miniclient to platforms that already have decent support for online streaming. With mpeg2 support on the Shield, that might be a good option. |
#20
|
||||
|
||||
Quote:
I do agree that feature creep is a serious concern and plugins help to mitigate that. However, the above is also a serious concern. Hopefully these discussions will alleviate both of these, as well as many more concerns.
__________________
Server: XP, SuperMicro X9SAE-V, i7 3770T, Thermalright Archon SB-E, 32GB Corsair DDR3, 2 x IBM M1015, Corsair HX1000W PSU, CoolerMaster CM Storm Stryker case Storage: 2 x Addonics 5-in-3 3.5" bays, 1 x Addonics 4-in-1 2.5" bay, 24TB Client: Windows 7 64-bit, Foxconn G9657MA-8EKRS2H, Core2Duo E6600, Zalman CNPS7500, 2GB Corsair, 320GB, HIS ATI 4650, Antec Fusion Tuners: 2 x HD-PVR (HTTP tuning), 2 x HDHR, USB-UIRT Software: SageTV 7 |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
dual core or quad core AMD processors | tvmaster2 | Hardware Support | 4 | 10-30-2014 11:44 PM |
To get a faster dual-core or slower quad-core? That is the question... | robogeek | Hardware Support | 33 | 03-09-2009 08:33 PM |
ERROR (-10)... Only with Quad core, not Dual core? | jerryt | Hardware Support | 2 | 04-03-2008 07:13 PM |
quad core vs dual core | garyellis | Hardware Support | 16 | 03-13-2008 10:36 PM |