SageTV Community  

Go Back   SageTV Community > SageTV Development and Customizations > SageTV Github Development
Forum Rules FAQs Community Downloads Today's Posts Search

Notices

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.

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 08-11-2015, 02:18 PM
wayner wayner is offline
SageTVaholic
 
Join Date: Jan 2008
Location: Toronto, ON
Posts: 7,491
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
Reply With Quote
  #2  
Old 08-11-2015, 02:24 PM
Narflex's Avatar
Narflex Narflex is offline
Sage
 
Join Date: Feb 2003
Location: Redondo Beach, CA
Posts: 6,349
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
Google
Founder of SageTV
Reply With Quote
  #3  
Old 08-11-2015, 02:33 PM
wayner wayner is offline
SageTVaholic
 
Join Date: Jan 2008
Location: Toronto, ON
Posts: 7,491
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
Reply With Quote
  #4  
Old 08-11-2015, 02:47 PM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
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.
Reply With Quote
  #5  
Old 08-11-2015, 02:51 PM
wayner wayner is offline
SageTVaholic
 
Join Date: Jan 2008
Location: Toronto, ON
Posts: 7,491
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
Reply With Quote
  #6  
Old 08-11-2015, 03:31 PM
BobPhoenix BobPhoenix is offline
SageTVaholic
 
Join Date: Oct 2004
Posts: 3,152
Quote:
Originally Posted by tmiranda View Post
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.
That should easily be possible by just changing the default property file that is built to include whatever plugins are desired. Then any time you install that particular build of SageTV you will get a default property file with the plugins already selected. Correct me if I'm wrong.
__________________
"Keep your goals away from the trolls"
Reply With Quote
  #7  
Old 08-11-2015, 04:24 PM
samgreco samgreco is offline
Sage Expert
 
Join Date: Jul 2004
Location: Villa Park, IL (Outside Chicago)
Posts: 617
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.
Reply With Quote
  #8  
Old 08-11-2015, 04:37 PM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by wayner View Post
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 SageTV didn't really support Plugins fully until V7.
By encoding, are you referring to converting/transcoding of files? If so, it looks like there is a shell of some sort of additional transcoding engines, but doesn't appear to be completed. It looks like it might not be that difficult to have ministry (the class that queues launches and monitors transcode jobs) to fire off external jobs as well.
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
Reply With Quote
  #9  
Old 08-11-2015, 04:38 PM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
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
Reply With Quote
  #10  
Old 08-11-2015, 06:32 PM
Narflex's Avatar
Narflex Narflex is offline
Sage
 
Join Date: Feb 2003
Location: Redondo Beach, CA
Posts: 6,349
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
Google
Founder of SageTV
Reply With Quote
  #11  
Old 08-11-2015, 07:06 PM
KryptoNyte's Avatar
KryptoNyte KryptoNyte is offline
SageTVaholic
 
Join Date: Dec 2006
Posts: 2,754
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.
Reply With Quote
  #12  
Old 08-11-2015, 09:18 PM
wayner wayner is offline
SageTVaholic
 
Join Date: Jan 2008
Location: Toronto, ON
Posts: 7,491
Quote:
Originally Posted by Fuzzy View Post
By encoding, are you referring to converting/transcoding of files? If so, it looks like there is a shell of some sort of additional transcoding engines, but doesn't appear to be completed. It looks like it might not be that difficult to have ministry (the class that queues launches and monitors transcode jobs) to fire off external jobs as well.
Yes, I am referring to the transcoding of files - it is called Video Conversions in the web UI.

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
Reply With Quote
  #13  
Old 08-11-2015, 09:56 PM
Carlton Bale Carlton Bale is offline
Sage Advanced User
 
Join Date: Sep 2010
Location: Indianapolis, Indiana, USA
Posts: 120
Quote:
Originally Posted by KryptoNyte View Post
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.
I completely agree. The most popular plugins should be incorporated into an options screen and toggled on or off. The overwhelming plugin screen should be reserved for new/less used/niche/complex options.
Reply With Quote
  #14  
Old 08-11-2015, 10:00 PM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
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
Reply With Quote
  #15  
Old 08-12-2015, 06:19 AM
stanger89's Avatar
stanger89 stanger89 is offline
SageTVaholic
 
Join Date: May 2003
Location: Marion, IA
Posts: 15,188
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:
Originally Posted by wayner View Post
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.
Transcoding was there long before the plugin system, but IMO it's the perfect example of why something should be a plugin. SageTV's transcoding has been stuck in the dark ages for years, but I bet if it were a plugin, we'd have had it updated to H.264 a long time ago.

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:
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.
I think we need to separate the idea of things that should be installed by default, or included with the installer, with the "plugin vs core" issue. IMO the core should be the foundation, and as we all know the SageTV core is very robust, and very stable. And frankly there's not much that really needs to be done to the core, it works as well today as it did the day Google bought Sage.

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:
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.
Could you elaborate? The only "configuration work" I can think of is stuff that involves restarting the server, which should be very rare.

Quote:
Originally Posted by wayner View Post
Yes, I am referring to the transcoding of files - it is called Video Conversions in the web UI.

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).
I'm not sure how much of it you're meaning, but there's a number of different "comskip" plugins out there. For example I use ShowAnalyzer launched via SJQ, alternatively there's the Comskip monitor, and there's a couple others I think. I wouldn't want my upgrade to V9 (whenever that happens) to force me to use comskip (though I am a donator, I've had better luck with SA over the years).

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.
Reply With Quote
  #16  
Old 08-12-2015, 07:25 AM
wayner wayner is offline
SageTVaholic
 
Join Date: Jan 2008
Location: Toronto, ON
Posts: 7,491
Quote:
Originally Posted by stanger89 View Post
Could you elaborate? The only "configuration work" I can think of is stuff that involves restarting the server, which should be very rare.
By configuration work I mean the whole look and feel of the UI, plus all of the plugins that one is using. I have very little remembrance of what the default Sage UI looks like as I have used SageMC and then Diamond/Gemstone. My menus have been customized using Gemstone. I have widgets on the Home screen including weather, recent recordings, etc. My Movies menu is customized and is split up into Movies, Kids Movies and Home Movies. The Movies screen use the Movie Wall type of screen. I use SRE extensively for sports recordings and then I use tmiranda's plugin to hide the time bar so that it is not a spoiler. I used the Dynamic Skip times plugin. I use SageAlert extensively.

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
Reply With Quote
  #17  
Old 08-12-2015, 07:43 AM
reggie14 reggie14 is offline
SageTVaholic
 
Join Date: Aug 2003
Location: Maryland
Posts: 2,760
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.
Reply With Quote
  #18  
Old 08-12-2015, 08:24 AM
wayner wayner is offline
SageTVaholic
 
Join Date: Jan 2008
Location: Toronto, ON
Posts: 7,491
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
Reply With Quote
  #19  
Old 08-12-2015, 08:51 AM
reggie14 reggie14 is offline
SageTVaholic
 
Join Date: Aug 2003
Location: Maryland
Posts: 2,760
Quote:
Originally Posted by wayner View Post
So what should be in the core?

TV recording functionality.
Video playback.
Live TV playback.
Music playback.
Photo viewing.
Yeah, that looks like core to me. Some core features to support metadata management ought to be part of core, too. I'm not sure how far that should go, and I know some of that's there already. Metadata sources ought to be plugins, but I get the impression that use of metadata with BMT and Phoenix/Gemstone/etc. is pretty hacked together (e.g., the server ought to be able to serve up fanart to clients from folders that aren't directly accessible to clients).

Quote:
Originally Posted by wayner View Post
EPG.
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:
Originally Posted by wayner View Post
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?
I don't use intelligent recording either, but you could argue it's kind of a special case of favorites management. Doesn't seem worth it to pull out it, so it might as well stay in.

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.
Reply With Quote
  #20  
Old 08-12-2015, 09:36 AM
Skirge01's Avatar
Skirge01 Skirge01 is offline
SageTVaholic
 
Join Date: Jun 2007
Location: New Jersey
Posts: 2,599
Quote:
Originally Posted by stanger89 View Post
Kind of like Kodi, there's the basic functionality, but then there's a million things that are plugins.
That's one of my biggest issues with Kodi, though. If it doesn't do 'x' by default, good luck trying to find a plugin which adds that functionality. Everyone has a difference of opinion regarding what plugin category something should be under. Additionally, most people have no clue (and no easy way of discovering) all the different things Kodi is capable of, which means unless you already know what you'd like it to do, you may never find some awesome feature you didn't know you would enjoy. For example, how many people knew that someone wrote a recipe viewer for Sage?

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
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

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


All times are GMT -6. The time now is 05:49 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, vBulletin Solutions Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.